You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by za...@apache.org on 2021/06/03 22:17:12 UTC

[calcite-site] branch master updated: Publish website for Apache Calcite 1.27.0 release

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

zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/calcite-site.git


The following commit(s) were added to refs/heads/master by this push:
     new ac35fb8  Publish website for Apache Calcite 1.27.0 release
ac35fb8 is described below

commit ac35fb8ceecb7ebef464aff63e6854d8489e696d
Author: Stamatis Zampetakis <za...@gmail.com>
AuthorDate: Fri Jun 4 00:16:34 2021 +0200

    Publish website for Apache Calcite 1.27.0 release
---
 develop/index.html                                 |  138 +-
 docs/adapter.html                                  |    5 +-
 docs/algebra.html                                  |   88 +
 docs/file_adapter.html                             |    4 +-
 docs/geode_adapter.html                            |    4 +-
 docs/history.html                                  |  583 ++-
 docs/howto.html                                    |  106 +-
 docs/innodb_adapter.html                           |  785 ++++
 docs/kafka_adapter.html                            |    4 +-
 docs/lattice.html                                  |    4 +-
 docs/materialized_views.html                       |    4 +-
 docs/model.html                                    |    2 +-
 docs/reference.html                                |  639 ++-
 downloads/index.html                               |   10 +-
 javadocAggregate/allclasses-index.html             | 4873 +++++++++++---------
 javadocAggregate/allpackages-index.html            |  140 +-
 javadocAggregate/constant-values.html              |   25 +-
 javadocAggregate/deprecated-list.html              |  707 +--
 javadocAggregate/element-list                      |    1 +
 javadocAggregate/help-doc.html                     |    2 +-
 javadocAggregate/index-all.html                    | 3111 ++++++++++---
 javadocAggregate/index.html                        |  140 +-
 javadocAggregate/member-search-index.js            |    2 +-
 javadocAggregate/member-search-index.zip           |  Bin 252274 -> 258875 bytes
 .../org/apache/calcite/DataContext.Variable.html   |    2 +-
 .../org/apache/calcite/DataContext.html            |   14 +-
 .../DateTimeStringUtils.html => DataContexts.html} |  134 +-
 javadocAggregate/org/apache/calcite/Demo.html      |    2 +-
 .../calcite/adapter/cassandra/CassandraFilter.html |    8 +-
 .../calcite/adapter/cassandra/CassandraLimit.html  |   10 +-
 .../calcite/adapter/cassandra/CassandraMethod.html |    2 +-
 .../adapter/cassandra/CassandraProject.html        |    8 +-
 .../cassandra/CassandraRel.Implementor.html        |    2 +-
 .../calcite/adapter/cassandra/CassandraRel.html    |    4 +-
 .../CassandraRules.CassandraFilterRule.Config.html |    2 +-
 .../CassandraRules.CassandraFilterRule.html        |    2 +-
 .../CassandraRules.CassandraLimitRule.Config.html  |    2 +-
 .../CassandraRules.CassandraLimitRule.html         |    2 +-
 .../CassandraRules.CassandraProjectRule.html       |    2 +-
 .../CassandraRules.CassandraSortRule.Config.html   |    2 +-
 .../CassandraRules.CassandraSortRule.html          |    2 +-
 .../calcite/adapter/cassandra/CassandraRules.html  |    2 +-
 .../calcite/adapter/cassandra/CassandraSchema.html |    2 +-
 .../adapter/cassandra/CassandraSchemaFactory.html  |    2 +-
 .../calcite/adapter/cassandra/CassandraSort.html   |   38 +-
 .../CassandraTable.CassandraQueryable.html         |   14 +-
 .../calcite/adapter/cassandra/CassandraTable.html  |    7 +-
 .../adapter/cassandra/CassandraTableScan.html      |    4 +-
 .../cassandra/CassandraToEnumerableConverter.html  |    8 +-
 .../CassandraToEnumerableConverterRule.html        |    2 +-
 .../cassandra/CqlToSqlTypeConversionRules.html     |    2 +-
 .../calcite/adapter/cassandra/package-summary.html |    2 +-
 .../calcite/adapter/cassandra/package-tree.html    |    2 +-
 .../calcite/adapter/clone/CloneSchema.Factory.html |    2 +-
 .../apache/calcite/adapter/clone/CloneSchema.html  |   10 +-
 .../calcite/adapter/clone/package-summary.html     |    2 +-
 .../apache/calcite/adapter/clone/package-tree.html |    2 +-
 .../calcite/adapter/csv/CsvFilterableTable.html    |   11 +-
 .../csv/CsvProjectTableScanRule.Config.html        |    2 +-
 .../adapter/csv/CsvProjectTableScanRule.html       |    2 +-
 .../org/apache/calcite/adapter/csv/CsvRules.html   |    2 +-
 .../calcite/adapter/csv/CsvScannableTable.html     |   11 +-
 .../org/apache/calcite/adapter/csv/CsvSchema.html  |    2 +-
 .../calcite/adapter/csv/CsvSchemaFactory.html      |    2 +-
 .../adapter/csv/CsvStreamScannableTable.html       |   11 +-
 .../calcite/adapter/csv/CsvStreamTableFactory.html |    8 +-
 .../calcite/adapter/csv/CsvTable.Flavor.html       |    2 +-
 .../org/apache/calcite/adapter/csv/CsvTable.html   |   11 +-
 .../calcite/adapter/csv/CsvTableFactory.html       |    8 +-
 .../apache/calcite/adapter/csv/CsvTableScan.html   |   10 +-
 .../calcite/adapter/csv/CsvTranslatableTable.html  |    7 +-
 .../calcite/adapter/csv/package-summary.html       |    2 +-
 .../apache/calcite/adapter/csv/package-tree.html   |    2 +-
 .../adapter/druid/BinaryOperatorConversion.html    |    2 +-
 .../adapter/druid/CeilOperatorConversion.html      |    7 +-
 .../calcite/adapter/druid/ComplexMetric.html       |    2 +-
 .../adapter/druid/DefaultDimensionSpec.html        |    2 +-
 .../calcite/adapter/druid/DimensionSpec.html       |    7 +-
 .../adapter/druid/DirectOperatorConversion.html    |    2 +-
 .../calcite/adapter/druid/DruidConnection.html     |    2 +-
 .../calcite/adapter/druid/DruidDateTimeUtils.html  |   37 +-
 .../calcite/adapter/druid/DruidExpressions.html    |   12 +-
 .../apache/calcite/adapter/druid/DruidJson.html    |    2 +-
 .../druid/DruidQuery.JsonPostAggregation.html      |    2 +-
 .../adapter/druid/DruidQuery.QuerySpec.html        |    2 +-
 .../apache/calcite/adapter/druid/DruidQuery.html   |   49 +-
 ...ruidRules.DruidAggregateProjectRule.Config.html |    2 +-
 .../DruidRules.DruidAggregateProjectRule.html      |    2 +-
 .../DruidRules.DruidAggregateRule.Config.html      |    2 +-
 .../druid/DruidRules.DruidAggregateRule.html       |    2 +-
 .../druid/DruidRules.DruidFilterRule.Config.html   |    2 +-
 .../adapter/druid/DruidRules.DruidFilterRule.html  |    2 +-
 .../DruidRules.DruidHavingFilterRule.Config.html   |    2 +-
 .../druid/DruidRules.DruidHavingFilterRule.html    |    2 +-
 ...les.DruidPostAggregationProjectRule.Config.html |    2 +-
 ...DruidRules.DruidPostAggregationProjectRule.html |    2 +-
 .../druid/DruidRules.DruidProjectRule.Config.html  |    2 +-
 .../adapter/druid/DruidRules.DruidProjectRule.html |    2 +-
 .../druid/DruidRules.DruidSortRule.Config.html     |    2 +-
 .../adapter/druid/DruidRules.DruidSortRule.html    |    2 +-
 .../apache/calcite/adapter/druid/DruidRules.html   |    2 +-
 .../apache/calcite/adapter/druid/DruidSchema.html  |    2 +-
 .../calcite/adapter/druid/DruidSchemaFactory.html  |    2 +-
 .../adapter/druid/DruidSqlCastConverter.html       |    2 +-
 .../adapter/druid/DruidSqlOperatorConverter.html   |    7 +-
 .../apache/calcite/adapter/druid/DruidTable.html   |   15 +-
 .../calcite/adapter/druid/DruidTableFactory.html   |    8 +-
 .../apache/calcite/adapter/druid/DruidType.html    |   36 +-
 .../adapter/druid/ExtractOperatorConversion.html   |    2 +-
 .../adapter/druid/ExtractionDimensionSpec.html     |    7 +-
 .../calcite/adapter/druid/ExtractionFunction.html  |    2 +-
 .../adapter/druid/FloorOperatorConversion.html     |    7 +-
 .../calcite/adapter/druid/Granularities.html       |    5 +-
 .../calcite/adapter/druid/Granularity.Type.html    |    2 +-
 .../apache/calcite/adapter/druid/Granularity.html  |    5 +-
 .../adapter/druid/NaryOperatorConverter.html       |    7 +-
 .../apache/calcite/adapter/druid/QueryType.html    |    2 +-
 .../adapter/druid/SubstringOperatorConversion.html |    7 +-
 .../adapter/druid/TimeExtractionFunction.html      |    7 +-
 .../druid/UnaryPrefixOperatorConversion.html       |    2 +-
 .../druid/UnarySuffixOperatorConversion.html       |    2 +-
 .../adapter/druid/VirtualColumn.Builder.html       |    2 +-
 .../calcite/adapter/druid/VirtualColumn.html       |    2 +-
 .../calcite/adapter/druid/package-summary.html     |    2 +-
 .../apache/calcite/adapter/druid/package-tree.html |    2 +-
 .../elasticsearch/ElasticsearchAggregate.html      |    8 +-
 .../adapter/elasticsearch/ElasticsearchFilter.html |    8 +-
 .../elasticsearch/ElasticsearchProject.html        |    8 +-
 .../ElasticsearchRel.Implementor.html              |    2 +-
 .../adapter/elasticsearch/ElasticsearchRel.html    |    4 +-
 .../adapter/elasticsearch/ElasticsearchSchema.html |    2 +-
 .../elasticsearch/ElasticsearchSchemaFactory.html  |    2 +-
 .../ElasticsearchSearchResult.SearchHit.html       |    2 +-
 .../ElasticsearchSearchResult.SearchHits.html      |    2 +-
 .../elasticsearch/ElasticsearchSearchResult.html   |    2 +-
 .../adapter/elasticsearch/ElasticsearchSort.html   |   38 +-
 .../ElasticsearchTable.ElasticsearchQueryable.html |   14 +-
 .../adapter/elasticsearch/ElasticsearchTable.html  |    7 +-
 .../elasticsearch/ElasticsearchTableScan.html      |    8 +-
 .../ElasticsearchToEnumerableConverter.html        |    8 +-
 .../ElasticsearchToEnumerableConverterRule.html    |    2 +-
 .../adapter/elasticsearch/package-summary.html     |    2 +-
 .../adapter/elasticsearch/package-tree.html        |    2 +-
 .../calcite/adapter/enumerable/AggAddContext.html  |    6 +-
 .../calcite/adapter/enumerable/AggContext.html     |    2 +-
 .../calcite/adapter/enumerable/AggImpState.html    |   73 +-
 .../calcite/adapter/enumerable/AggImplementor.html |    2 +-
 .../adapter/enumerable/AggResetContext.html        |    2 +-
 .../adapter/enumerable/AggResultContext.html       |    6 +-
 .../adapter/enumerable/AggregateLambdaFactory.html |    2 +-
 .../enumerable/BasicAggregateLambdaFactory.html    |    2 +-
 .../adapter/enumerable/BasicLazyAccumulator.html   |    2 +-
 .../adapter/enumerable/CallImplementor.html        |    2 +-
 .../calcite/adapter/enumerable/EnumUtils.html      |  122 +-
 .../adapter/enumerable/EnumerableAggregate.html    |   12 +-
 .../EnumerableAggregateBase.AggContextImpl.html    |    2 +-
 .../enumerable/EnumerableAggregateBase.html        |    8 +-
 .../enumerable/EnumerableBatchNestedLoopJoin.html  |   18 +-
 .../EnumerableBatchNestedLoopJoinRule.Config.html  |    2 +-
 .../EnumerableBatchNestedLoopJoinRule.html         |    7 +-
 ...Bindable.EnumerableToBindableConverterRule.html |    2 +-
 .../adapter/enumerable/EnumerableBindable.html     |   12 +-
 .../calcite/adapter/enumerable/EnumerableCalc.html |   12 +-
 .../adapter/enumerable/EnumerableCollect.html      |    4 +-
 .../adapter/enumerable/EnumerableConvention.html   |    6 +-
 .../adapter/enumerable/EnumerableCorrelate.html    |   12 +-
 .../enumerable/EnumerableCorrelateRule.html        |    2 +-
 .../adapter/enumerable/EnumerableFilter.html       |   12 +-
 .../EnumerableFilterToCalcRule.Config.html         |    2 +-
 .../enumerable/EnumerableFilterToCalcRule.html     |    2 +-
 .../adapter/enumerable/EnumerableHashJoin.html     |   16 +-
 .../enumerable/EnumerableInterpretable.html        |    8 +-
 .../adapter/enumerable/EnumerableInterpreter.html  |    8 +-
 .../enumerable/EnumerableInterpreterRule.html      |    2 +-
 .../adapter/enumerable/EnumerableIntersect.html    |    4 +-
 .../adapter/enumerable/EnumerableLimit.html        |   30 +-
 .../enumerable/EnumerableLimitRule.Config.html     |    2 +-
 .../adapter/enumerable/EnumerableLimitRule.html    |    2 +-
 .../adapter/enumerable/EnumerableLimitSort.html    |   69 +-
 .../enumerable/EnumerableLimitSortRule.Config.html |    2 +-
 .../enumerable/EnumerableLimitSortRule.html        |    2 +-
 .../adapter/enumerable/EnumerableMatch.html        |   12 +-
 .../adapter/enumerable/EnumerableMatchRule.html    |    6 +-
 .../adapter/enumerable/EnumerableMergeJoin.html    |   16 +-
 ...merableUnion.html => EnumerableMergeUnion.html} |   64 +-
 ...g.html => EnumerableMergeUnionRule.Config.html} |   24 +-
 .../EnumerableMergeUnionRule.html}                 |   45 +-
 .../adapter/enumerable/EnumerableMinus.html        |    4 +-
 .../enumerable/EnumerableNestedLoopJoin.html       |   16 +-
 .../adapter/enumerable/EnumerableProject.html      |   12 +-
 .../EnumerableProjectToCalcRule.Config.html        |    2 +-
 .../enumerable/EnumerableProjectToCalcRule.html    |    2 +-
 .../adapter/enumerable/EnumerableRel.Prefer.html   |    2 +-
 .../adapter/enumerable/EnumerableRel.Result.html   |    2 +-
 .../calcite/adapter/enumerable/EnumerableRel.html  |   14 +-
 .../adapter/enumerable/EnumerableRelFactories.html |    2 +-
 .../enumerable/EnumerableRelImplementor.html       |    2 +-
 .../adapter/enumerable/EnumerableRepeatUnion.html  |    4 +-
 .../enumerable/EnumerableRepeatUnionRule.html      |    6 +-
 .../adapter/enumerable/EnumerableRules.html        |   52 +-
 .../calcite/adapter/enumerable/EnumerableSort.html |   28 +-
 .../enumerable/EnumerableSortedAggregate.html      |   16 +-
 .../enumerable/EnumerableTableFunctionScan.html    |   20 +-
 .../EnumerableTableFunctionScanRule.html           |    7 +-
 .../adapter/enumerable/EnumerableTableModify.html  |   12 +-
 .../enumerable/EnumerableTableModifyRule.html      |   11 +-
 .../adapter/enumerable/EnumerableTableScan.html    |   20 +-
 .../enumerable/EnumerableTableScanRule.html        |   11 +-
 .../adapter/enumerable/EnumerableTableSpool.html   |    4 +-
 .../enumerable/EnumerableTableSpoolRule.html       |    6 +-
 .../adapter/enumerable/EnumerableUncollect.html    |    4 +-
 .../adapter/enumerable/EnumerableUnion.html        |    8 +-
 .../adapter/enumerable/EnumerableValues.html       |    8 +-
 .../adapter/enumerable/EnumerableValuesRule.html   |    8 +-
 .../adapter/enumerable/EnumerableWindow.html       |    8 +-
 .../adapter/enumerable/JavaRelImplementor.html     |    8 +-
 .../calcite/adapter/enumerable/JavaRowFormat.html  |   10 +-
 ...LazyAggregateLambdaFactory.LazyAccumulator.html |    2 +-
 .../LazyAggregateLambdaFactory.LazySource.html     |    2 +-
 .../enumerable/LazyAggregateLambdaFactory.html     |    2 +-
 .../adapter/enumerable/MatchImplementor.html       |    2 +-
 .../calcite/adapter/enumerable/MatchUtils.html     |    2 +-
 .../adapter/enumerable/NestedBlockBuilder.html     |    2 +-
 .../adapter/enumerable/NestedBlockBuilderImpl.html |    2 +-
 .../adapter/enumerable/NotNullImplementor.html     |    2 +-
 .../calcite/adapter/enumerable/NullPolicy.html     |    2 +-
 .../calcite/adapter/enumerable/PhysType.html       |   10 +-
 .../calcite/adapter/enumerable/PhysTypeImpl.html   |   10 +-
 .../ReflectiveCallNotNullImplementor.html          |    2 +-
 .../enumerable/RexImpTable.LagImplementor.html     |    2 +-
 .../enumerable/RexImpTable.LeadImplementor.html    |    2 +-
 .../adapter/enumerable/RexImpTable.NullAs.html     |    2 +-
 .../enumerable/RexImpTable.RexCallImplementor.html |    2 +-
 ...pTable.UserDefinedAggReflectiveImplementor.html |    2 +-
 .../calcite/adapter/enumerable/RexImpTable.html    |   10 +-
 .../enumerable/RexToLixTranslator.InputGetter.html |    6 +-
 .../RexToLixTranslator.InputGetterImpl.html        |   34 +-
 .../enumerable/RexToLixTranslator.Result.html      |    2 +-
 .../adapter/enumerable/RexToLixTranslator.html     |  100 +-
 .../calcite/adapter/enumerable/SourceSorter.html   |    2 +-
 .../adapter/enumerable/StrictAggImplementor.html   |   12 +-
 .../enumerable/StrictWinAggImplementor.html        |    2 +-
 .../enumerable/TableFunctionCallImplementor.html   |    2 +-
 .../adapter/enumerable/WinAggAddContext.html       |    2 +-
 .../calcite/adapter/enumerable/WinAggContext.html  |    2 +-
 .../adapter/enumerable/WinAggFrameContext.html     |    2 +-
 .../enumerable/WinAggFrameResultContext.html       |    2 +-
 .../enumerable/WinAggImplementor.SeekType.html     |    2 +-
 .../adapter/enumerable/WinAggImplementor.html      |    2 +-
 .../adapter/enumerable/WinAggResetContext.html     |    2 +-
 .../adapter/enumerable/WinAggResultContext.html    |    2 +-
 .../adapter/enumerable/impl/AggAddContextImpl.html |    8 +-
 .../enumerable/impl/AggResetContextImpl.html       |    8 +-
 .../enumerable/impl/AggResultContextImpl.html      |   18 +-
 .../enumerable/impl/WinAggAddContextImpl.html      |   11 +-
 .../enumerable/impl/WinAggResetContextImpl.html    |    2 +-
 .../enumerable/impl/WinAggResultContextImpl.html   |   11 +-
 .../adapter/enumerable/impl/package-summary.html   |    2 +-
 .../adapter/enumerable/impl/package-tree.html      |    2 +-
 .../adapter/enumerable/package-summary.html        |   84 +-
 .../calcite/adapter/enumerable/package-tree.html   |   10 +-
 .../apache/calcite/adapter/file/CsvEnumerator.html |   14 +-
 .../apache/calcite/adapter/file/CsvFieldType.html  |    6 +-
 .../file/CsvProjectTableScanRule.Config.html       |    2 +-
 .../adapter/file/CsvProjectTableScanRule.html      |    2 +-
 .../calcite/adapter/file/CsvTable.Flavor.html      |    2 +-
 .../org/apache/calcite/adapter/file/CsvTable.html  |    7 +-
 .../calcite/adapter/file/CsvTableFactory.html      |    8 +-
 .../apache/calcite/adapter/file/CsvTableScan.html  |   10 +-
 .../calcite/adapter/file/CsvTranslatableTable.html |    7 +-
 .../apache/calcite/adapter/file/FileReader.html    |    2 +-
 .../org/apache/calcite/adapter/file/FileRules.html |    2 +-
 .../calcite/adapter/file/FileSchemaFactory.html    |    2 +-
 .../calcite/adapter/file/JsonEnumerator.html       |   18 +-
 .../calcite/adapter/file/JsonScannableTable.html   |   11 +-
 .../org/apache/calcite/adapter/file/JsonTable.html |   11 +-
 .../calcite/adapter/file/package-summary.html      |    2 +-
 .../apache/calcite/adapter/file/package-tree.html  |    2 +-
 .../calcite/adapter/geode/rel/GeodeAggregate.html  |    8 +-
 .../calcite/adapter/geode/rel/GeodeFilter.html     |    8 +-
 .../calcite/adapter/geode/rel/GeodeProject.html    |    8 +-
 .../geode/rel/GeodeRel.GeodeImplementContext.html  |    2 +-
 .../apache/calcite/adapter/geode/rel/GeodeRel.html |    4 +-
 .../rel/GeodeRules.GeodeFilterRule.Config.html     |    2 +-
 .../geode/rel/GeodeRules.GeodeFilterRule.html      |    2 +-
 .../rel/GeodeRules.GeodeSortLimitRule.Config.html  |    2 +-
 .../geode/rel/GeodeRules.GeodeSortLimitRule.html   |    2 +-
 .../calcite/adapter/geode/rel/GeodeRules.html      |    2 +-
 .../calcite/adapter/geode/rel/GeodeSchema.html     |    6 +-
 .../adapter/geode/rel/GeodeSchemaFactory.html      |    2 +-
 .../calcite/adapter/geode/rel/GeodeSort.html       |   38 +-
 .../geode/rel/GeodeTable.GeodeQueryable.html       |   14 +-
 .../calcite/adapter/geode/rel/GeodeTable.html      |    7 +-
 .../calcite/adapter/geode/rel/GeodeTableScan.html  |    4 +-
 .../geode/rel/GeodeToEnumerableConverter.html      |    8 +-
 .../geode/rel/GeodeToEnumerableConverterRule.html  |    2 +-
 .../calcite/adapter/geode/rel/package-summary.html |    2 +-
 .../calcite/adapter/geode/rel/package-tree.html    |    2 +-
 .../geode/simple/GeodeSimpleEnumerator.html        |    8 +-
 .../geode/simple/GeodeSimpleScannableTable.html    |   11 +-
 .../adapter/geode/simple/GeodeSimpleSchema.html    |    2 +-
 .../geode/simple/GeodeSimpleSchemaFactory.html     |    2 +-
 .../adapter/geode/simple/package-summary.html      |    2 +-
 .../calcite/adapter/geode/simple/package-tree.html |    2 +-
 .../calcite/adapter/geode/util/GeodeUtils.html     |    2 +-
 .../adapter/geode/util/JavaTypeFactoryExtImpl.html |    4 +-
 .../adapter/geode/util/package-summary.html        |    2 +-
 .../calcite/adapter/geode/util/package-tree.html   |    2 +-
 .../ColumnTypeToSqlTypeConversionRules.html}       |   40 +-
 .../calcite/adapter/innodb/IndexCondition.html     |  495 ++
 .../InnodbFilter.html}                             |  202 +-
 .../InnodbMethod.html}                             |   45 +-
 .../InnodbProject.html}                            |   58 +-
 .../InnodbRel.Implementor.html}                    |   56 +-
 .../MongoRel.html => innodb/InnodbRel.html}        |   32 +-
 .../InnodbRules.InnodbFilterRule.Config.html}      |   22 +-
 .../InnodbRules.InnodbFilterRule.html}             |   42 +-
 .../InnodbRules.InnodbProjectRule.html}            |   26 +-
 .../InnodbRules.InnodbSortFilterRule.Config.html}  |   22 +-
 .../InnodbRules.InnodbSortFilterRule.html}         |   65 +-
 ...nnodbRules.InnodbSortTableScanRule.Config.html} |   22 +-
 .../InnodbRules.InnodbSortTableScanRule.html}      |   65 +-
 .../InnodbRules.html}                              |  114 +-
 .../DruidSchema.html => innodb/InnodbSchema.html}  |   57 +-
 .../InnodbSchemaFactory.html}                      |   24 +-
 .../InnodbSort.html}                               |   84 +-
 .../InnodbTable.InnodbQueryable.html}              | 1445 +++---
 .../InnodbTable.html}                              |  116 +-
 .../InnodbTableScan.html}                          |  134 +-
 .../InnodbToEnumerableConverter.html}              |   29 +-
 .../InnodbToEnumerableConverterRule.html}          |   33 +-
 .../adapter/{druid => innodb}/QueryType.html       |  111 +-
 .../{cassandra => innodb}/package-summary.html     |  127 +-
 .../adapter/{mongodb => innodb}/package-tree.html  |   57 +-
 .../adapter/java/AbstractQueryableTable.html       |    9 +-
 .../org/apache/calcite/adapter/java/Array.html     |    6 +-
 .../calcite/adapter/java/JavaTypeFactory.html      |    2 +-
 .../org/apache/calcite/adapter/java/Map.html       |   10 +-
 .../adapter/java/ReflectiveSchema.Factory.html     |    2 +-
 .../calcite/adapter/java/ReflectiveSchema.html     |    2 +-
 .../calcite/adapter/java/package-summary.html      |    2 +-
 .../apache/calcite/adapter/java/package-tree.html  |    2 +-
 .../calcite/adapter/jdbc/JdbcCatalogSchema.html    |   10 +-
 .../calcite/adapter/jdbc/JdbcConvention.html       |    2 +-
 .../calcite/adapter/jdbc/JdbcImplementor.html      |    4 +-
 .../calcite/adapter/jdbc/JdbcQueryProvider.html    |    2 +-
 .../org/apache/calcite/adapter/jdbc/JdbcRel.html   |    4 +-
 .../adapter/jdbc/JdbcRules.JdbcAggregate.html      |   12 +-
 .../adapter/jdbc/JdbcRules.JdbcAggregateRule.html  |    6 +-
 .../calcite/adapter/jdbc/JdbcRules.JdbcCalc.html   |   10 +-
 .../calcite/adapter/jdbc/JdbcRules.JdbcFilter.html |    4 +-
 .../adapter/jdbc/JdbcRules.JdbcFilterRule.html     |    6 +-
 .../adapter/jdbc/JdbcRules.JdbcIntersect.html      |    4 +-
 .../adapter/jdbc/JdbcRules.JdbcIntersectRule.html  |    6 +-
 .../calcite/adapter/jdbc/JdbcRules.JdbcJoin.html   |    8 +-
 .../adapter/jdbc/JdbcRules.JdbcJoinRule.html       |   10 +-
 .../calcite/adapter/jdbc/JdbcRules.JdbcMinus.html  |    4 +-
 .../adapter/jdbc/JdbcRules.JdbcMinusRule.html      |    6 +-
 .../adapter/jdbc/JdbcRules.JdbcProject.html        |    8 +-
 .../adapter/jdbc/JdbcRules.JdbcProjectRule.html    |    6 +-
 .../calcite/adapter/jdbc/JdbcRules.JdbcSort.html   |   54 +-
 .../adapter/jdbc/JdbcRules.JdbcSortRule.html       |    6 +-
 .../jdbc/JdbcRules.JdbcTableModificationRule.html  |    6 +-
 .../adapter/jdbc/JdbcRules.JdbcTableModify.html    |   16 +-
 .../calcite/adapter/jdbc/JdbcRules.JdbcUnion.html  |    8 +-
 .../adapter/jdbc/JdbcRules.JdbcUnionRule.html      |    6 +-
 .../calcite/adapter/jdbc/JdbcRules.JdbcValues.html |    4 +-
 .../adapter/jdbc/JdbcRules.JdbcValuesRule.html     |    6 +-
 .../org/apache/calcite/adapter/jdbc/JdbcRules.html |    2 +-
 .../calcite/adapter/jdbc/JdbcSchema.Factory.html   |    2 +-
 .../calcite/adapter/jdbc/JdbcSchema.Foo.html       |    6 +-
 .../apache/calcite/adapter/jdbc/JdbcSchema.html    |   58 +-
 .../org/apache/calcite/adapter/jdbc/JdbcTable.html |   27 +-
 .../apache/calcite/adapter/jdbc/JdbcTableScan.html |    4 +-
 .../adapter/jdbc/JdbcToEnumerableConverter.html    |    8 +-
 .../jdbc/JdbcToEnumerableConverterRule.html        |    6 +-
 .../calcite/adapter/jdbc/package-summary.html      |    2 +-
 .../apache/calcite/adapter/jdbc/package-tree.html  |    2 +-
 .../adapter/kafka/KafkaMessageEnumerator.html      |    6 +-
 .../calcite/adapter/kafka/KafkaRowConverter.html   |    2 +-
 .../adapter/kafka/KafkaRowConverterImpl.html       |    2 +-
 .../calcite/adapter/kafka/KafkaStreamTable.html    |   14 +-
 .../calcite/adapter/kafka/KafkaTableFactory.html   |    8 +-
 .../calcite/adapter/kafka/KafkaTableOptions.html   |    2 +-
 .../calcite/adapter/kafka/package-summary.html     |    2 +-
 .../apache/calcite/adapter/kafka/package-tree.html |    2 +-
 .../calcite/adapter/mongodb/MongoAggregate.html    |    4 +-
 .../calcite/adapter/mongodb/MongoFilter.html       |    8 +-
 .../calcite/adapter/mongodb/MongoMethod.html       |    2 +-
 .../calcite/adapter/mongodb/MongoProject.html      |    8 +-
 .../adapter/mongodb/MongoRel.Implementor.html      |    2 +-
 .../apache/calcite/adapter/mongodb/MongoRel.html   |    4 +-
 .../apache/calcite/adapter/mongodb/MongoRules.html |    2 +-
 .../calcite/adapter/mongodb/MongoSchema.html       |    2 +-
 .../adapter/mongodb/MongoSchemaFactory.html        |    2 +-
 .../apache/calcite/adapter/mongodb/MongoSort.html  |   38 +-
 .../adapter/mongodb/MongoTable.MongoQueryable.html |   14 +-
 .../apache/calcite/adapter/mongodb/MongoTable.html |    7 +-
 .../calcite/adapter/mongodb/MongoTableScan.html    |    8 +-
 .../mongodb/MongoToEnumerableConverter.html        |    8 +-
 .../mongodb/MongoToEnumerableConverterRule.html    |    2 +-
 .../calcite/adapter/mongodb/package-summary.html   |    2 +-
 .../calcite/adapter/mongodb/package-tree.html      |    2 +-
 .../apache/calcite/adapter/os/DuTableFunction.html |    2 +-
 .../calcite/adapter/os/FilesTableFunction.html     |    2 +-
 .../adapter/os/GitCommitsTableFunction.html        |    2 +-
 .../calcite/adapter/os/JpsTableFunction.html       |    2 +-
 .../org/apache/calcite/adapter/os/Processes.html   |    2 +-
 .../apache/calcite/adapter/os/PsTableFunction.html |    2 +-
 .../org/apache/calcite/adapter/os/SqlShell.html    |    2 +-
 .../calcite/adapter/os/StdinTableFunction.html     |    2 +-
 .../calcite/adapter/os/VmstatTableFunction.html    |    2 +-
 .../apache/calcite/adapter/os/package-summary.html |    2 +-
 .../apache/calcite/adapter/os/package-tree.html    |    2 +-
 .../apache/calcite/adapter/pig/PigAggFunction.html |    2 +-
 .../apache/calcite/adapter/pig/PigAggregate.html   |    4 +-
 .../apache/calcite/adapter/pig/PigDataType.html    |    2 +-
 .../org/apache/calcite/adapter/pig/PigFilter.html  |    4 +-
 .../org/apache/calcite/adapter/pig/PigJoin.html    |    4 +-
 .../org/apache/calcite/adapter/pig/PigProject.html |    4 +-
 .../calcite/adapter/pig/PigRel.Implementor.html    |    2 +-
 .../org/apache/calcite/adapter/pig/PigRel.html     |    4 +-
 .../pig/PigRelFactories.PigAggregateFactory.html   |    2 +-
 .../pig/PigRelFactories.PigFilterFactory.html      |    2 +-
 .../pig/PigRelFactories.PigJoinFactory.html        |    2 +-
 .../pig/PigRelFactories.PigTableScanFactory.html   |    2 +-
 .../calcite/adapter/pig/PigRelFactories.html       |    2 +-
 .../org/apache/calcite/adapter/pig/PigRules.html   |    2 +-
 .../org/apache/calcite/adapter/pig/PigSchema.html  |    2 +-
 .../calcite/adapter/pig/PigSchemaFactory.html      |    2 +-
 .../org/apache/calcite/adapter/pig/PigTable.html   |    7 +-
 .../calcite/adapter/pig/PigTableFactory.html       |    8 +-
 .../apache/calcite/adapter/pig/PigTableScan.html   |    4 +-
 .../adapter/pig/PigToEnumerableConverter.html      |    4 +-
 .../adapter/pig/PigToEnumerableConverterRule.html  |    2 +-
 .../calcite/adapter/pig/package-summary.html       |    2 +-
 .../apache/calcite/adapter/pig/package-tree.html   |    2 +-
 .../apache/calcite/adapter/redis/RedisConfig.html  |    2 +-
 .../calcite/adapter/redis/RedisDataFormat.html     |    2 +-
 .../calcite/adapter/redis/RedisDataProcess.html    |    2 +-
 .../calcite/adapter/redis/RedisDataType.html       |    2 +-
 .../calcite/adapter/redis/RedisJedisManager.html   |    2 +-
 .../calcite/adapter/redis/RedisSchemaFactory.html  |    2 +-
 .../apache/calcite/adapter/redis/RedisTable.html   |   11 +-
 .../calcite/adapter/redis/RedisTableFactory.html   |    8 +-
 .../calcite/adapter/redis/RedisTableFieldInfo.html |    2 +-
 .../calcite/adapter/redis/package-summary.html     |    2 +-
 .../apache/calcite/adapter/redis/package-tree.html |    2 +-
 .../adapter/spark/EnumerableToSparkConverter.html  |    8 +-
 .../adapter/spark/JdbcToSparkConverter.html        |    8 +-
 .../adapter/spark/JdbcToSparkConverterRule.html    |    2 +-
 .../calcite/adapter/spark/SparkHandlerImpl.html    |    2 +-
 .../apache/calcite/adapter/spark/SparkMethod.html  |    2 +-
 .../adapter/spark/SparkRel.Implementor.html        |    8 +-
 .../calcite/adapter/spark/SparkRel.Result.html     |    2 +-
 .../org/apache/calcite/adapter/spark/SparkRel.html |    4 +-
 .../adapter/spark/SparkRules.SparkCalc.html        |   10 +-
 .../adapter/spark/SparkRules.SparkValues.html      |    4 +-
 .../adapter/spark/SparkRules.SparkValuesRule.html  |    2 +-
 .../apache/calcite/adapter/spark/SparkRules.html   |    2 +-
 .../spark/SparkRuntime.CalciteFlatMapFunction.html |    2 +-
 .../apache/calcite/adapter/spark/SparkRuntime.html |    2 +-
 .../adapter/spark/SparkToEnumerableConverter.html  |    8 +-
 .../calcite/adapter/spark/package-summary.html     |    2 +-
 .../apache/calcite/adapter/spark/package-tree.html |    2 +-
 .../calcite/adapter/splunk/SplunkDriver.html       |    2 +-
 .../adapter/splunk/SplunkPushDownRule.Config.html  |    2 +-
 .../calcite/adapter/splunk/SplunkPushDownRule.html |    2 +-
 .../apache/calcite/adapter/splunk/SplunkQuery.html |    4 +-
 .../calcite/adapter/splunk/SplunkSchema.html       |    2 +-
 .../calcite/adapter/splunk/SplunkTableScan.html    |    6 +-
 .../calcite/adapter/splunk/package-summary.html    |    2 +-
 .../calcite/adapter/splunk/package-tree.html       |    2 +-
 .../splunk/search/SearchResultListener.html        |    2 +-
 .../adapter/splunk/search/SplunkConnection.html    |    2 +-
 ...onnectionImpl.CountingSearchResultListener.html |    2 +-
 ...plunkConnectionImpl.SplunkResultEnumerator.html |    2 +-
 .../splunk/search/SplunkConnectionImpl.html        |    2 +-
 .../adapter/splunk/search/package-summary.html     |    2 +-
 .../adapter/splunk/search/package-tree.html        |    2 +-
 .../calcite/adapter/splunk/util/StringUtils.html   |    2 +-
 .../adapter/splunk/util/package-summary.html       |    2 +-
 .../calcite/adapter/splunk/util/package-tree.html  |    2 +-
 .../apache/calcite/adapter/tpcds/TpcdsSchema.html  |    2 +-
 .../calcite/adapter/tpcds/TpcdsSchemaFactory.html  |    2 +-
 .../calcite/adapter/tpcds/package-summary.html     |    2 +-
 .../apache/calcite/adapter/tpcds/package-tree.html |    2 +-
 .../apache/calcite/adapter/tpch/TpchSchema.html    |    2 +-
 .../calcite/adapter/tpch/TpchSchemaFactory.html    |    2 +-
 .../calcite/adapter/tpch/package-summary.html      |    2 +-
 .../apache/calcite/adapter/tpch/package-tree.html  |    2 +-
 .../calcite/chinook/CalciteConnectionProvider.html |    2 +-
 ...ookAvaticaServer.CalciteChinookMetaFactory.html |    2 +-
 ...ChinookAvaticaServer.RawChinookMetaFactory.html |    2 +-
 .../calcite/chinook/ChinookAvaticaServer.html      |    2 +-
 .../calcite/chinook/ChosenCustomerEmail.html       |    2 +-
 .../org/apache/calcite/chinook/CodesFunction.html  |    2 +-
 .../chinook/ConnectionFactory.DatabaseWrapper.html |    2 +-
 .../apache/calcite/chinook/ConnectionFactory.html  |    2 +-
 .../calcite/chinook/EnvironmentFairy.User.html     |    2 +-
 .../apache/calcite/chinook/EnvironmentFairy.html   |    2 +-
 .../chinook/PreferredAlbumsTableFactory.html       |    8 +-
 .../chinook/PreferredGenresTableFactory.html       |    8 +-
 .../calcite/chinook/StringConcatFunction.html      |    2 +-
 .../apache/calcite/chinook/package-summary.html    |    2 +-
 .../org/apache/calcite/chinook/package-tree.html   |    2 +-
 .../calcite/config/CalciteConnectionConfig.html    |   66 +-
 .../config/CalciteConnectionConfigImpl.html        |   66 +-
 .../calcite/config/CalciteConnectionProperty.html  |   27 +-
 .../calcite/config/CalciteSystemProperty.html      |   49 +-
 .../apache/calcite/config/CharLiteralStyle.html    |    2 +-
 .../org/apache/calcite/config/Lex.html             |    2 +-
 .../org/apache/calcite/config/NullCollation.html   |    2 +-
 .../org/apache/calcite/config/package-summary.html |    4 +-
 .../org/apache/calcite/config/package-tree.html    |    2 +-
 .../org/apache/calcite/example/maze/MazeTable.html |   11 +-
 .../calcite/example/maze/package-summary.html      |    2 +-
 .../apache/calcite/example/maze/package-tree.html  |    2 +-
 .../interpreter/AggregateNode.BigDecimalSum.html   |    2 +-
 .../interpreter/AggregateNode.DoubleSum.html       |    2 +-
 .../calcite/interpreter/AggregateNode.IntSum.html  |    2 +-
 .../calcite/interpreter/AggregateNode.LongSum.html |    2 +-
 .../interpreter/AggregateNode.MaxBigDecimal.html   |    2 +-
 .../interpreter/AggregateNode.MaxDouble.html       |    2 +-
 .../interpreter/AggregateNode.MaxFloat.html        |    2 +-
 .../calcite/interpreter/AggregateNode.MaxInt.html  |    2 +-
 .../calcite/interpreter/AggregateNode.MaxLong.html |    2 +-
 .../interpreter/AggregateNode.MinBigDecimal.html   |    2 +-
 .../interpreter/AggregateNode.MinBoolean.html      |    2 +-
 .../interpreter/AggregateNode.MinDouble.html       |    2 +-
 .../interpreter/AggregateNode.MinFloat.html        |    2 +-
 .../calcite/interpreter/AggregateNode.MinInt.html  |    2 +-
 .../calcite/interpreter/AggregateNode.MinLong.html |    2 +-
 .../AggregateNode.NumericComparison.html           |    2 +-
 .../apache/calcite/interpreter/AggregateNode.html  |   23 +-
 .../calcite/interpreter/BindableConvention.html    |    6 +-
 .../apache/calcite/interpreter/BindableRel.html    |    6 +-
 .../interpreter/Bindables.BindableAggregate.html   |   20 +-
 .../Bindables.BindableAggregateRule.html           |    6 +-
 .../interpreter/Bindables.BindableFilter.html      |   12 +-
 .../interpreter/Bindables.BindableFilterRule.html  |    2 +-
 .../interpreter/Bindables.BindableIntersect.html   |   12 +-
 .../interpreter/Bindables.BindableJoin.html        |   12 +-
 .../interpreter/Bindables.BindableJoinRule.html    |    2 +-
 .../interpreter/Bindables.BindableMatch.html       |   12 +-
 .../interpreter/Bindables.BindableMatchRule.html   |    2 +-
 .../interpreter/Bindables.BindableMinus.html       |   12 +-
 .../interpreter/Bindables.BindableProject.html     |   12 +-
 .../interpreter/Bindables.BindableProjectRule.html |    2 +-
 .../interpreter/Bindables.BindableSetOpRule.html   |    2 +-
 .../interpreter/Bindables.BindableSort.html        |   28 +-
 .../interpreter/Bindables.BindableSortRule.html    |    2 +-
 .../interpreter/Bindables.BindableTableScan.html   |   18 +-
 .../Bindables.BindableTableScanRule.Config.html    |    2 +-
 .../Bindables.BindableTableScanRule.html           |    2 +-
 .../interpreter/Bindables.BindableUnion.html       |   12 +-
 .../interpreter/Bindables.BindableValues.html      |   12 +-
 .../interpreter/Bindables.BindableValuesRule.html  |    2 +-
 .../interpreter/Bindables.BindableWindow.html      |   16 +-
 .../interpreter/Bindables.BindableWindowRule.html  |    2 +-
 .../org/apache/calcite/interpreter/Bindables.html  |    2 +-
 .../apache/calcite/interpreter/CollectNode.html    |   23 +-
 .../org/apache/calcite/interpreter/Compiler.html   |    6 +-
 .../org/apache/calcite/interpreter/Context.html    |    6 +-
 .../org/apache/calcite/interpreter/FilterNode.html |   23 +-
 .../interpreter/InterpretableConvention.html       |    2 +-
 .../interpreter/InterpretableConverter.html        |   12 +-
 .../InterpretableRel.InterpreterImplementor.html   |   10 +-
 .../calcite/interpreter/InterpretableRel.html      |    4 +-
 .../apache/calcite/interpreter/Interpreter.html    |   12 +-
 .../apache/calcite/interpreter/Interpreters.html   |    2 +-
 .../calcite/interpreter/JaninoRexCompiler.html     |    6 +-
 .../org/apache/calcite/interpreter/JoinNode.html   |   23 +-
 .../org/apache/calcite/interpreter/MatchNode.html  |   23 +-
 .../org/apache/calcite/interpreter/Node.html       |   32 +-
 .../calcite/interpreter/Nodes.CoreCompiler.html    |   46 +-
 .../org/apache/calcite/interpreter/Nodes.html      |    2 +-
 .../interpreter/NoneToBindableConverterRule.html   |    6 +-
 .../apache/calcite/interpreter/ProjectNode.html    |   23 +-
 .../apache/calcite/interpreter/Row.RowBuilder.html |    6 +-
 .../org/apache/calcite/interpreter/Row.html        |   46 +-
 .../Scalar.Producer.html}                          |   23 +-
 .../org/apache/calcite/interpreter/Scalar.html     |   43 +-
 .../org/apache/calcite/interpreter/SetOpNode.html  |   23 +-
 .../org/apache/calcite/interpreter/Sink.html       |    2 +-
 .../org/apache/calcite/interpreter/SortNode.html   |   23 +-
 .../org/apache/calcite/interpreter/Source.html     |    6 +-
 ...bleScanNode.html => TableFunctionScanNode.html} |   26 +-
 .../apache/calcite/interpreter/TableScanNode.html  |    9 +-
 .../apache/calcite/interpreter/UncollectNode.html  |   23 +-
 .../org/apache/calcite/interpreter/UnionNode.html  |    9 +-
 .../org/apache/calcite/interpreter/ValuesNode.html |    9 +-
 .../org/apache/calcite/interpreter/WindowNode.html |   23 +-
 .../calcite/interpreter/package-summary.html       |   27 +-
 .../apache/calcite/interpreter/package-tree.html   |   10 +-
 .../org/apache/calcite/jdbc/CalciteConnection.html |    2 +-
 .../org/apache/calcite/jdbc/CalciteFactory.html    |   10 +-
 .../apache/calcite/jdbc/CalciteJdbc41Factory.html  |   18 +-
 .../org/apache/calcite/jdbc/CalciteMetaImpl.html   |   73 +-
 .../jdbc/CalcitePrepare.AnalyzeViewResult.html     |   34 +-
 .../jdbc/CalcitePrepare.CalciteSignature.html      |   40 +-
 .../calcite/jdbc/CalcitePrepare.Context.html       |    6 +-
 .../calcite/jdbc/CalcitePrepare.ConvertResult.html |    2 +-
 .../apache/calcite/jdbc/CalcitePrepare.Dummy.html  |    2 +-
 .../calcite/jdbc/CalcitePrepare.ParseResult.html   |    2 +-
 .../apache/calcite/jdbc/CalcitePrepare.Query.html  |   14 +-
 ...CalcitePrepare.SparkHandler.RuleSetBuilder.html |    2 +-
 .../calcite/jdbc/CalcitePrepare.SparkHandler.html  |    2 +-
 .../org/apache/calcite/jdbc/CalcitePrepare.html    |    6 +-
 .../org/apache/calcite/jdbc/CalciteResultSet.html  |    2 +-
 .../org/apache/calcite/jdbc/CalciteRootSchema.html |   22 +-
 .../apache/calcite/jdbc/CalciteSchema.Entry.html   |    8 +-
 .../calcite/jdbc/CalciteSchema.FunctionEntry.html  |    8 +-
 .../jdbc/CalciteSchema.FunctionEntryImpl.html      |    2 +-
 .../calcite/jdbc/CalciteSchema.LatticeEntry.html   |    8 +-
 .../jdbc/CalciteSchema.LatticeEntryImpl.html       |    2 +-
 .../calcite/jdbc/CalciteSchema.TableEntry.html     |    8 +-
 .../calcite/jdbc/CalciteSchema.TableEntryImpl.html |    2 +-
 .../calcite/jdbc/CalciteSchema.TypeEntry.html      |    8 +-
 .../calcite/jdbc/CalciteSchema.TypeEntryImpl.html  |    2 +-
 .../org/apache/calcite/jdbc/CalciteSchema.html     |   82 +-
 .../org/apache/calcite/jdbc/CalciteStatement.html  |    2 +-
 .../apache/calcite/jdbc/ContextSqlValidator.html   |    6 +-
 .../org/apache/calcite/jdbc/Driver.html            |    2 +-
 .../org/apache/calcite/jdbc/JavaCollation.html     |    9 +-
 .../org/apache/calcite/jdbc/JavaRecordType.html    |    8 +-
 .../JavaTypeFactoryImpl.SyntheticRecordType.html   |    2 +-
 .../apache/calcite/jdbc/JavaTypeFactoryImpl.html   |    4 +-
 .../apache/calcite/jdbc/SqlTimeoutException.html   |    2 +-
 .../org/apache/calcite/jdbc/package-summary.html   |    4 +-
 .../org/apache/calcite/jdbc/package-tree.html      |    2 +-
 .../apache/calcite/linq4j/AbstractEnumerable.html  |    4 +-
 .../apache/calcite/linq4j/AbstractEnumerable2.html |    4 +-
 .../apache/calcite/linq4j/AbstractQueryable.html   |   14 +-
 .../org/apache/calcite/linq4j/BaseQueryable.html   |   36 +-
 .../calcite/linq4j/CartesianProductEnumerator.html |    2 +-
 .../apache/calcite/linq4j/DefaultEnumerable.html   |  136 +-
 .../calcite/linq4j/DelegatingEnumerator.html       |    2 +-
 .../org/apache/calcite/linq4j/Enumerable.html      |    9 +-
 .../apache/calcite/linq4j/EnumerableDefaults.html  |  350 +-
 .../org/apache/calcite/linq4j/Enumerator.html      |    5 +-
 .../apache/calcite/linq4j/ExtendedEnumerable.html  |  139 +-
 .../calcite/linq4j/ExtendedOrderedEnumerable.html  |    6 +-
 .../calcite/linq4j/ExtendedOrderedQueryable.html   |   16 +-
 .../org/apache/calcite/linq4j/Extensions.html      |    4 +-
 .../org/apache/calcite/linq4j/Grouping.html        |    7 +-
 .../org/apache/calcite/linq4j/JoinType.html        |    2 +-
 .../org/apache/calcite/linq4j/Linq4j.html          |   14 +-
 .../org/apache/calcite/linq4j/Lookup.html          |    4 +-
 .../apache/calcite/linq4j/MemoryEnumerable.html    |    4 +-
 .../apache/calcite/linq4j/MemoryEnumerator.html    |    4 +-
 .../calcite/linq4j/MemoryFactory.Memory.html       |    6 +-
 .../org/apache/calcite/linq4j/MemoryFactory.html   |    2 +-
 .../Interpreters.html => linq4j/Nullness.html}     |   55 +-
 .../org/apache/calcite/linq4j/OpType.html          |    2 +-
 .../org/apache/calcite/linq4j/Ord.html             |    2 +-
 .../apache/calcite/linq4j/OrderedEnumerable.html   |    6 +-
 .../apache/calcite/linq4j/OrderedQueryable.html    |   16 +-
 .../org/apache/calcite/linq4j/PackageMarker.html   |    2 +-
 .../org/apache/calcite/linq4j/QueryProvider.html   |    2 +-
 .../linq4j/QueryProviderImpl.QueryableImpl.html    |   14 +-
 .../apache/calcite/linq4j/QueryProviderImpl.html   |    8 +-
 .../org/apache/calcite/linq4j/Queryable.html       |   19 +-
 ...eryableDefaults.NonLeafReplayableQueryable.html |   22 +-
 .../linq4j/QueryableDefaults.Replayable.html       |   14 +-
 .../QueryableDefaults.ReplayableQueryable.html     |   14 +-
 .../apache/calcite/linq4j/QueryableDefaults.html   |    2 +-
 .../apache/calcite/linq4j/QueryableFactory.html    |   37 +-
 .../apache/calcite/linq4j/QueryableRecorder.html   |   37 +-
 .../org/apache/calcite/linq4j/RawEnumerable.html   |    7 +-
 .../org/apache/calcite/linq4j/RawQueryable.html    |   17 +-
 .../calcite/linq4j/TransformedEnumerator.html      |   14 +-
 .../linq4j/function/BigDecimalFunction1.html       |    2 +-
 .../calcite/linq4j/function/Deterministic.html     |    2 +-
 .../calcite/linq4j/function/DoubleFunction1.html   |    2 +-
 .../calcite/linq4j/function/EqualityComparer.html  |    2 +-
 .../calcite/linq4j/function/Experimental.html      |    2 +-
 .../calcite/linq4j/function/FloatFunction1.html    |    2 +-
 .../apache/calcite/linq4j/function/Function.html   |    2 +-
 .../apache/calcite/linq4j/function/Function0.html  |    2 +-
 .../apache/calcite/linq4j/function/Function1.html  |    2 +-
 .../apache/calcite/linq4j/function/Function2.html  |    2 +-
 .../apache/calcite/linq4j/function/Functions.html  |    2 +-
 .../org/apache/calcite/linq4j/function/Hints.html  |    2 +-
 .../calcite/linq4j/function/IntegerFunction1.html  |    2 +-
 .../calcite/linq4j/function/LongFunction1.html     |    2 +-
 .../calcite/linq4j/function/NonDeterministic.html  |    2 +-
 .../function/NullableBigDecimalFunction1.html      |    2 +-
 .../linq4j/function/NullableDoubleFunction1.html   |    2 +-
 .../linq4j/function/NullableFloatFunction1.html    |    2 +-
 .../linq4j/function/NullableIntegerFunction1.html  |    2 +-
 .../linq4j/function/NullableLongFunction1.html     |    2 +-
 .../apache/calcite/linq4j/function/Parameter.html  |    2 +-
 .../apache/calcite/linq4j/function/Predicate1.html |    2 +-
 .../apache/calcite/linq4j/function/Predicate2.html |    2 +-
 .../apache/calcite/linq4j/function/SemiStrict.html |    2 +-
 .../org/apache/calcite/linq4j/function/Strict.html |    2 +-
 .../calcite/linq4j/function/package-summary.html   |    2 +-
 .../calcite/linq4j/function/package-tree.html      |    2 +-
 .../org/apache/calcite/linq4j/package-summary.html |   24 +-
 .../org/apache/calcite/linq4j/package-tree.html    |    3 +-
 .../apache/calcite/linq4j/tree/AbstractNode.html   |   10 +-
 .../linq4j/tree/ArrayLengthRecordField.html        |   10 +-
 .../calcite/linq4j/tree/BinaryExpression.html      |    6 +-
 .../apache/calcite/linq4j/tree/BlockBuilder.html   |   41 +-
 .../apache/calcite/linq4j/tree/BlockStatement.html |   10 +-
 .../org/apache/calcite/linq4j/tree/Blocks.html     |    2 +-
 .../apache/calcite/linq4j/tree/CallSiteBinder.html |    2 +-
 .../org/apache/calcite/linq4j/tree/CatchBlock.html |    6 +-
 .../calcite/linq4j/tree/ClassDeclaration.html      |   14 +-
 .../linq4j/tree/ClassDeclarationFinder.html        |   14 +-
 .../calcite/linq4j/tree/ConditionalExpression.html |    6 +-
 .../calcite/linq4j/tree/ConditionalStatement.html  |    6 +-
 .../calcite/linq4j/tree/ConstantExpression.html    |   18 +-
 .../calcite/linq4j/tree/ConstantUntypedNull.html   |    6 +-
 .../linq4j/tree/ConstructorDeclaration.html        |    6 +-
 .../calcite/linq4j/tree/DeclarationStatement.html  |   14 +-
 .../calcite/linq4j/tree/DefaultExpression.html     |    2 +-
 .../linq4j/tree/DeterministicCodeOptimizer.html    |   26 +-
 .../calcite/linq4j/tree/DynamicExpression.html     |    2 +-
 .../apache/calcite/linq4j/tree/ElementInit.html    |    2 +-
 .../org/apache/calcite/linq4j/tree/Expression.html |    8 +-
 .../apache/calcite/linq4j/tree/ExpressionType.html |   10 +-
 .../calcite/linq4j/tree/ExpressionVisitor.html     |    2 +-
 .../linq4j/tree/Expressions.FluentList.html        |    6 +-
 .../apache/calcite/linq4j/tree/Expressions.html    |  225 +-
 .../calcite/linq4j/tree/FieldDeclaration.html      |   14 +-
 .../calcite/linq4j/tree/ForEachStatement.html      |    6 +-
 .../apache/calcite/linq4j/tree/ForStatement.html   |   22 +-
 .../linq4j/tree/FunctionExpression.Invokable.html  |    8 +-
 .../calcite/linq4j/tree/FunctionExpression.html    |   14 +-
 .../calcite/linq4j/tree/GotoExpressionKind.html    |    2 +-
 .../apache/calcite/linq4j/tree/GotoStatement.html  |   18 +-
 .../calcite/linq4j/tree/IndexExpression.html       |    6 +-
 .../calcite/linq4j/tree/InvocationExpression.html  |    2 +-
 .../apache/calcite/linq4j/tree/LabelStatement.html |    6 +-
 .../apache/calcite/linq4j/tree/LabelTarget.html    |    6 +-
 .../calcite/linq4j/tree/LambdaExpression.html      |    2 +-
 .../calcite/linq4j/tree/ListInitExpression.html    |    2 +-
 .../calcite/linq4j/tree/MemberAssignment.html      |    2 +-
 .../apache/calcite/linq4j/tree/MemberBinding.html  |    2 +-
 .../calcite/linq4j/tree/MemberDeclaration.html     |    2 +-
 .../calcite/linq4j/tree/MemberExpression.html      |   24 +-
 .../calcite/linq4j/tree/MemberInitExpression.html  |    2 +-
 .../calcite/linq4j/tree/MemberListBinding.html     |    2 +-
 .../calcite/linq4j/tree/MemberMemberBinding.html   |    2 +-
 .../calcite/linq4j/tree/MethodCallExpression.html  |   14 +-
 .../calcite/linq4j/tree/MethodDeclaration.html     |    6 +-
 .../calcite/linq4j/tree/NewArrayExpression.html    |   22 +-
 .../apache/calcite/linq4j/tree/NewExpression.html  |   14 +-
 .../org/apache/calcite/linq4j/tree/Node.html       |    2 +-
 .../calcite/linq4j/tree/OptimizeShuttle.html       |    6 +-
 .../calcite/linq4j/tree/ParameterExpression.html   |   10 +-
 .../calcite/linq4j/tree/Primitive.Flavor.html      |    2 +-
 .../apache/calcite/linq4j/tree/Primitive.Sink.html |    6 +-
 .../calcite/linq4j/tree/Primitive.Source.html      |    6 +-
 .../org/apache/calcite/linq4j/tree/Primitive.html  |  158 +-
 .../apache/calcite/linq4j/tree/PseudoField.html    |   10 +-
 .../calcite/linq4j/tree/ReflectedPseudoField.html  |   14 +-
 .../org/apache/calcite/linq4j/tree/Shuttle.html    |   50 +-
 .../org/apache/calcite/linq4j/tree/Statement.html  |    2 +-
 .../org/apache/calcite/linq4j/tree/SwitchCase.html |    2 +-
 .../calcite/linq4j/tree/SwitchStatement.html       |    2 +-
 .../calcite/linq4j/tree/TernaryExpression.html     |    6 +-
 .../apache/calcite/linq4j/tree/ThrowStatement.html |    6 +-
 .../apache/calcite/linq4j/tree/TryStatement.html   |   14 +-
 .../calcite/linq4j/tree/TypeBinaryExpression.html  |    6 +-
 .../calcite/linq4j/tree/Types.ArrayType.html       |    2 +-
 .../apache/calcite/linq4j/tree/Types.MapType.html  |    2 +-
 .../calcite/linq4j/tree/Types.RecordField.html     |    2 +-
 .../calcite/linq4j/tree/Types.RecordType.html      |    2 +-
 .../org/apache/calcite/linq4j/tree/Types.html      |   10 +-
 .../calcite/linq4j/tree/UnaryExpression.html       |    6 +-
 .../org/apache/calcite/linq4j/tree/Visitor.html    |    2 +-
 .../apache/calcite/linq4j/tree/VisitorImpl.html    |    4 +-
 .../apache/calcite/linq4j/tree/WhileStatement.html |    6 +-
 .../calcite/linq4j/tree/package-summary.html       |    2 +-
 .../apache/calcite/linq4j/tree/package-tree.html   |    2 +-
 .../DelegatingLatticeStatisticProvider.html        |    2 +-
 .../calcite/materialize/Lattice.BaseColumn.html    |    5 +-
 .../calcite/materialize/Lattice.Builder.html       |   16 +-
 .../apache/calcite/materialize/Lattice.Column.html |   10 +-
 .../calcite/materialize/Lattice.DerivedColumn.html |    9 +-
 .../calcite/materialize/Lattice.Measure.html       |   19 +-
 .../calcite/materialize/Lattice.SqlWriter.html     |    2 +-
 .../apache/calcite/materialize/Lattice.Tile.html   |    2 +-
 .../calcite/materialize/Lattice.TileBuilder.html   |    2 +-
 .../org/apache/calcite/materialize/Lattice.html    |    5 +-
 .../calcite/materialize/LatticeChildNode.html      |    2 +-
 .../apache/calcite/materialize/LatticeNode.html    |    6 +-
 .../calcite/materialize/LatticeRootNode.html       |    2 +-
 .../LatticeStatisticProvider.Factory.html          |    2 +-
 .../materialize/LatticeStatisticProvider.html      |    2 +-
 .../calcite/materialize/LatticeSuggester.html      |    2 +-
 .../apache/calcite/materialize/LatticeTable.html   |   12 +-
 .../org/apache/calcite/materialize/Lattices.html   |    2 +-
 .../calcite/materialize/MaterializationKey.html    |    6 +-
 ...MaterializationService.DefaultTableFactory.html |    6 +-
 .../MaterializationService.TableFactory.html       |    6 +-
 .../materialize/MaterializationService.html        |   46 +-
 .../calcite/materialize/SqlStatisticProvider.html  |    2 +-
 .../org/apache/calcite/materialize/TileKey.html    |    6 +-
 .../apache/calcite/materialize/TileSuggester.html  |    2 +-
 .../calcite/materialize/package-summary.html       |    4 +-
 .../apache/calcite/materialize/package-tree.html   |    2 +-
 .../org/apache/calcite/model/JsonColumn.html       |   10 +-
 .../org/apache/calcite/model/JsonCustomSchema.html |   24 +-
 .../org/apache/calcite/model/JsonCustomTable.html  |   20 +-
 .../org/apache/calcite/model/JsonFunction.html     |   26 +-
 .../org/apache/calcite/model/JsonJdbcSchema.html   |   58 +-
 .../org/apache/calcite/model/JsonLattice.html      |   42 +-
 .../org/apache/calcite/model/JsonMapSchema.html    |   14 +-
 .../apache/calcite/model/JsonMaterialization.html  |   28 +-
 .../org/apache/calcite/model/JsonMeasure.html      |   16 +-
 .../org/apache/calcite/model/JsonRoot.html         |   16 +-
 .../org/apache/calcite/model/JsonSchema.Type.html  |    2 +-
 .../org/apache/calcite/model/JsonSchema.html       |   32 +-
 .../org/apache/calcite/model/JsonStream.html       |   14 +-
 .../org/apache/calcite/model/JsonTable.html        |   20 +-
 .../org/apache/calcite/model/JsonTile.html         |   10 +-
 .../org/apache/calcite/model/JsonType.html         |   16 +-
 .../apache/calcite/model/JsonTypeAttribute.html    |   14 +-
 .../org/apache/calcite/model/JsonView.html         |   26 +-
 .../calcite/model/ModelHandler.ExtraOperand.html   |    2 +-
 .../org/apache/calcite/model/ModelHandler.html     |   18 +-
 .../org/apache/calcite/model/package-summary.html  |    4 +-
 .../org/apache/calcite/model/package-tree.html     |    2 +-
 .../org/apache/calcite/package-summary.html        |    8 +-
 .../org/apache/calcite/package-tree.html           |    3 +-
 .../org/apache/calcite/piglet/Ast.Assignment.html  |    2 +-
 .../org/apache/calcite/piglet/Ast.Assignment1.html |    2 +-
 .../org/apache/calcite/piglet/Ast.BagType.html     |    2 +-
 .../org/apache/calcite/piglet/Ast.Call.html        |    2 +-
 .../apache/calcite/piglet/Ast.DescribeStmt.html    |    2 +-
 .../org/apache/calcite/piglet/Ast.Direction.html   |    2 +-
 .../apache/calcite/piglet/Ast.DistinctStmt.html    |    2 +-
 .../org/apache/calcite/piglet/Ast.DumpStmt.html    |    2 +-
 .../org/apache/calcite/piglet/Ast.FieldSchema.html |    2 +-
 .../org/apache/calcite/piglet/Ast.FilterStmt.html  |    2 +-
 .../calcite/piglet/Ast.ForeachNestedStmt.html      |    2 +-
 .../org/apache/calcite/piglet/Ast.ForeachStmt.html |    2 +-
 .../org/apache/calcite/piglet/Ast.GroupStmt.html   |    2 +-
 .../org/apache/calcite/piglet/Ast.Identifier.html  |    2 +-
 .../org/apache/calcite/piglet/Ast.LimitStmt.html   |    2 +-
 .../org/apache/calcite/piglet/Ast.Literal.html     |    2 +-
 .../org/apache/calcite/piglet/Ast.LoadStmt.html    |    2 +-
 .../org/apache/calcite/piglet/Ast.MapType.html     |    2 +-
 .../org/apache/calcite/piglet/Ast.Node.html        |    2 +-
 .../apache/calcite/piglet/Ast.NumericLiteral.html  |    2 +-
 .../org/apache/calcite/piglet/Ast.Op.html          |    2 +-
 .../org/apache/calcite/piglet/Ast.OrderStmt.html   |    2 +-
 .../org/apache/calcite/piglet/Ast.Program.html     |    2 +-
 .../org/apache/calcite/piglet/Ast.ScalarType.html  |    2 +-
 .../org/apache/calcite/piglet/Ast.Schema.html      |    2 +-
 .../calcite/piglet/Ast.SpecialIdentifier.html      |    2 +-
 .../org/apache/calcite/piglet/Ast.Stmt.html        |    2 +-
 .../org/apache/calcite/piglet/Ast.TupleType.html   |    2 +-
 .../org/apache/calcite/piglet/Ast.Type.html        |    2 +-
 .../org/apache/calcite/piglet/Ast.ValuesStmt.html  |    2 +-
 .../org/apache/calcite/piglet/Ast.html             |    2 +-
 .../calcite/piglet/DynamicTupleRecordType.html     |    4 +-
 .../org/apache/calcite/piglet/Handler.html         |    2 +-
 .../org/apache/calcite/piglet/PigConverter.html    |   40 +-
 .../PigRelBuilder.PigRelTranslationContext.html    |    4 +-
 .../org/apache/calcite/piglet/PigRelBuilder.html   |   12 +-
 .../org/apache/calcite/piglet/PigRelSqlUdfs.html   |    2 +-
 .../calcite/piglet/PigRelToSqlConverter.html       |    4 +-
 .../org/apache/calcite/piglet/PigTable.html        |   11 +-
 .../piglet/PigToSqlAggregateRule.Config.html       |    2 +-
 .../calcite/piglet/PigToSqlAggregateRule.html      |    2 +-
 .../org/apache/calcite/piglet/PigUdfs.html         |    2 +-
 .../calcite/piglet/PigUserDefinedFunction.html     |    4 +-
 .../org/apache/calcite/piglet/package-summary.html |   18 +-
 .../org/apache/calcite/piglet/package-tree.html    |    2 +-
 .../apache/calcite/plan/AbstractRelOptPlanner.html |   42 +-
 .../calcite/plan/CommonRelSubExprRule.Config.html  |    2 +-
 .../apache/calcite/plan/CommonRelSubExprRule.html  |    6 +-
 .../org/apache/calcite/plan/Context.html           |    6 +-
 .../org/apache/calcite/plan/Contexts.html          |   12 +-
 .../org/apache/calcite/plan/Convention.Impl.html   |    6 +-
 .../org/apache/calcite/plan/Convention.html        |    6 +-
 .../apache/calcite/plan/ConventionTraitDef.html    |    6 +-
 .../org/apache/calcite/plan/DeriveMode.html        |    2 +-
 .../plan/MaterializedViewSubstitutionVisitor.html  |    2 +-
 .../calcite/plan/MulticastRelOptListener.html      |    2 +-
 .../org/apache/calcite/plan/RelDigest.html         |    2 +-
 .../apache/calcite/plan/RelHintsPropagator.html    |    2 +-
 .../org/apache/calcite/plan/RelImplementor.html    |    2 +-
 .../org/apache/calcite/plan/RelMultipleTrait.html  |    2 +-
 .../apache/calcite/plan/RelOptAbstractTable.html   |   31 +-
 .../org/apache/calcite/plan/RelOptCluster.html     |   14 +-
 .../org/apache/calcite/plan/RelOptConnection.html  |    2 +-
 .../org/apache/calcite/plan/RelOptCost.html        |    2 +-
 .../org/apache/calcite/plan/RelOptCostFactory.html |    2 +-
 .../org/apache/calcite/plan/RelOptCostImpl.html    |    6 +-
 .../org/apache/calcite/plan/RelOptLattice.html     |   10 +-
 .../plan/RelOptListener.RelChosenEvent.html        |    6 +-
 .../plan/RelOptListener.RelDiscardedEvent.html     |    2 +-
 .../plan/RelOptListener.RelEquivalenceEvent.html   |    2 +-
 .../calcite/plan/RelOptListener.RelEvent.html      |   10 +-
 .../plan/RelOptListener.RuleAttemptedEvent.html    |    2 +-
 .../calcite/plan/RelOptListener.RuleEvent.html     |    2 +-
 .../plan/RelOptListener.RuleProductionEvent.html   |    2 +-
 .../org/apache/calcite/plan/RelOptListener.html    |    2 +-
 .../apache/calcite/plan/RelOptMaterialization.html |   18 +-
 .../calcite/plan/RelOptMaterializations.html       |    2 +-
 .../org/apache/calcite/plan/RelOptNode.html        |    6 +-
 .../plan/RelOptPlanner.CannotPlanException.html    |    2 +-
 .../calcite/plan/RelOptPlanner.Executor.html       |    2 +-
 .../org/apache/calcite/plan/RelOptPlanner.html     |   38 +-
 .../apache/calcite/plan/RelOptPredicateList.html   |   32 +-
 .../org/apache/calcite/plan/RelOptQuery.html       |    6 +-
 .../RelOptRule.ConverterRelOptRuleOperand.html     |    2 +-
 .../org/apache/calcite/plan/RelOptRule.html        |   37 +-
 .../org/apache/calcite/plan/RelOptRuleCall.html    |   14 +-
 .../org/apache/calcite/plan/RelOptRuleOperand.html |   26 +-
 .../calcite/plan/RelOptRuleOperandChildPolicy.html |    2 +-
 .../calcite/plan/RelOptRuleOperandChildren.html    |    2 +-
 .../org/apache/calcite/plan/RelOptRules.html       |    2 +-
 .../calcite/plan/RelOptSamplingParameters.html     |    2 +-
 .../org/apache/calcite/plan/RelOptSchema.html      |    6 +-
 .../calcite/plan/RelOptSchemaWithSampling.html     |   14 +-
 .../calcite/plan/RelOptTable.ToRelContext.html     |    2 +-
 .../calcite/plan/RelOptTable.ViewExpander.html     |    6 +-
 .../org/apache/calcite/plan/RelOptTable.html       |   28 +-
 .../org/apache/calcite/plan/RelOptUtil.Exists.html |    2 +-
 .../calcite/plan/RelOptUtil.InputFinder.html       |   14 +-
 .../plan/RelOptUtil.InputReferencedVisitor.html    |    6 +-
 .../org/apache/calcite/plan/RelOptUtil.Logic.html  |    2 +-
 .../calcite/plan/RelOptUtil.RexInputConverter.html |   30 +-
 .../calcite/plan/RelOptUtil.SubQueryType.html      |    2 +-
 .../apache/calcite/plan/RelOptUtil.TypeDumper.html |    2 +-
 .../plan/RelOptUtil.VariableUsedVisitor.html       |    6 +-
 .../org/apache/calcite/plan/RelOptUtil.html        |  342 +-
 .../org/apache/calcite/plan/RelRule.Config.html    |   12 +-
 .../org/apache/calcite/plan/RelRule.Done.html      |    2 +-
 .../apache/calcite/plan/RelRule.MatchHandler.html  |    2 +-
 .../calcite/plan/RelRule.OperandBuilder.html       |    2 +-
 .../calcite/plan/RelRule.OperandDetailBuilder.html |    5 +-
 .../calcite/plan/RelRule.OperandTransform.html     |    2 +-
 .../org/apache/calcite/plan/RelRule.html           |   10 +-
 .../org/apache/calcite/plan/RelTrait.html          |    6 +-
 .../org/apache/calcite/plan/RelTraitDef.html       |    6 +-
 .../calcite/plan/RelTraitPropagationVisitor.html   |    6 +-
 .../org/apache/calcite/plan/RelTraitSet.html       |  118 +-
 .../apache/calcite/plan/RexImplicationChecker.html |    2 +-
 .../org/apache/calcite/plan/Strong.Policy.html     |    2 +-
 .../org/apache/calcite/plan/Strong.html            |    2 +-
 .../SubstitutionVisitor.AbstractUnifyRule.html     |    8 +-
 .../plan/SubstitutionVisitor.MatchFailed.html      |    2 +-
 .../calcite/plan/SubstitutionVisitor.Operand.html  |    2 +-
 .../plan/SubstitutionVisitor.UnifyResult.html      |    2 +-
 .../plan/SubstitutionVisitor.UnifyRule.html        |   10 +-
 .../plan/SubstitutionVisitor.UnifyRuleCall.html    |    2 +-
 .../apache/calcite/plan/SubstitutionVisitor.html   |   40 +-
 .../apache/calcite/plan/TableAccessMap.Mode.html   |    2 +-
 .../org/apache/calcite/plan/TableAccessMap.html    |    2 +-
 .../org/apache/calcite/plan/ViewExpanders.html     |    5 +-
 .../apache/calcite/plan/VisitorDataContext.html    |   36 +-
 .../org/apache/calcite/plan/hep/HepMatchOrder.html |    2 +-
 .../org/apache/calcite/plan/hep/HepPlanner.html    |   26 +-
 .../org/apache/calcite/plan/hep/HepProgram.html    |    2 +-
 .../apache/calcite/plan/hep/HepProgramBuilder.html |    2 +-
 .../org/apache/calcite/plan/hep/HepRelVertex.html  |   16 +-
 .../org/apache/calcite/plan/hep/HepRuleCall.html   |    2 +-
 .../apache/calcite/plan/hep/package-summary.html   |    2 +-
 .../org/apache/calcite/plan/hep/package-tree.html  |    2 +-
 .../org/apache/calcite/plan/package-summary.html   |    4 +-
 .../org/apache/calcite/plan/package-tree.html      |    2 +-
 ...tractConverter.ExpandConversionRule.Config.html |    2 +-
 .../AbstractConverter.ExpandConversionRule.html    |    2 +-
 .../calcite/plan/volcano/AbstractConverter.html    |   14 +-
 .../org/apache/calcite/plan/volcano/RelSubset.html |   89 +-
 .../org/apache/calcite/plan/volcano/RuleQueue.html |    2 +-
 .../calcite/plan/volcano/VolcanoPlanner.html       |  137 +-
 .../plan/volcano/VolcanoRelMetadataProvider.html   |   15 +-
 .../calcite/plan/volcano/VolcanoRuleCall.html      |    2 +-
 .../plan/volcano/VolcanoTimeoutException.html      |    2 +-
 .../calcite/plan/volcano/package-summary.html      |    2 +-
 .../apache/calcite/plan/volcano/package-tree.html  |    2 +-
 .../calcite/prepare/CalciteCatalogReader.html      |   31 +-
 .../apache/calcite/prepare/CalcitePrepareImpl.html |   10 +-
 .../prepare/PlannerImpl.ViewExpanderImpl.html      |    6 +-
 .../org/apache/calcite/prepare/PlannerImpl.html    |    9 +-
 .../prepare/Prepare.AbstractPreparingTable.html    |    6 +-
 .../calcite/prepare/Prepare.CatalogReader.html     |   16 +-
 .../calcite/prepare/Prepare.Materialization.html   |    2 +-
 .../calcite/prepare/Prepare.PreparedExplain.html   |   22 +-
 .../calcite/prepare/Prepare.PreparedResult.html    |   10 +-
 .../prepare/Prepare.PreparedResultImpl.html        |   32 +-
 .../calcite/prepare/Prepare.PreparingTable.html    |    6 +-
 .../org/apache/calcite/prepare/Prepare.html        |   40 +-
 .../apache/calcite/prepare/RelOptTableImpl.html    |   68 +-
 .../apache/calcite/prepare/package-summary.html    |    4 +-
 .../org/apache/calcite/prepare/package-tree.html   |    2 +-
 .../apache/calcite/profile/Profiler.Column.html    |    9 +-
 .../calcite/profile/Profiler.Distribution.html     |    6 +-
 .../profile/Profiler.FunctionalDependency.html     |    2 +-
 .../apache/calcite/profile/Profiler.Profile.html   |    2 +-
 .../apache/calcite/profile/Profiler.RowCount.html  |    2 +-
 .../apache/calcite/profile/Profiler.Statistic.html |    2 +-
 .../apache/calcite/profile/Profiler.Unique.html    |    2 +-
 .../org/apache/calcite/profile/Profiler.html       |    2 +-
 .../calcite/profile/ProfilerImpl.Builder.html      |    2 +-
 .../org/apache/calcite/profile/ProfilerImpl.html   |    2 +-
 .../org/apache/calcite/profile/SimpleProfiler.html |    2 +-
 .../apache/calcite/profile/package-summary.html    |    4 +-
 .../org/apache/calcite/profile/package-tree.html   |    2 +-
 .../org/apache/calcite/rel/AbstractRelNode.html    |   56 +-
 javadocAggregate/org/apache/calcite/rel/BiRel.html |   12 +-
 .../apache/calcite/rel/InvalidRelException.html    |    2 +-
 .../org/apache/calcite/rel/PhysicalNode.html       |   22 +-
 .../org/apache/calcite/rel/RelCollation.html       |    8 +-
 .../org/apache/calcite/rel/RelCollationImpl.html   |    9 +-
 .../apache/calcite/rel/RelCollationTraitDef.html   |    6 +-
 .../org/apache/calcite/rel/RelCollations.html      |    2 +-
 .../apache/calcite/rel/RelDistribution.Type.html   |    2 +-
 .../org/apache/calcite/rel/RelDistribution.html    |    8 +-
 .../calcite/rel/RelDistributionTraitDef.html       |    6 +-
 .../org/apache/calcite/rel/RelDistributions.html   |    2 +-
 .../calcite/rel/RelFieldCollation.Direction.html   |   45 +-
 .../rel/RelFieldCollation.NullDirection.html       |    2 +-
 .../org/apache/calcite/rel/RelFieldCollation.html  |   14 +-
 .../apache/calcite/rel/RelHomogeneousShuttle.html  |    4 +-
 .../org/apache/calcite/rel/RelInput.html           |   38 +-
 .../org/apache/calcite/rel/RelNode.Context.html    |    2 +-
 .../org/apache/calcite/rel/RelNode.html            |   91 +-
 .../org/apache/calcite/rel/RelNodes.html           |    2 +-
 .../calcite/rel/RelReferentialConstraint.html      |    2 +-
 .../calcite/rel/RelReferentialConstraintImpl.html  |    2 +-
 .../org/apache/calcite/rel/RelRoot.html            |    2 +-
 .../org/apache/calcite/rel/RelShuttle.html         |    4 +-
 .../org/apache/calcite/rel/RelShuttleImpl.html     |    2 +-
 .../org/apache/calcite/rel/RelVisitor.html         |   14 +-
 .../org/apache/calcite/rel/RelWriter.html          |   14 +-
 .../org/apache/calcite/rel/SingleRel.html          |    6 +-
 .../org/apache/calcite/rel/convert/Converter.html  |   10 +-
 .../apache/calcite/rel/convert/ConverterImpl.html  |   22 +-
 .../calcite/rel/convert/ConverterRule.Config.html  |    2 +-
 .../apache/calcite/rel/convert/ConverterRule.html  |   24 +-
 .../apache/calcite/rel/convert/NoneConverter.html  |    4 +-
 .../rel/convert/TraitMatchingRule.Config.html      |    2 +-
 .../calcite/rel/convert/TraitMatchingRule.html     |    6 +-
 .../calcite/rel/convert/package-summary.html       |    2 +-
 .../apache/calcite/rel/convert/package-tree.html   |    2 +-
 .../calcite/rel/core/Aggregate.AggCallBinding.html |    2 +-
 .../apache/calcite/rel/core/Aggregate.Group.html   |    2 +-
 .../org/apache/calcite/rel/core/Aggregate.html     |   28 +-
 .../org/apache/calcite/rel/core/AggregateCall.html |  330 +-
 .../org/apache/calcite/rel/core/Calc.html          |   14 +-
 .../org/apache/calcite/rel/core/Collect.html       |    6 +-
 .../org/apache/calcite/rel/core/Correlate.html     |   18 +-
 .../org/apache/calcite/rel/core/CorrelationId.html |    6 +-
 .../org/apache/calcite/rel/core/EquiJoin.html      |   16 +-
 .../org/apache/calcite/rel/core/Exchange.html      |   14 +-
 .../org/apache/calcite/rel/core/Filter.html        |   22 +-
 .../org/apache/calcite/rel/core/Intersect.html     |    8 +-
 .../org/apache/calcite/rel/core/Join.html          |   24 +-
 .../org/apache/calcite/rel/core/JoinInfo.html      |    2 +-
 .../org/apache/calcite/rel/core/JoinRelType.html   |    2 +-
 .../calcite/rel/core/Match.RexMRAggCall.html       |    6 +-
 .../org/apache/calcite/rel/core/Match.html         |   18 +-
 .../org/apache/calcite/rel/core/Minus.html         |    8 +-
 .../org/apache/calcite/rel/core/Project.Flags.html |    2 +-
 .../org/apache/calcite/rel/core/Project.html       |   38 +-
 .../rel/core/RelFactories.AggregateFactory.html    |    2 +-
 .../rel/core/RelFactories.CorrelateFactory.html    |    2 +-
 .../rel/core/RelFactories.ExchangeFactory.html     |    2 +-
 .../rel/core/RelFactories.FilterFactory.html       |    2 +-
 .../calcite/rel/core/RelFactories.JoinFactory.html |    2 +-
 .../rel/core/RelFactories.MatchFactory.html        |    6 +-
 .../rel/core/RelFactories.ProjectFactory.html      |    6 +-
 .../rel/core/RelFactories.RepeatUnionFactory.html  |    2 +-
 .../rel/core/RelFactories.SemiJoinFactory.html     |    2 +-
 .../rel/core/RelFactories.SetOpFactory.html        |    2 +-
 .../rel/core/RelFactories.SnapshotFactory.html     |    2 +-
 .../rel/core/RelFactories.SnapshotFactoryImpl.html |    2 +-
 .../rel/core/RelFactories.SortExchangeFactory.html |    2 +-
 .../calcite/rel/core/RelFactories.SortFactory.html |   18 +-
 .../rel/core/RelFactories.SpoolFactory.html        |    2 +-
 .../calcite/rel/core/RelFactories.Struct.html      |    5 +-
 .../RelFactories.TableFunctionScanFactory.html     |   10 +-
 .../rel/core/RelFactories.TableScanFactory.html    |    2 +-
 .../rel/core/RelFactories.ValuesFactory.html       |    2 +-
 .../org/apache/calcite/rel/core/RelFactories.html  |    2 +-
 .../org/apache/calcite/rel/core/RepeatUnion.html   |    6 +-
 .../org/apache/calcite/rel/core/Sample.html        |    6 +-
 .../org/apache/calcite/rel/core/SetOp.html         |    6 +-
 .../org/apache/calcite/rel/core/Snapshot.html      |   10 +-
 .../org/apache/calcite/rel/core/Sort.html          |   77 +-
 .../org/apache/calcite/rel/core/SortExchange.html  |   10 +-
 .../org/apache/calcite/rel/core/Spool.Type.html    |    2 +-
 .../org/apache/calcite/rel/core/Spool.html         |    6 +-
 .../apache/calcite/rel/core/TableFunctionScan.html |   34 +-
 .../calcite/rel/core/TableModify.Operation.html    |    2 +-
 .../org/apache/calcite/rel/core/TableModify.html   |   26 +-
 .../org/apache/calcite/rel/core/TableScan.html     |   12 +-
 .../org/apache/calcite/rel/core/TableSpool.html    |    6 +-
 .../org/apache/calcite/rel/core/Uncollect.html     |    6 +-
 .../org/apache/calcite/rel/core/Union.html         |    4 +-
 .../org/apache/calcite/rel/core/Values.html        |   14 +-
 .../org/apache/calcite/rel/core/Window.Group.html  |    6 +-
 .../calcite/rel/core/Window.RexWinAggCall.html     |    6 +-
 .../org/apache/calcite/rel/core/Window.html        |   20 +-
 .../apache/calcite/rel/core/package-summary.html   |    2 +-
 .../org/apache/calcite/rel/core/package-tree.html  |    2 +-
 .../rel/externalize/RelDotWriter.WriteOption.html  |    6 +-
 .../calcite/rel/externalize/RelDotWriter.html      |   10 +-
 .../calcite/rel/externalize/RelEnumTypes.html      |   16 +-
 .../apache/calcite/rel/externalize/RelJson.html    |   12 +-
 .../calcite/rel/externalize/RelJsonReader.html     |   31 +-
 .../calcite/rel/externalize/RelJsonWriter.html     |   18 +-
 .../calcite/rel/externalize/RelWriterImpl.html     |   14 +-
 .../calcite/rel/externalize/RelXmlWriter.html      |    6 +-
 .../calcite/rel/externalize/package-summary.html   |    2 +-
 .../calcite/rel/externalize/package-tree.html      |    2 +-
 .../hint/CompositeHintPredicate.Composition.html   |    2 +-
 .../calcite/rel/hint/CompositeHintPredicate.html   |    2 +-
 .../apache/calcite/rel/hint/HintOptionChecker.html |    2 +-
 .../org/apache/calcite/rel/hint/HintPredicate.html |    2 +-
 .../apache/calcite/rel/hint/HintPredicates.html    |    2 +-
 .../calcite/rel/hint/HintStrategy.Builder.html     |    2 +-
 .../org/apache/calcite/rel/hint/HintStrategy.html  |    6 +-
 .../rel/hint/HintStrategyTable.Builder.html        |   59 +-
 .../hint/HintStrategyTable.HintErrorLogger.html    |   18 +-
 .../apache/calcite/rel/hint/HintStrategyTable.html |    7 +-
 .../org/apache/calcite/rel/hint/Hintable.html      |    4 +-
 .../calcite/rel/hint/NodeTypeHintPredicate.html    |    2 +-
 .../apache/calcite/rel/hint/RelHint.Builder.html   |    2 +-
 .../org/apache/calcite/rel/hint/RelHint.html       |    6 +-
 .../apache/calcite/rel/hint/package-summary.html   |    2 +-
 .../org/apache/calcite/rel/hint/package-tree.html  |    2 +-
 .../calcite/rel/logical/LogicalAggregate.html      |   16 +-
 .../apache/calcite/rel/logical/LogicalCalc.html    |    4 +-
 .../calcite/rel/logical/LogicalCorrelate.html      |    4 +-
 .../calcite/rel/logical/LogicalExchange.html       |    4 +-
 .../apache/calcite/rel/logical/LogicalFilter.html  |   12 +-
 .../calcite/rel/logical/LogicalIntersect.html      |    4 +-
 .../apache/calcite/rel/logical/LogicalJoin.html    |   12 +-
 .../apache/calcite/rel/logical/LogicalMatch.html   |   16 +-
 .../apache/calcite/rel/logical/LogicalMinus.html   |    4 +-
 .../apache/calcite/rel/logical/LogicalProject.html |   20 +-
 .../calcite/rel/logical/LogicalRepeatUnion.html    |    4 +-
 .../calcite/rel/logical/LogicalSnapshot.html       |    4 +-
 .../apache/calcite/rel/logical/LogicalSort.html    |   20 +-
 .../calcite/rel/logical/LogicalSortExchange.html   |    4 +-
 .../rel/logical/LogicalTableFunctionScan.html      |   40 +-
 .../calcite/rel/logical/LogicalTableModify.html    |   20 +-
 .../calcite/rel/logical/LogicalTableScan.html      |    4 +-
 .../calcite/rel/logical/LogicalTableSpool.html     |    4 +-
 .../apache/calcite/rel/logical/LogicalUnion.html   |    4 +-
 .../apache/calcite/rel/logical/LogicalValues.html  |    4 +-
 .../apache/calcite/rel/logical/LogicalWindow.html  |    4 +-
 .../calcite/rel/logical/ToLogicalConverter.html    |    2 +-
 .../calcite/rel/logical/package-summary.html       |    2 +-
 .../apache/calcite/rel/logical/package-tree.html   |    2 +-
 .../BuiltInMetadata.AllPredicates.Handler.html     |    6 +-
 .../metadata/BuiltInMetadata.AllPredicates.html    |    6 +-
 .../BuiltInMetadata.Collation.Handler.html         |    2 +-
 .../rel/metadata/BuiltInMetadata.Collation.html    |    2 +-
 .../BuiltInMetadata.ColumnOrigin.Handler.html      |    6 +-
 .../rel/metadata/BuiltInMetadata.ColumnOrigin.html |    6 +-
 .../BuiltInMetadata.ColumnUniqueness.Handler.html  |    2 +-
 .../metadata/BuiltInMetadata.ColumnUniqueness.html |    2 +-
 .../BuiltInMetadata.CumulativeCost.Handler.html    |    2 +-
 .../metadata/BuiltInMetadata.CumulativeCost.html   |    2 +-
 .../BuiltInMetadata.DistinctRowCount.Handler.html  |   10 +-
 .../metadata/BuiltInMetadata.DistinctRowCount.html |   10 +-
 .../BuiltInMetadata.Distribution.Handler.html      |    2 +-
 .../rel/metadata/BuiltInMetadata.Distribution.html |    2 +-
 .../BuiltInMetadata.ExplainVisibility.Handler.html |    2 +-
 .../BuiltInMetadata.ExplainVisibility.html         |    2 +-
 .../BuiltInMetadata.ExpressionLineage.Handler.html |    6 +-
 .../BuiltInMetadata.ExpressionLineage.html         |    6 +-
 .../BuiltInMetadata.LowerBoundCost.Handler.html    |    2 +-
 .../metadata/BuiltInMetadata.LowerBoundCost.html   |    2 +-
 .../BuiltInMetadata.MaxRowCount.Handler.html       |    6 +-
 .../rel/metadata/BuiltInMetadata.MaxRowCount.html  |    6 +-
 .../metadata/BuiltInMetadata.Memory.Handler.html   |   14 +-
 .../rel/metadata/BuiltInMetadata.Memory.html       |   14 +-
 .../BuiltInMetadata.MinRowCount.Handler.html       |    6 +-
 .../rel/metadata/BuiltInMetadata.MinRowCount.html  |    6 +-
 .../BuiltInMetadata.NodeTypes.Handler.html         |    6 +-
 .../rel/metadata/BuiltInMetadata.NodeTypes.html    |    6 +-
 .../BuiltInMetadata.NonCumulativeCost.Handler.html |    2 +-
 .../BuiltInMetadata.NonCumulativeCost.html         |    2 +-
 .../BuiltInMetadata.Parallelism.Handler.html       |    2 +-
 .../rel/metadata/BuiltInMetadata.Parallelism.html  |    2 +-
 ...tInMetadata.PercentageOriginalRows.Handler.html |    6 +-
 .../BuiltInMetadata.PercentageOriginalRows.html    |    6 +-
 .../BuiltInMetadata.PopulationSize.Handler.html    |    6 +-
 .../metadata/BuiltInMetadata.PopulationSize.html   |    6 +-
 .../BuiltInMetadata.Predicates.Handler.html        |    2 +-
 .../rel/metadata/BuiltInMetadata.Predicates.html   |    2 +-
 .../metadata/BuiltInMetadata.RowCount.Handler.html |    6 +-
 .../rel/metadata/BuiltInMetadata.RowCount.html     |    6 +-
 .../BuiltInMetadata.Selectivity.Handler.html       |   10 +-
 .../rel/metadata/BuiltInMetadata.Selectivity.html  |    8 +-
 .../rel/metadata/BuiltInMetadata.Size.Handler.html |   10 +-
 .../calcite/rel/metadata/BuiltInMetadata.Size.html |   10 +-
 .../BuiltInMetadata.TableReferences.Handler.html   |    2 +-
 .../metadata/BuiltInMetadata.TableReferences.html  |    2 +-
 .../BuiltInMetadata.UniqueKeys.Handler.html        |    6 +-
 .../rel/metadata/BuiltInMetadata.UniqueKeys.html   |    6 +-
 .../calcite/rel/metadata/BuiltInMetadata.html      |    2 +-
 .../rel/metadata/CachingRelMetadataProvider.html   |   11 +-
 .../rel/metadata/ChainedRelMetadataProvider.html   |   15 +-
 .../rel/metadata/CyclicMetadataException.html      |    2 +-
 .../rel/metadata/DefaultRelMetadataProvider.html   |    2 +-
 .../JaninoRelMetadataProvider.NoHandler.html       |    2 +-
 .../rel/metadata/JaninoRelMetadataProvider.html    |   15 +-
 .../org/apache/calcite/rel/metadata/Metadata.html  |    2 +-
 .../apache/calcite/rel/metadata/MetadataDef.html   |    2 +-
 .../calcite/rel/metadata/MetadataFactory.html      |   10 +-
 .../calcite/rel/metadata/MetadataFactoryImpl.html  |   14 +-
 .../calcite/rel/metadata/MetadataHandler.html      |    2 +-
 .../apache/calcite/rel/metadata/NullSentinel.html  |   10 +-
 .../metadata/ReflectiveRelMetadataProvider.html    |   16 +-
 .../calcite/rel/metadata/RelColumnMapping.html     |    2 +-
 .../calcite/rel/metadata/RelColumnOrigin.html      |    6 +-
 .../calcite/rel/metadata/RelMdAllPredicates.html   |  122 +-
 .../calcite/rel/metadata/RelMdCollation.html       |  217 +-
 .../calcite/rel/metadata/RelMdColumnOrigins.html   |   46 +-
 .../rel/metadata/RelMdColumnUniqueness.html        |   58 +-
 .../rel/metadata/RelMdDistinctRowCount.html        |   86 +-
 .../calcite/rel/metadata/RelMdDistribution.html    |   10 +-
 .../rel/metadata/RelMdExplainVisibility.html       |    6 +-
 .../rel/metadata/RelMdExpressionLineage.html       |   91 +-
 .../calcite/rel/metadata/RelMdLowerBoundCost.html  |   10 +-
 .../calcite/rel/metadata/RelMdMaxRowCount.html     |   46 +-
 .../apache/calcite/rel/metadata/RelMdMemory.html   |   14 +-
 .../calcite/rel/metadata/RelMdMinRowCount.html     |   22 +-
 .../calcite/rel/metadata/RelMdNodeTypes.html       |   82 +-
 .../calcite/rel/metadata/RelMdParallelism.html     |    2 +-
 .../rel/metadata/RelMdPercentageOriginalRows.html  |   26 +-
 .../calcite/rel/metadata/RelMdPopulationSize.html  |   38 +-
 .../calcite/rel/metadata/RelMdPredicates.html      |   11 +-
 .../apache/calcite/rel/metadata/RelMdRowCount.html |   50 +-
 .../calcite/rel/metadata/RelMdSelectivity.html     |   70 +-
 .../org/apache/calcite/rel/metadata/RelMdSize.html |   82 +-
 .../calcite/rel/metadata/RelMdTableReferences.html |   58 +-
 .../calcite/rel/metadata/RelMdUniqueKeys.html      |   34 +-
 .../org/apache/calcite/rel/metadata/RelMdUtil.html |  142 +-
 .../calcite/rel/metadata/RelMetadataProvider.html  |   11 +-
 .../calcite/rel/metadata/RelMetadataQuery.html     |  147 +-
 .../calcite/rel/metadata/RelMetadataQueryBase.html |   14 +-
 .../calcite/rel/metadata/UnboundMetadata.html      |    6 +-
 .../calcite/rel/metadata/package-summary.html      |    4 +-
 .../apache/calcite/rel/metadata/package-tree.html  |    2 +-
 .../org/apache/calcite/rel/mutable/Holder.html     |    2 +-
 .../calcite/rel/mutable/MutableAggregate.html      |   10 +-
 .../apache/calcite/rel/mutable/MutableCalc.html    |    6 +-
 .../apache/calcite/rel/mutable/MutableCollect.html |    6 +-
 .../calcite/rel/mutable/MutableCorrelate.html      |    6 +-
 .../calcite/rel/mutable/MutableExchange.html       |    6 +-
 .../apache/calcite/rel/mutable/MutableFilter.html  |    6 +-
 .../calcite/rel/mutable/MutableIntersect.html      |    2 +-
 .../apache/calcite/rel/mutable/MutableJoin.html    |    6 +-
 .../apache/calcite/rel/mutable/MutableMatch.html   |   14 +-
 .../apache/calcite/rel/mutable/MutableMinus.html   |    2 +-
 .../apache/calcite/rel/mutable/MutableProject.html |   10 +-
 .../org/apache/calcite/rel/mutable/MutableRel.html |   14 +-
 .../calcite/rel/mutable/MutableRelVisitor.html     |    6 +-
 .../apache/calcite/rel/mutable/MutableRels.html    |    6 +-
 .../apache/calcite/rel/mutable/MutableSample.html  |    6 +-
 .../apache/calcite/rel/mutable/MutableScan.html    |    6 +-
 .../apache/calcite/rel/mutable/MutableSetOp.html   |    6 +-
 .../apache/calcite/rel/mutable/MutableSort.html    |   22 +-
 .../rel/mutable/MutableTableFunctionScan.html      |   22 +-
 .../calcite/rel/mutable/MutableTableModify.html    |   22 +-
 .../calcite/rel/mutable/MutableUncollect.html      |    6 +-
 .../apache/calcite/rel/mutable/MutableUnion.html   |    2 +-
 .../apache/calcite/rel/mutable/MutableValues.html  |    6 +-
 .../apache/calcite/rel/mutable/MutableWindow.html  |    6 +-
 .../calcite/rel/mutable/package-summary.html       |    2 +-
 .../apache/calcite/rel/mutable/package-tree.html   |    2 +-
 .../org/apache/calcite/rel/package-summary.html    |    4 +-
 .../org/apache/calcite/rel/package-tree.html       |    2 +-
 .../calcite/rel/rel2sql/RelToSqlConverter.html     |   12 +-
 .../rel/rel2sql/SqlImplementor.AliasContext.html   |    4 +-
 .../rel/rel2sql/SqlImplementor.BaseContext.html    |    4 +-
 .../rel/rel2sql/SqlImplementor.Builder.html        |    7 +-
 .../calcite/rel/rel2sql/SqlImplementor.Clause.html |    2 +-
 .../rel/rel2sql/SqlImplementor.Context.html        |   53 +-
 .../SqlImplementor.MatchRecognizeContext.html      |    8 +-
 .../calcite/rel/rel2sql/SqlImplementor.Result.html |   10 +-
 .../rel/rel2sql/SqlImplementor.SimpleContext.html  |    4 +-
 .../apache/calcite/rel/rel2sql/SqlImplementor.html |   41 +-
 .../calcite/rel/rel2sql/package-summary.html       |    2 +-
 .../apache/calcite/rel/rel2sql/package-tree.html   |    2 +-
 .../AbstractJoinExtractFilterRule.Config.html      |    2 +-
 .../rel/rules/AbstractJoinExtractFilterRule.html   |    2 +-
 .../rules/AggregateCaseToFilterRule.Config.html    |    2 +-
 .../rel/rules/AggregateCaseToFilterRule.html       |    2 +-
 ...gregateExpandDistinctAggregatesRule.Config.html |    2 +-
 .../AggregateExpandDistinctAggregatesRule.html     |   22 +-
 ... AggregateExpandWithinDistinctRule.Config.html} |   54 +-
 ...html => AggregateExpandWithinDistinctRule.html} |   86 +-
 .../rules/AggregateExtractProjectRule.Config.html  |    2 +-
 .../rel/rules/AggregateExtractProjectRule.html     |    2 +-
 .../rules/AggregateFilterTransposeRule.Config.html |    2 +-
 .../rel/rules/AggregateFilterTransposeRule.html    |    2 +-
 .../rules/AggregateJoinJoinRemoveRule.Config.html  |    2 +-
 .../rel/rules/AggregateJoinJoinRemoveRule.html     |    2 +-
 .../rel/rules/AggregateJoinRemoveRule.Config.html  |    2 +-
 .../calcite/rel/rules/AggregateJoinRemoveRule.html |    2 +-
 .../rules/AggregateJoinTransposeRule.Config.html   |    2 +-
 .../rel/rules/AggregateJoinTransposeRule.html      |    2 +-
 .../rel/rules/AggregateMergeRule.Config.html       |    2 +-
 .../calcite/rel/rules/AggregateMergeRule.html      |    2 +-
 .../rules/AggregateProjectMergeRule.Config.html    |    2 +-
 .../rel/rules/AggregateProjectMergeRule.html       |    6 +-
 ...AggregateProjectPullUpConstantsRule.Config.html |    2 +-
 .../rules/AggregateProjectPullUpConstantsRule.html |    2 +-
 .../AggregateProjectStarTableRule.Config.html      |    2 +-
 .../rel/rules/AggregateProjectStarTableRule.html   |    2 +-
 .../rules/AggregateReduceFunctionsRule.Config.html |   13 +-
 .../rel/rules/AggregateReduceFunctionsRule.html    |   24 +-
 .../rel/rules/AggregateRemoveRule.Config.html      |    2 +-
 .../calcite/rel/rules/AggregateRemoveRule.html     |    2 +-
 .../rel/rules/AggregateStarTableRule.Config.html   |    2 +-
 .../calcite/rel/rules/AggregateStarTableRule.html  |    6 +-
 .../rules/AggregateUnionAggregateRule.Config.html  |    2 +-
 .../rel/rules/AggregateUnionAggregateRule.html     |    2 +-
 .../rules/AggregateUnionTransposeRule.Config.html  |    2 +-
 .../rel/rules/AggregateUnionTransposeRule.html     |    2 +-
 .../rel/rules/AggregateValuesRule.Config.html      |    2 +-
 .../calcite/rel/rules/AggregateValuesRule.html     |    2 +-
 .../calcite/rel/rules/CalcMergeRule.Config.html    |    2 +-
 .../apache/calcite/rel/rules/CalcMergeRule.html    |    2 +-
 .../calcite/rel/rules/CalcRelSplitter.RelType.html |    8 +-
 .../apache/calcite/rel/rules/CalcRelSplitter.html  |    2 +-
 .../calcite/rel/rules/CalcRemoveRule.Config.html   |    2 +-
 .../apache/calcite/rel/rules/CalcRemoveRule.html   |    2 +-
 .../calcite/rel/rules/CalcSplitRule.Config.html    |    2 +-
 .../apache/calcite/rel/rules/CalcSplitRule.html    |    2 +-
 .../calcite/rel/rules/CoerceInputsRule.Config.html |    2 +-
 .../apache/calcite/rel/rules/CoerceInputsRule.html |    6 +-
 .../org/apache/calcite/rel/rules/CoreRules.html    |  240 +-
 .../DateRangeRules.FilterDateRangeRule.Config.html |    2 +-
 .../rules/DateRangeRules.FilterDateRangeRule.html  |    2 +-
 .../apache/calcite/rel/rules/DateRangeRules.html   |    2 +-
 .../org/apache/calcite/rel/rules/EquiJoin.html     |   10 +-
 .../ExchangeRemoveConstantKeysRule.Config.html     |    2 +-
 .../rel/rules/ExchangeRemoveConstantKeysRule.html  |    2 +-
 .../rules/FilterAggregateTransposeRule.Config.html |    2 +-
 .../rel/rules/FilterAggregateTransposeRule.html    |    2 +-
 .../rel/rules/FilterCalcMergeRule.Config.html      |    2 +-
 .../calcite/rel/rules/FilterCalcMergeRule.html     |    2 +-
 .../rel/rules/FilterCorrelateRule.Config.html      |    2 +-
 .../calcite/rel/rules/FilterCorrelateRule.html     |    2 +-
 ...lterFlattenCorrelatedConditionRule.Config.html} |   20 +-
 .../FilterFlattenCorrelatedConditionRule.html}     |   76 +-
 .../calcite/rel/rules/FilterJoinRule.Config.html   |    2 +-
 .../FilterJoinRule.FilterIntoJoinRule.Config.html  |    2 +-
 .../rules/FilterJoinRule.FilterIntoJoinRule.html   |    2 +-
 ...ilterJoinRule.JoinConditionPushRule.Config.html |    2 +-
 .../FilterJoinRule.JoinConditionPushRule.html      |    2 +-
 .../rel/rules/FilterJoinRule.Predicate.html        |    2 +-
 .../apache/calcite/rel/rules/FilterJoinRule.html   |    6 +-
 .../calcite/rel/rules/FilterMergeRule.Config.html  |    2 +-
 .../apache/calcite/rel/rules/FilterMergeRule.html  |    2 +-
 .../rel/rules/FilterMultiJoinMergeRule.Config.html |    2 +-
 .../rel/rules/FilterMultiJoinMergeRule.html        |    2 +-
 .../rules/FilterProjectTransposeRule.Config.html   |    2 +-
 .../rel/rules/FilterProjectTransposeRule.html      |    2 +-
 .../FilterRemoveIsNotDistinctFromRule.Config.html  |    2 +-
 .../rules/FilterRemoveIsNotDistinctFromRule.html   |   24 +-
 .../rel/rules/FilterSetOpTransposeRule.Config.html |    2 +-
 .../rel/rules/FilterSetOpTransposeRule.html        |    2 +-
 .../FilterTableFunctionTransposeRule.Config.html   |    2 +-
 .../rules/FilterTableFunctionTransposeRule.html    |    2 +-
 .../rel/rules/FilterTableScanRule.Config.html      |    2 +-
 .../calcite/rel/rules/FilterTableScanRule.html     |    2 +-
 .../calcite/rel/rules/FilterToCalcRule.Config.html |    2 +-
 .../apache/calcite/rel/rules/FilterToCalcRule.html |    2 +-
 .../rel/rules/IntersectToDistinctRule.Config.html  |    2 +-
 .../calcite/rel/rules/IntersectToDistinctRule.html |    2 +-
 .../rules/JoinAddRedundantSemiJoinRule.Config.html |    2 +-
 .../rel/rules/JoinAddRedundantSemiJoinRule.html    |    2 +-
 .../rel/rules/JoinAssociateRule.Config.html        |   48 +-
 .../calcite/rel/rules/JoinAssociateRule.html       |    2 +-
 .../calcite/rel/rules/JoinCommuteRule.Config.html  |   44 +-
 .../apache/calcite/rel/rules/JoinCommuteRule.html  |   14 +-
 .../rel/rules/JoinExtractFilterRule.Config.html    |    2 +-
 .../calcite/rel/rules/JoinExtractFilterRule.html   |   20 +-
 .../rel/rules/JoinProjectTransposeRule.Config.html |    2 +-
 .../rel/rules/JoinProjectTransposeRule.html        |    6 +-
 .../rel/rules/JoinPushExpressionsRule.Config.html  |    2 +-
 .../calcite/rel/rules/JoinPushExpressionsRule.html |    2 +-
 .../rel/rules/JoinPushThroughJoinRule.Config.html  |    2 +-
 .../calcite/rel/rules/JoinPushThroughJoinRule.html |    2 +-
 .../JoinPushTransitivePredicatesRule.Config.html   |    2 +-
 .../rules/JoinPushTransitivePredicatesRule.html    |    2 +-
 .../rel/rules/JoinToCorrelateRule.Config.html      |    2 +-
 .../calcite/rel/rules/JoinToCorrelateRule.html     |    2 +-
 .../rel/rules/JoinToMultiJoinRule.Config.html      |    2 +-
 .../calcite/rel/rules/JoinToMultiJoinRule.html     |    2 +-
 .../rel/rules/JoinUnionTransposeRule.Config.html   |    2 +-
 .../calcite/rel/rules/JoinUnionTransposeRule.html  |    2 +-
 .../calcite/rel/rules/LoptJoinTree.BinaryTree.html |    6 +-
 .../calcite/rel/rules/LoptJoinTree.Leaf.html       |    6 +-
 .../calcite/rel/rules/LoptJoinTree.Node.html       |    6 +-
 .../org/apache/calcite/rel/rules/LoptJoinTree.html |    2 +-
 .../apache/calcite/rel/rules/LoptMultiJoin.html    |   30 +-
 .../rel/rules/LoptOptimizeJoinRule.Config.html     |    2 +-
 .../calcite/rel/rules/LoptOptimizeJoinRule.html    |    2 +-
 .../calcite/rel/rules/LoptSemiJoinOptimizer.html   |    2 +-
 .../apache/calcite/rel/rules/MatchRule.Config.html |    2 +-
 .../org/apache/calcite/rel/rules/MatchRule.html    |    2 +-
 .../MaterializedViewFilterScanRule.Config.html     |    2 +-
 .../rel/rules/MaterializedViewFilterScanRule.html  |    2 +-
 .../org/apache/calcite/rel/rules/MultiJoin.html    |   30 +-
 .../rules/MultiJoinOptimizeBushyRule.Config.html   |    2 +-
 .../rel/rules/MultiJoinOptimizeBushyRule.html      |    2 +-
 .../MultiJoinProjectTransposeRule.Config.html      |    2 +-
 .../rel/rules/MultiJoinProjectTransposeRule.html   |    2 +-
 .../rules/ProjectAggregateMergeRule.Config.html    |    2 +-
 .../rel/rules/ProjectAggregateMergeRule.html       |    2 +-
 .../rel/rules/ProjectCalcMergeRule.Config.html     |    2 +-
 .../calcite/rel/rules/ProjectCalcMergeRule.html    |    2 +-
 .../ProjectCorrelateTransposeRule.Config.html      |    2 +-
 ...orrelateTransposeRule.RelNodesExprsHandler.html |    2 +-
 ...relateTransposeRule.RexFieldAccessReplacer.html |    2 +-
 .../rel/rules/ProjectCorrelateTransposeRule.html   |    2 +-
 .../rules/ProjectFilterTransposeRule.Config.html   |    2 +-
 .../rel/rules/ProjectFilterTransposeRule.html      |    2 +-
 .../rules/ProjectJoinJoinRemoveRule.Config.html    |    2 +-
 .../rel/rules/ProjectJoinJoinRemoveRule.html       |    2 +-
 .../rel/rules/ProjectJoinRemoveRule.Config.html    |    2 +-
 .../calcite/rel/rules/ProjectJoinRemoveRule.html   |    2 +-
 .../rel/rules/ProjectJoinTransposeRule.Config.html |    2 +-
 .../rel/rules/ProjectJoinTransposeRule.html        |    2 +-
 .../calcite/rel/rules/ProjectMergeRule.Config.html |    2 +-
 .../apache/calcite/rel/rules/ProjectMergeRule.html |    2 +-
 .../rules/ProjectMultiJoinMergeRule.Config.html    |    2 +-
 .../rel/rules/ProjectMultiJoinMergeRule.html       |    2 +-
 .../rel/rules/ProjectRemoveRule.Config.html        |    2 +-
 .../calcite/rel/rules/ProjectRemoveRule.html       |    2 +-
 .../rules/ProjectSetOpTransposeRule.Config.html    |    2 +-
 .../rel/rules/ProjectSetOpTransposeRule.html       |    2 +-
 .../rel/rules/ProjectTableScanRule.Config.html     |    2 +-
 .../calcite/rel/rules/ProjectTableScanRule.html    |    2 +-
 .../rel/rules/ProjectToCalcRule.Config.html        |    2 +-
 .../calcite/rel/rules/ProjectToCalcRule.html       |    2 +-
 ...rojectToWindowRule.CalcToWindowRule.Config.html |    2 +-
 .../ProjectToWindowRule.CalcToWindowRule.html      |    2 +-
 .../rel/rules/ProjectToWindowRule.Config.html      |    2 +-
 ...rojectToLogicalProjectAndWindowRule.Config.html |    2 +-
 ...wRule.ProjectToLogicalProjectAndWindowRule.html |    2 +-
 .../calcite/rel/rules/ProjectToWindowRule.html     |    2 +-
 .../rules/ProjectWindowTransposeRule.Config.html   |    2 +-
 .../rel/rules/ProjectWindowTransposeRule.html      |    2 +-
 ...neEmptyRules.IntersectEmptyPruneRuleConfig.html |    2 +-
 .../PruneEmptyRules.JoinLeftEmptyRuleConfig.html   |    2 +-
 .../PruneEmptyRules.JoinRightEmptyRuleConfig.html  |    2 +-
 .../PruneEmptyRules.MinusEmptyPruneRuleConfig.html |    2 +-
 .../PruneEmptyRules.PruneEmptyRule.Config.html     |    2 +-
 .../rel/rules/PruneEmptyRules.PruneEmptyRule.html  |    2 +-
 ...uneEmptyRules.RemoveEmptySingleRule.Config.html |    2 +-
 .../PruneEmptyRules.RemoveEmptySingleRule.html     |    2 +-
 .../PruneEmptyRules.SortFetchZeroRuleConfig.html   |    2 +-
 .../PruneEmptyRules.UnionEmptyPruneRuleConfig.html |    2 +-
 .../apache/calcite/rel/rules/PruneEmptyRules.html  |    2 +-
 .../rel/rules/PushProjector.ExprCondition.html     |    2 +-
 .../apache/calcite/rel/rules/PushProjector.html    |   16 +-
 .../rel/rules/ReduceDecimalsRule.Config.html       |    2 +-
 .../rules/ReduceDecimalsRule.DecimalShuttle.html   |    2 +-
 .../rel/rules/ReduceDecimalsRule.RexExpander.html  |    2 +-
 .../calcite/rel/rules/ReduceDecimalsRule.html      |    6 +-
 ...sionsRule.CalcReduceExpressionsRule.Config.html |    2 +-
 ...eExpressionsRule.CalcReduceExpressionsRule.html |    2 +-
 .../rules/ReduceExpressionsRule.CaseShuttle.html   |    2 +-
 .../rel/rules/ReduceExpressionsRule.Config.html    |    2 +-
 ...onsRule.FilterReduceExpressionsRule.Config.html |    2 +-
 ...xpressionsRule.FilterReduceExpressionsRule.html |    2 +-
 ...sionsRule.JoinReduceExpressionsRule.Config.html |    2 +-
 ...eExpressionsRule.JoinReduceExpressionsRule.html |    2 +-
 ...nsRule.ProjectReduceExpressionsRule.Config.html |    2 +-
 ...pressionsRule.ProjectReduceExpressionsRule.html |    2 +-
 ...ReduceExpressionsRule.ReducibleExprLocator.html |    2 +-
 .../rules/ReduceExpressionsRule.RexReplacer.html   |    2 +-
 ...onsRule.WindowReduceExpressionsRule.Config.html |    2 +-
 ...xpressionsRule.WindowReduceExpressionsRule.html |    2 +-
 .../calcite/rel/rules/ReduceExpressionsRule.html   |    2 +-
 .../rules/SemiJoinFilterTransposeRule.Config.html  |    2 +-
 .../rel/rules/SemiJoinFilterTransposeRule.html     |    2 +-
 .../rules/SemiJoinJoinTransposeRule.Config.html    |    2 +-
 .../rel/rules/SemiJoinJoinTransposeRule.html       |    2 +-
 .../rules/SemiJoinProjectTransposeRule.Config.html |    2 +-
 .../rel/rules/SemiJoinProjectTransposeRule.html    |    2 +-
 .../rel/rules/SemiJoinRemoveRule.Config.html       |    2 +-
 .../calcite/rel/rules/SemiJoinRemoveRule.html      |    2 +-
 .../calcite/rel/rules/SemiJoinRule.Config.html     |    2 +-
 .../SemiJoinRule.JoinToSemiJoinRule.Config.html    |    2 +-
 .../rel/rules/SemiJoinRule.JoinToSemiJoinRule.html |    2 +-
 .../SemiJoinRule.ProjectToSemiJoinRule.Config.html |    2 +-
 .../rules/SemiJoinRule.ProjectToSemiJoinRule.html  |    2 +-
 .../org/apache/calcite/rel/rules/SemiJoinRule.html |    6 +-
 .../calcite/rel/rules/SortJoinCopyRule.Config.html |    2 +-
 .../apache/calcite/rel/rules/SortJoinCopyRule.html |    2 +-
 .../rel/rules/SortJoinTransposeRule.Config.html    |    2 +-
 .../calcite/rel/rules/SortJoinTransposeRule.html   |    2 +-
 .../rel/rules/SortProjectTransposeRule.Config.html |    2 +-
 .../rel/rules/SortProjectTransposeRule.html        |    2 +-
 .../rules/SortRemoveConstantKeysRule.Config.html   |    2 +-
 .../rel/rules/SortRemoveConstantKeysRule.html      |    2 +-
 .../calcite/rel/rules/SortRemoveRule.Config.html   |    2 +-
 .../apache/calcite/rel/rules/SortRemoveRule.html   |    2 +-
 .../rel/rules/SortUnionTransposeRule.Config.html   |    2 +-
 .../calcite/rel/rules/SortUnionTransposeRule.html  |    2 +-
 .../SpatialRules.FilterHilbertRule.Config.html     |    2 +-
 .../rel/rules/SpatialRules.FilterHilbertRule.html  |    2 +-
 .../org/apache/calcite/rel/rules/SpatialRules.html |    2 +-
 .../rel/rules/SubQueryRemoveRule.Config.html       |    2 +-
 .../calcite/rel/rules/SubQueryRemoveRule.html      |    2 +-
 .../apache/calcite/rel/rules/SubstitutionRule.html |    2 +-
 .../calcite/rel/rules/TableScanRule.Config.html    |    2 +-
 .../apache/calcite/rel/rules/TableScanRule.html    |    2 +-
 .../calcite/rel/rules/TransformationRule.html      |    2 +-
 .../rel/rules/UnionEliminatorRule.Config.html      |    2 +-
 .../calcite/rel/rules/UnionEliminatorRule.html     |    2 +-
 .../calcite/rel/rules/UnionMergeRule.Config.html   |    2 +-
 .../apache/calcite/rel/rules/UnionMergeRule.html   |    2 +-
 .../rel/rules/UnionPullUpConstantsRule.Config.html |    2 +-
 .../rel/rules/UnionPullUpConstantsRule.html        |    2 +-
 .../rel/rules/UnionToDistinctRule.Config.html      |    2 +-
 .../calcite/rel/rules/UnionToDistinctRule.html     |    2 +-
 .../calcite/rel/rules/ValuesReduceRule.Config.html |    2 +-
 .../apache/calcite/rel/rules/ValuesReduceRule.html |   10 +-
 .../MaterializedViewAggregateRule.Config.html      |    2 +-
 .../materialize/MaterializedViewAggregateRule.html |   74 +-
 .../materialize/MaterializedViewJoinRule.html      |   56 +-
 .../MaterializedViewOnlyAggregateRule.Config.html  |    2 +-
 .../MaterializedViewOnlyAggregateRule.html         |    2 +-
 .../MaterializedViewOnlyFilterRule.Config.html     |    2 +-
 .../MaterializedViewOnlyFilterRule.html            |    2 +-
 .../MaterializedViewOnlyJoinRule.Config.html       |    2 +-
 .../materialize/MaterializedViewOnlyJoinRule.html  |    2 +-
 ...aterializedViewProjectAggregateRule.Config.html |    2 +-
 .../MaterializedViewProjectAggregateRule.html      |    2 +-
 .../MaterializedViewProjectFilterRule.Config.html  |    2 +-
 .../MaterializedViewProjectFilterRule.html         |    2 +-
 .../MaterializedViewProjectJoinRule.Config.html    |    2 +-
 .../MaterializedViewProjectJoinRule.html           |    2 +-
 .../materialize/MaterializedViewRule.Config.html   |   10 +-
 .../materialize/MaterializedViewRule.Edge.html     |    4 +-
 .../MaterializedViewRule.EquivalenceClasses.html   |    2 +-
 .../MaterializedViewRule.MatchModality.html        |    2 +-
 .../MaterializedViewRule.NodeLineage.html          |    2 +-
 .../MaterializedViewRule.ViewPartialRewriting.html |    6 +-
 .../rules/materialize/MaterializedViewRule.html    |  106 +-
 .../rules/materialize/MaterializedViewRules.html   |    2 +-
 .../rel/rules/materialize/package-summary.html     |    2 +-
 .../rel/rules/materialize/package-tree.html        |    2 +-
 .../apache/calcite/rel/rules/package-summary.html  |  130 +-
 .../org/apache/calcite/rel/rules/package-tree.html |    6 +-
 .../org/apache/calcite/rel/stream/Chi.html         |    4 +-
 .../org/apache/calcite/rel/stream/Delta.html       |    4 +-
 .../org/apache/calcite/rel/stream/LogicalChi.html  |    4 +-
 .../apache/calcite/rel/stream/LogicalDelta.html    |    4 +-
 ...amRules.DeltaAggregateTransposeRule.Config.html |    2 +-
 .../StreamRules.DeltaAggregateTransposeRule.html   |    2 +-
 ...treamRules.DeltaFilterTransposeRule.Config.html |    2 +-
 .../StreamRules.DeltaFilterTransposeRule.html      |    2 +-
 .../StreamRules.DeltaJoinTransposeRule.Config.html |    2 +-
 .../stream/StreamRules.DeltaJoinTransposeRule.html |    2 +-
 ...reamRules.DeltaProjectTransposeRule.Config.html |    2 +-
 .../StreamRules.DeltaProjectTransposeRule.html     |    2 +-
 .../StreamRules.DeltaSortTransposeRule.Config.html |    2 +-
 .../stream/StreamRules.DeltaSortTransposeRule.html |    2 +-
 .../StreamRules.DeltaTableScanRule.Config.html     |    2 +-
 .../rel/stream/StreamRules.DeltaTableScanRule.html |    2 +-
 ...reamRules.DeltaTableScanToEmptyRule.Config.html |    2 +-
 .../StreamRules.DeltaTableScanToEmptyRule.html     |    2 +-
 ...StreamRules.DeltaUnionTransposeRule.Config.html |    2 +-
 .../StreamRules.DeltaUnionTransposeRule.html       |    2 +-
 .../org/apache/calcite/rel/stream/StreamRules.html |    2 +-
 .../apache/calcite/rel/stream/package-summary.html |    2 +-
 .../apache/calcite/rel/stream/package-tree.html    |    2 +-
 .../calcite/rel/type/DelegatingTypeSystem.html     |    6 +-
 .../apache/calcite/rel/type/DynamicRecordType.html |    4 +-
 .../calcite/rel/type/DynamicRecordTypeImpl.html    |    8 +-
 .../org/apache/calcite/rel/type/RelCrossType.html  |    4 +-
 .../org/apache/calcite/rel/type/RelDataType.html   |   49 +-
 .../calcite/rel/type/RelDataTypeComparability.html |    2 +-
 .../rel/type/RelDataTypeFactory.Builder.html       |    2 +-
 .../rel/type/RelDataTypeFactory.FieldInfo.html     |    2 +-
 .../type/RelDataTypeFactory.FieldInfoBuilder.html  |    2 +-
 .../calcite/rel/type/RelDataTypeFactory.html       |   14 +-
 .../rel/type/RelDataTypeFactoryImpl.JavaType.html  |   32 +-
 .../calcite/rel/type/RelDataTypeFactoryImpl.html   |   48 +-
 .../apache/calcite/rel/type/RelDataTypeFamily.html |    2 +-
 .../rel/type/RelDataTypeField.ToFieldIndex.html    |    2 +-
 .../rel/type/RelDataTypeField.ToFieldName.html     |    2 +-
 .../apache/calcite/rel/type/RelDataTypeField.html  |    2 +-
 .../calcite/rel/type/RelDataTypeFieldImpl.html     |    6 +-
 .../apache/calcite/rel/type/RelDataTypeImpl.html   |   74 +-
 .../rel/type/RelDataTypePrecedenceList.html        |    2 +-
 .../apache/calcite/rel/type/RelDataTypeSystem.html |   22 +-
 .../calcite/rel/type/RelDataTypeSystemImpl.html    |    6 +-
 .../apache/calcite/rel/type/RelProtoDataType.html  |    2 +-
 .../org/apache/calcite/rel/type/RelRecordType.html |    4 +-
 .../org/apache/calcite/rel/type/StructKind.html    |    2 +-
 .../apache/calcite/rel/type/package-summary.html   |    2 +-
 .../org/apache/calcite/rel/type/package-tree.html  |    2 +-
 .../org/apache/calcite/rex/LogicVisitor.html       |   56 +-
 .../org/apache/calcite/rex/RexAction.html          |    2 +-
 .../org/apache/calcite/rex/RexAnalyzer.html        |    2 +-
 .../org/apache/calcite/rex/RexBiVisitor.html       |    2 +-
 .../org/apache/calcite/rex/RexBiVisitorImpl.html   |    4 +-
 .../org/apache/calcite/rex/RexBuilder.html         |  255 +-
 .../org/apache/calcite/rex/RexCall.html            |   16 +-
 .../org/apache/calcite/rex/RexCallBinding.html     |   52 +-
 .../org/apache/calcite/rex/RexChecker.html         |   28 +-
 .../org/apache/calcite/rex/RexCorrelVariable.html  |    6 +-
 .../apache/calcite/rex/RexDigestIncludeType.html   |    2 +-
 .../org/apache/calcite/rex/RexDynamicParam.html    |    6 +-
 .../org/apache/calcite/rex/RexExecutable.html      |   10 +-
 .../org/apache/calcite/rex/RexExecutor.html        |    2 +-
 .../org/apache/calcite/rex/RexExecutorImpl.html    |    2 +-
 .../org/apache/calcite/rex/RexFieldAccess.html     |    6 +-
 .../org/apache/calcite/rex/RexFieldCollation.html  |    2 +-
 .../org/apache/calcite/rex/RexInputRef.html        |    6 +-
 .../org/apache/calcite/rex/RexInterpreter.html     |    6 +-
 .../org/apache/calcite/rex/RexLiteral.html         |   60 +-
 .../org/apache/calcite/rex/RexLocalRef.html        |    6 +-
 .../org/apache/calcite/rex/RexMultisetUtil.html    |    6 +-
 .../org/apache/calcite/rex/RexNode.html            |   10 +-
 .../org/apache/calcite/rex/RexNormalize.html       |    2 +-
 .../org/apache/calcite/rex/RexOver.html            |   13 +-
 .../org/apache/calcite/rex/RexPattern.html         |    2 +-
 .../org/apache/calcite/rex/RexPatternFieldRef.html |    2 +-
 .../apache/calcite/rex/RexPermutationShuttle.html  |    2 +-
 .../calcite/rex/RexPermuteInputsShuttle.html       |    2 +-
 .../org/apache/calcite/rex/RexProgram.html         |  113 +-
 .../org/apache/calcite/rex/RexProgramBuilder.html  |   30 +-
 .../org/apache/calcite/rex/RexRangeRef.html        |    6 +-
 .../org/apache/calcite/rex/RexShuttle.html         |   35 +-
 .../org/apache/calcite/rex/RexSimplify.html        |    6 +-
 .../calcite/rex/RexSlot.SelfPopulatingList.html    |    2 +-
 .../org/apache/calcite/rex/RexSlot.html            |    2 +-
 .../org/apache/calcite/rex/RexSqlConvertlet.html   |    6 +-
 .../apache/calcite/rex/RexSqlConvertletTable.html  |    6 +-
 .../rex/RexSqlReflectiveConvertletTable.html       |    6 +-
 .../calcite/rex/RexSqlStandardConvertletTable.html |    6 +-
 .../org/apache/calcite/rex/RexSubQuery.html        |    9 +-
 .../calcite/rex/RexTableInputRef.RelTableRef.html  |    6 +-
 .../org/apache/calcite/rex/RexTableInputRef.html   |    6 +-
 .../apache/calcite/rex/RexToSqlNodeConverter.html  |   18 +-
 .../calcite/rex/RexToSqlNodeConverterImpl.html     |   18 +-
 .../org/apache/calcite/rex/RexTransformer.html     |    2 +-
 .../org/apache/calcite/rex/RexUnaryBiVisitor.html  |   56 +-
 .../org/apache/calcite/rex/RexUnknownAs.html       |   30 +-
 .../apache/calcite/rex/RexUtil.ExprSimplifier.html |    2 +-
 .../calcite/rex/RexUtil.FieldAccessFinder.html     |    2 +-
 .../calcite/rex/RexUtil.FixNullabilityShuttle.html |    2 +-
 .../org/apache/calcite/rex/RexUtil.RexFinder.html  |    2 +-
 .../apache/calcite/rex/RexUtil.SubQueryFinder.html |   10 +-
 .../org/apache/calcite/rex/RexUtil.html            |  369 +-
 .../org/apache/calcite/rex/RexVariable.html        |    2 +-
 .../org/apache/calcite/rex/RexVisitor.html         |    2 +-
 .../org/apache/calcite/rex/RexVisitorImpl.html     |    4 +-
 .../org/apache/calcite/rex/RexWindow.html          |    6 +-
 .../org/apache/calcite/rex/RexWindowBound.html     |   17 +-
 .../org/apache/calcite/rex/RexWindowBounds.html    |    6 +-
 .../org/apache/calcite/rex/package-summary.html    |    4 +-
 .../org/apache/calcite/rex/package-tree.html       |    2 +-
 .../org/apache/calcite/runtime/ArrayBindable.html  |    6 +-
 .../apache/calcite/runtime/ArrayComparator.html    |    2 +-
 .../calcite/runtime/ArrayEnumeratorCursor.html     |   10 +-
 .../org/apache/calcite/runtime/Automaton.html      |    2 +-
 .../apache/calcite/runtime/AutomatonBuilder.html   |    2 +-
 .../org/apache/calcite/runtime/BinarySearch.html   |    2 +-
 .../org/apache/calcite/runtime/Bindable.html       |    2 +-
 .../calcite/runtime/CalciteContextException.html   |   17 +-
 .../apache/calcite/runtime/CalciteException.html   |    2 +-
 .../apache/calcite/runtime/CalciteResource.html    |  658 +--
 .../calcite/runtime/CompressionFunctions.html      |    8 +-
 .../org/apache/calcite/runtime/ConsList.html       |   60 +-
 .../calcite/runtime/DeterministicAutomaton.html    |    2 +-
 .../calcite/runtime/Enumerables.Emitter.html       |    6 +-
 .../org/apache/calcite/runtime/Enumerables.html    |   14 +-
 .../apache/calcite/runtime/EnumeratorCursor.html   |    2 +-
 .../org/apache/calcite/runtime/Feature.html        |    2 +-
 .../runtime/FlatLists.AbstractFlatList.html        |   35 +-
 .../calcite/runtime/FlatLists.ComparableList.html  |    2 +-
 .../calcite/runtime/FlatLists.Flat1List.html       |   54 +-
 .../calcite/runtime/FlatLists.Flat2List.html       |   54 +-
 .../calcite/runtime/FlatLists.Flat3List.html       |   54 +-
 .../calcite/runtime/FlatLists.Flat4List.html       |   54 +-
 .../calcite/runtime/FlatLists.Flat5List.html       |   54 +-
 .../calcite/runtime/FlatLists.Flat6List.html       |   54 +-
 .../org/apache/calcite/runtime/FlatLists.html      |    2 +-
 ...ressionFunctions.html => FunctionContexts.html} |   30 +-
 .../runtime/GeoFunctions.GridEnumerable.html       |    4 +-
 .../org/apache/calcite/runtime/GeoFunctions.html   |   74 +-
 .../apache/calcite/runtime/Geometries.Geom.html    |    2 +-
 .../apache/calcite/runtime/Geometries.Type.html    |    2 +-
 .../org/apache/calcite/runtime/Geometries.html     |    7 +-
 .../org/apache/calcite/runtime/HilbertCurve2D.html |    2 +-
 .../org/apache/calcite/runtime/Hook.Closeable.html |    2 +-
 .../org/apache/calcite/runtime/Hook.html           |   21 +-
 .../org/apache/calcite/runtime/HttpUtils.html      |    2 +-
 .../runtime/JsonFunctions.JsonPathContext.html     |   18 +-
 .../runtime/JsonFunctions.JsonValueContext.html    |   22 +-
 .../calcite/runtime/JsonFunctions.PathMode.html    |    2 +-
 .../org/apache/calcite/runtime/JsonFunctions.html  |  102 +-
 .../org/apache/calcite/runtime/Like.html           |    2 +-
 .../apache/calcite/runtime/Matcher.Builder.html    |    2 +-
 .../org/apache/calcite/runtime/Matcher.html        |    2 +-
 .../calcite/runtime/ObjectEnumeratorCursor.html    |    2 +-
 .../calcite/runtime/Pattern.AbstractPattern.html   |    2 +-
 .../org/apache/calcite/runtime/Pattern.Op.html     |    2 +-
 .../apache/calcite/runtime/Pattern.OpPattern.html  |    2 +-
 .../calcite/runtime/Pattern.PatternBuilder.html    |    2 +-
 .../calcite/runtime/Pattern.RepeatPattern.html     |    2 +-
 .../calcite/runtime/Pattern.SymbolPattern.html     |    2 +-
 .../org/apache/calcite/runtime/Pattern.html        |    2 +-
 .../org/apache/calcite/runtime/PredicateImpl.html  |   12 +-
 .../org/apache/calcite/runtime/RandomFunction.html |    2 +-
 .../calcite/runtime/RecordEnumeratorCursor.html    |    2 +-
 ...ultSetEnumerable.PreparedStatementEnricher.html |    2 +-
 .../calcite/runtime/ResultSetEnumerable.html       |   12 +-
 .../apache/calcite/runtime/SocketFactoryImpl.html  |    6 +-
 .../org/apache/calcite/runtime/SortedMultiMap.html |    2 +-
 .../runtime/SpaceFillingCurve2D.AbstractRange.html |    2 +-
 .../runtime/SpaceFillingCurve2D.CoveredRange.html  |    2 +-
 .../runtime/SpaceFillingCurve2D.IndexRange.html    |    2 +-
 .../SpaceFillingCurve2D.IndexRangeOrdering.html    |    2 +-
 .../SpaceFillingCurve2D.IndexRangeTuple.html       |    2 +-
 .../runtime/SpaceFillingCurve2D.IndexRanges.html   |    2 +-
 .../SpaceFillingCurve2D.OverlappingRange.html      |    2 +-
 .../calcite/runtime/SpaceFillingCurve2D.Point.html |    2 +-
 .../SpaceFillingCurve2D.RangeComputeHints.html     |    2 +-
 .../calcite/runtime/SpaceFillingCurve2D.html       |    2 +-
 .../runtime/SqlFunctions.FlatProductInputType.html |    2 +-
 .../org/apache/calcite/runtime/SqlFunctions.html   | 1151 ++---
 .../calcite/runtime/TrustAllSslSocketFactory.html  |  420 --
 .../org/apache/calcite/runtime/Typed.html          |    2 +-
 .../org/apache/calcite/runtime/Unit.html           |    2 +-
 .../org/apache/calcite/runtime/Utilities.html      |   64 +-
 .../org/apache/calcite/runtime/XmlFunctions.html   |   70 +-
 .../apache/calcite/runtime/package-summary.html    |   78 +-
 .../org/apache/calcite/runtime/package-tree.html   |    9 +-
 .../apache/calcite/schema/AggregateFunction.html   |    2 +-
 .../org/apache/calcite/schema/ColumnStrategy.html  |    2 +-
 .../calcite/schema/CustomColumnResolvingTable.html |    2 +-
 .../org/apache/calcite/schema/ExtensibleTable.html |    2 +-
 .../org/apache/calcite/schema/FilterableTable.html |    6 +-
 .../org/apache/calcite/schema/Function.html        |    2 +-
 ...FunctionParameter.html => FunctionContext.html} |  151 +-
 .../apache/calcite/schema/FunctionParameter.html   |    2 +-
 .../calcite/schema/ImplementableAggFunction.html   |    2 +-
 .../calcite/schema/ImplementableFunction.html      |    2 +-
 .../org/apache/calcite/schema/Member.html          |    2 +-
 .../org/apache/calcite/schema/ModifiableTable.html |   14 +-
 .../org/apache/calcite/schema/ModifiableView.html  |    2 +-
 .../org/apache/calcite/schema/Path.html            |    2 +-
 .../calcite/schema/ProjectableFilterableTable.html |   12 +-
 .../org/apache/calcite/schema/QueryableTable.html  |    4 +-
 .../org/apache/calcite/schema/ScalarFunction.html  |    2 +-
 .../org/apache/calcite/schema/ScannableTable.html  |    6 +-
 .../apache/calcite/schema/Schema.TableType.html    |    2 +-
 .../org/apache/calcite/schema/Schema.html          |   20 +-
 .../org/apache/calcite/schema/SchemaFactory.html   |    6 +-
 .../org/apache/calcite/schema/SchemaPlus.html      |   14 +-
 .../org/apache/calcite/schema/SchemaVersion.html   |    2 +-
 .../org/apache/calcite/schema/Schemas.html         |   46 +-
 .../apache/calcite/schema/SemiMutableSchema.html   |    2 +-
 .../org/apache/calcite/schema/Statistic.html       |   22 +-
 .../org/apache/calcite/schema/Statistics.html      |   34 +-
 .../org/apache/calcite/schema/StreamableTable.html |    2 +-
 .../org/apache/calcite/schema/Table.html           |   12 +-
 .../org/apache/calcite/schema/TableFactory.html    |    8 +-
 .../org/apache/calcite/schema/TableFunction.html   |   10 +-
 .../org/apache/calcite/schema/TableMacro.html      |    6 +-
 .../org/apache/calcite/schema/TemporalTable.html   |    8 +-
 .../org/apache/calcite/schema/TransientTable.html  |    2 +-
 .../apache/calcite/schema/TranslatableTable.html   |    4 +-
 .../org/apache/calcite/schema/Wrapper.html         |   54 +-
 .../schema/impl/AbstractSchema.Factory.html        |    2 +-
 .../apache/calcite/schema/impl/AbstractSchema.html |   20 +-
 .../apache/calcite/schema/impl/AbstractTable.html  |   19 +-
 .../schema/impl/AbstractTableQueryable.html        |   26 +-
 .../calcite/schema/impl/AggregateFunctionImpl.html |   14 +-
 .../calcite/schema/impl/DelegatingSchema.html      |   18 +-
 .../calcite/schema/impl/ListTransientTable.html    |   19 +-
 .../calcite/schema/impl/LongSchemaVersion.html     |    6 +-
 ...alizedViewTable.MaterializedViewTableMacro.html |    6 +-
 .../calcite/schema/impl/MaterializedViewTable.html |   19 +-
 .../calcite/schema/impl/ModifiableViewTable.html   |   15 +-
 ...eflectiveFunctionBase.ParameterListBuilder.html |    2 +-
 .../schema/impl/ReflectiveFunctionBase.html        |    8 +-
 .../calcite/schema/impl/ScalarFunctionImpl.html    |    6 +-
 .../schema/impl/StarTable.StarTableScan.html       |    8 +-
 .../org/apache/calcite/schema/impl/StarTable.html  |   11 +-
 .../calcite/schema/impl/TableFunctionImpl.html     |   22 +-
 .../apache/calcite/schema/impl/TableMacroImpl.html |   14 +-
 .../org/apache/calcite/schema/impl/ViewTable.html  |   27 +-
 .../apache/calcite/schema/impl/ViewTableMacro.html |   34 +-
 .../calcite/schema/impl/package-summary.html       |    2 +-
 .../apache/calcite/schema/impl/package-tree.html   |    2 +-
 .../org/apache/calcite/schema/package-summary.html |   61 +-
 .../org/apache/calcite/schema/package-tree.html    |    3 +-
 .../org/apache/calcite/server/CalciteServer.html   |    2 +-
 .../calcite/server/CalciteServerStatement.html     |   10 +-
 .../org/apache/calcite/server/DdlExecutor.html     |    2 +-
 .../org/apache/calcite/server/DdlExecutorImpl.html |    2 +-
 .../apache/calcite/server/ServerDdlExecutor.html   |   22 +-
 .../org/apache/calcite/server/package-summary.html |    4 +-
 .../org/apache/calcite/server/package-tree.html    |    2 +-
 .../calcite/sql/ExplicitOperatorBinding.html       |    2 +-
 .../org/apache/calcite/sql/JoinConditionType.html  |    2 +-
 .../org/apache/calcite/sql/JoinType.html           |    2 +-
 .../calcite/sql/SqlAbstractDateTimeLiteral.html    |    4 +-
 .../org/apache/calcite/sql/SqlAccessEnum.html      |    2 +-
 .../org/apache/calcite/sql/SqlAccessType.html      |    2 +-
 .../org/apache/calcite/sql/SqlAggFunction.html     |   97 +-
 .../calcite/sql/SqlAlienSystemTypeNameSpec.html    |    2 +-
 .../org/apache/calcite/sql/SqlAlter.html           |   25 +-
 .../org/apache/calcite/sql/SqlAsOperator.html      |    4 +-
 .../org/apache/calcite/sql/SqlBasicCall.html       |   57 +-
 .../apache/calcite/sql/SqlBasicTypeNameSpec.html   |   11 +-
 .../org/apache/calcite/sql/SqlBinaryOperator.html  |   57 +-
 .../apache/calcite/sql/SqlBinaryStringLiteral.html |    4 +-
 .../org/apache/calcite/sql/SqlCall.html            |   65 +-
 .../org/apache/calcite/sql/SqlCallBinding.html     |   82 +-
 .../apache/calcite/sql/SqlCharStringLiteral.html   |    8 +-
 .../calcite/sql/SqlCollation.Coercibility.html     |    2 +-
 .../org/apache/calcite/sql/SqlCollation.html       |   22 +-
 .../calcite/sql/SqlCollectionTypeNameSpec.html     |    2 +-
 .../org/apache/calcite/sql/SqlCreate.html          |   13 +-
 .../org/apache/calcite/sql/SqlDataTypeSpec.html    |   36 +-
 .../org/apache/calcite/sql/SqlDateLiteral.html     |    4 +-
 .../org/apache/calcite/sql/SqlDdl.html             |   10 +-
 .../org/apache/calcite/sql/SqlDelete.html          |   42 +-
 .../org/apache/calcite/sql/SqlDescribeSchema.html  |   18 +-
 .../org/apache/calcite/sql/SqlDescribeTable.html   |   26 +-
 .../apache/calcite/sql/SqlDescriptorOperator.html  |    4 +-
 .../calcite/sql/SqlDialect.CalendarPolicy.html     |    2 +-
 .../org/apache/calcite/sql/SqlDialect.Context.html |   71 +-
 .../calcite/sql/SqlDialect.DatabaseProduct.html    |    2 +-
 .../apache/calcite/sql/SqlDialect.FakeUtil.html    |    2 +-
 .../org/apache/calcite/sql/SqlDialect.html         |  174 +-
 .../org/apache/calcite/sql/SqlDialectFactory.html  |    2 +-
 .../apache/calcite/sql/SqlDialectFactoryImpl.html  |    2 +-
 .../org/apache/calcite/sql/SqlDrop.html            |   13 +-
 .../org/apache/calcite/sql/SqlDynamicParam.html    |   12 +-
 .../org/apache/calcite/sql/SqlExplain.Depth.html   |    2 +-
 .../org/apache/calcite/sql/SqlExplain.html         |   39 +-
 .../org/apache/calcite/sql/SqlExplainFormat.html   |    2 +-
 .../org/apache/calcite/sql/SqlExplainLevel.html    |    2 +-
 .../org/apache/calcite/sql/SqlFilterOperator.html  |    6 +-
 .../org/apache/calcite/sql/SqlFunction.html        |   82 +-
 .../apache/calcite/sql/SqlFunctionCategory.html    |    2 +-
 .../apache/calcite/sql/SqlFunctionalOperator.html  |   16 +-
 .../calcite/sql/SqlGroupedWindowFunction.html      |   36 +-
 .../calcite/sql/SqlHint.HintOptionFormat.html      |   12 +-
 .../org/apache/calcite/sql/SqlHint.html            |   14 +-
 .../apache/calcite/sql/SqlHopTableFunction.html    |    4 +-
 .../org/apache/calcite/sql/SqlIdentifier.html      |  103 +-
 .../org/apache/calcite/sql/SqlInfixOperator.html   |   16 +-
 .../org/apache/calcite/sql/SqlInsert.html          |   31 +-
 .../org/apache/calcite/sql/SqlInsertKeyword.html   |    2 +-
 .../apache/calcite/sql/SqlInternalOperator.html    |    8 +-
 .../sql/SqlIntervalLiteral.IntervalValue.html      |    6 +-
 .../org/apache/calcite/sql/SqlIntervalLiteral.html |    4 +-
 .../apache/calcite/sql/SqlIntervalQualifier.html   |   19 +-
 .../apache/calcite/sql/SqlJdbcDataTypeName.html    |    2 +-
 .../sql/SqlJdbcFunctionCall.SimpleMakeCall.html    |   10 +-
 .../apache/calcite/sql/SqlJdbcFunctionCall.html    |   26 +-
 .../calcite/sql/SqlJoin.SqlJoinOperator.html       |   26 +-
 .../org/apache/calcite/sql/SqlJoin.html            |   26 +-
 .../calcite/sql/SqlJsonConstructorNullClause.html  |    2 +-
 .../apache/calcite/sql/SqlJsonEmptyOrError.html    |    2 +-
 .../org/apache/calcite/sql/SqlJsonEncoding.html    |    2 +-
 .../calcite/sql/SqlJsonExistsErrorBehavior.html    |    2 +-
 .../sql/SqlJsonQueryEmptyOrErrorBehavior.html      |    2 +-
 .../calcite/sql/SqlJsonQueryWrapperBehavior.html   |    2 +-
 .../sql/SqlJsonValueEmptyOrErrorBehavior.html      |    2 +-
 .../apache/calcite/sql/SqlJsonValueReturning.html  |    2 +-
 .../org/apache/calcite/sql/SqlKind.html            |  265 +-
 .../org/apache/calcite/sql/SqlLateralOperator.html |    4 +-
 .../apache/calcite/sql/SqlLiteral.SqlSymbol.html   |    2 +-
 .../org/apache/calcite/sql/SqlLiteral.html         |   68 +-
 .../org/apache/calcite/sql/SqlMatchFunction.html   |    8 +-
 .../calcite/sql/SqlMatchRecognize.AfterOption.html |    2 +-
 .../sql/SqlMatchRecognize.RowsPerMatchOption.html  |    2 +-
 ...qlMatchRecognize.SqlMatchRecognizeOperator.html |   26 +-
 .../org/apache/calcite/sql/SqlMatchRecognize.html  |   51 +-
 .../org/apache/calcite/sql/SqlMerge.html           |   55 +-
 .../org/apache/calcite/sql/SqlNode.html            |   69 +-
 .../org/apache/calcite/sql/SqlNodeList.html        |  478 +-
 .../org/apache/calcite/sql/SqlNullSemantics.html   |    2 +-
 .../calcite/sql/SqlNullTreatmentOperator.html      |   38 +-
 .../org/apache/calcite/sql/SqlNumericLiteral.html  |   21 +-
 .../apache/calcite/sql/SqlOperandCountRange.html   |    2 +-
 .../org/apache/calcite/sql/SqlOperator.html        |  352 +-
 .../org/apache/calcite/sql/SqlOperatorBinding.html |   26 +-
 .../org/apache/calcite/sql/SqlOperatorTable.html   |    6 +-
 .../org/apache/calcite/sql/SqlOrderBy.html         |   30 +-
 .../org/apache/calcite/sql/SqlOverOperator.html    |    6 +-
 .../org/apache/calcite/sql/SqlPivot.html           |   25 +-
 .../org/apache/calcite/sql/SqlPostfixOperator.html |   20 +-
 .../org/apache/calcite/sql/SqlPrefixOperator.html  |   20 +-
 .../calcite/sql/SqlProcedureCallOperator.html      |    4 +-
 .../org/apache/calcite/sql/SqlRankFunction.html    |   11 +-
 .../org/apache/calcite/sql/SqlRowTypeNameSpec.html |    2 +-
 .../SqlSampleSpec.SqlSubstitutionSampleSpec.html   |    2 +-
 .../sql/SqlSampleSpec.SqlTableSampleSpec.html      |    2 +-
 .../org/apache/calcite/sql/SqlSampleSpec.html      |    2 +-
 .../org/apache/calcite/sql/SqlSelect.html          |  144 +-
 .../org/apache/calcite/sql/SqlSelectKeyword.html   |    2 +-
 .../org/apache/calcite/sql/SqlSelectOperator.html  |   61 +-
 .../calcite/sql/SqlSessionTableFunction.html       |    4 +-
 .../org/apache/calcite/sql/SqlSetOperator.html     |    6 +-
 .../org/apache/calcite/sql/SqlSetOption.html       |   30 +-
 .../sql/SqlSnapshot.SqlSnapshotOperator.html       |   26 +-
 .../org/apache/calcite/sql/SqlSnapshot.html        |   18 +-
 .../sql/SqlSpecialOperator.ReduceResult.html       |    4 +-
 .../sql/SqlSpecialOperator.TokenSequence.html      |    2 +-
 .../org/apache/calcite/sql/SqlSpecialOperator.html |   18 +-
 ...lSplittableAggFunction.AbstractSumSplitter.html |   10 +-
 .../SqlSplittableAggFunction.CountSplitter.html    |   10 +-
 .../sql/SqlSplittableAggFunction.Registry.html     |    2 +-
 .../sql/SqlSplittableAggFunction.SelfSplitter.html |   10 +-
 .../sql/SqlSplittableAggFunction.Sum0Splitter.html |    2 +-
 .../sql/SqlSplittableAggFunction.SumSplitter.html  |    2 +-
 .../calcite/sql/SqlSplittableAggFunction.html      |   10 +-
 .../org/apache/calcite/sql/SqlStateCodes.html      |    2 +-
 .../org/apache/calcite/sql/SqlSyntax.html          |   74 +-
 .../org/apache/calcite/sql/SqlTableFunction.html   |    2 +-
 .../org/apache/calcite/sql/SqlTableRef.html        |   14 +-
 .../org/apache/calcite/sql/SqlTimeLiteral.html     |    4 +-
 .../apache/calcite/sql/SqlTimestampLiteral.html    |    4 +-
 .../apache/calcite/sql/SqlTumbleTableFunction.html |    4 +-
 .../calcite/sql/SqlTypeConstructorFunction.html    |    4 +-
 .../org/apache/calcite/sql/SqlTypeNameSpec.html    |    8 +-
 .../org/apache/calcite/sql/SqlUnnestOperator.html  |    4 +-
 .../calcite/sql/{SqlPivot.html => SqlUnpivot.html} |  145 +-
 .../apache/calcite/sql/SqlUnresolvedFunction.html  |   20 +-
 .../org/apache/calcite/sql/SqlUpdate.html          |   47 +-
 .../calcite/sql/SqlUserDefinedTypeNameSpec.html    |    2 +-
 .../SqlUtil.DatabaseMetaDataInvocationHandler.html |    2 +-
 .../org/apache/calcite/sql/SqlUtil.html            |  157 +-
 .../org/apache/calcite/sql/SqlValuesOperator.html  |    4 +-
 .../org/apache/calcite/sql/SqlWindow.html          |  146 +-
 ...indowTableFunction.AbstractOperandMetadata.html |    4 +-
 .../apache/calcite/sql/SqlWindowTableFunction.html |    8 +-
 .../org/apache/calcite/sql/SqlWith.html            |   18 +-
 .../org/apache/calcite/sql/SqlWithItem.html        |   26 +-
 ...perator.html => SqlWithinDistinctOperator.html} |   30 +-
 .../apache/calcite/sql/SqlWithinGroupOperator.html |    6 +-
 .../org/apache/calcite/sql/SqlWriter.Frame.html    |    2 +-
 .../apache/calcite/sql/SqlWriter.FrameType.html    |    2 +-
 .../calcite/sql/SqlWriter.FrameTypeEnum.html       |    2 +-
 .../calcite/sql/SqlWriter.SubQueryStyle.html       |    2 +-
 .../org/apache/calcite/sql/SqlWriter.html          |   65 +-
 .../calcite/sql/SqlWriterConfig.LineFolding.html   |    2 +-
 .../org/apache/calcite/sql/SqlWriterConfig.html    |   98 +-
 .../org/apache/calcite/sql/Symbolizable.html       |    4 +-
 .../sql/advise/SqlAdvisor.ValidateErrorInfo.html   |   16 +-
 .../org/apache/calcite/sql/advise/SqlAdvisor.html  |   19 +-
 .../sql/advise/SqlAdvisorGetHintsFunction.html     |   10 +-
 .../sql/advise/SqlAdvisorGetHintsFunction2.html    |   10 +-
 .../apache/calcite/sql/advise/SqlAdvisorHint.html  |   14 +-
 .../apache/calcite/sql/advise/SqlAdvisorHint2.html |   14 +-
 .../calcite/sql/advise/SqlAdvisorValidator.html    |    6 +-
 .../sql/advise/SqlSimpleParser.IdToken.html        |    2 +-
 .../calcite/sql/advise/SqlSimpleParser.Token.html  |    2 +-
 .../sql/advise/SqlSimpleParser.Tokenizer.html      |    6 +-
 .../apache/calcite/sql/advise/SqlSimpleParser.html |    2 +-
 .../apache/calcite/sql/advise/package-summary.html |   24 +-
 .../apache/calcite/sql/advise/package-tree.html    |    2 +-
 .../calcite/sql/babel/SqlBabelCreateTable.html     |    4 +-
 .../calcite/sql/babel/TableCollectionType.html     |    2 +-
 .../apache/calcite/sql/babel/package-summary.html  |    2 +-
 .../org/apache/calcite/sql/babel/package-tree.html |    2 +-
 .../calcite/sql/ddl/SqlAttributeDefinition.html    |   14 +-
 .../apache/calcite/sql/ddl/SqlCheckConstraint.html |   14 +-
 .../calcite/sql/ddl/SqlColumnDeclaration.html      |   18 +-
 .../calcite/sql/ddl/SqlCreateForeignSchema.html    |   22 +-
 .../apache/calcite/sql/ddl/SqlCreateFunction.html  |   14 +-
 .../calcite/sql/ddl/SqlCreateMaterializedView.html |   18 +-
 .../apache/calcite/sql/ddl/SqlCreateSchema.html    |   14 +-
 .../org/apache/calcite/sql/ddl/SqlCreateTable.html |   30 +-
 .../org/apache/calcite/sql/ddl/SqlCreateType.html  |   22 +-
 .../org/apache/calcite/sql/ddl/SqlCreateView.html  |   18 +-
 .../calcite/sql/ddl/SqlDdlNodes.FileType.html      |    2 +-
 .../org/apache/calcite/sql/ddl/SqlDdlNodes.html    |    2 +-
 .../apache/calcite/sql/ddl/SqlDropFunction.html    |    4 +-
 .../calcite/sql/ddl/SqlDropMaterializedView.html   |    4 +-
 .../org/apache/calcite/sql/ddl/SqlDropObject.html  |   14 +-
 .../org/apache/calcite/sql/ddl/SqlDropSchema.html  |   14 +-
 .../org/apache/calcite/sql/ddl/SqlDropTable.html   |    4 +-
 .../org/apache/calcite/sql/ddl/SqlDropType.html    |    4 +-
 .../org/apache/calcite/sql/ddl/SqlDropView.html    |    4 +-
 .../apache/calcite/sql/ddl/SqlKeyConstraint.html   |   14 +-
 .../apache/calcite/sql/ddl/package-summary.html    |    2 +-
 .../org/apache/calcite/sql/ddl/package-tree.html   |    2 +-
 .../calcite/sql/dialect/AccessSqlDialect.html      |    4 +-
 .../apache/calcite/sql/dialect/AnsiSqlDialect.html |    4 +-
 .../calcite/sql/dialect/BigQuerySqlDialect.html    |   56 +-
 .../calcite/sql/dialect/CalciteSqlDialect.html     |    4 +-
 .../calcite/sql/dialect/ClickHouseSqlDialect.html  |   16 +-
 .../apache/calcite/sql/dialect/Db2SqlDialect.html  |    4 +-
 .../calcite/sql/dialect/DerbySqlDialect.html       |    4 +-
 .../calcite/sql/dialect/FirebirdSqlDialect.html    |    4 +-
 .../apache/calcite/sql/dialect/H2SqlDialect.html   |    4 +-
 .../apache/calcite/sql/dialect/HiveSqlDialect.html |   20 +-
 .../calcite/sql/dialect/HsqldbSqlDialect.html      |   39 +-
 .../calcite/sql/dialect/InfobrightSqlDialect.html  |    4 +-
 .../calcite/sql/dialect/InformixSqlDialect.html    |    4 +-
 .../calcite/sql/dialect/IngresSqlDialect.html      |    4 +-
 .../calcite/sql/dialect/InterbaseSqlDialect.html   |    4 +-
 .../dialect/JethroDataSqlDialect.JethroInfo.html   |    2 +-
 .../JethroDataSqlDialect.JethroInfoCache.html      |    2 +-
 .../calcite/sql/dialect/JethroDataSqlDialect.html  |    8 +-
 .../calcite/sql/dialect/LucidDbSqlDialect.html     |    4 +-
 .../calcite/sql/dialect/MssqlSqlDialect.html       |   24 +-
 .../calcite/sql/dialect/MysqlSqlDialect.html       |   20 +-
 .../calcite/sql/dialect/NeoviewSqlDialect.html     |    4 +-
 .../calcite/sql/dialect/NetezzaSqlDialect.html     |    4 +-
 .../calcite/sql/dialect/OracleSqlDialect.html      |    8 +-
 .../calcite/sql/dialect/ParaccelSqlDialect.html    |    4 +-
 .../calcite/sql/dialect/PhoenixSqlDialect.html     |    4 +-
 .../calcite/sql/dialect/PostgresqlSqlDialect.html  |   37 +-
 .../calcite/sql/dialect/PrestoSqlDialect.html      |   20 +-
 .../calcite/sql/dialect/RedshiftSqlDialect.html    |   12 +-
 .../calcite/sql/dialect/SnowflakeSqlDialect.html   |    4 +-
 .../calcite/sql/dialect/SparkSqlDialect.html       |   12 +-
 .../calcite/sql/dialect/SybaseSqlDialect.html      |   20 +-
 .../calcite/sql/dialect/TeradataSqlDialect.html    |    4 +-
 .../calcite/sql/dialect/VerticaSqlDialect.html     |   31 +-
 .../calcite/sql/dialect/package-summary.html       |    2 +-
 .../apache/calcite/sql/dialect/package-tree.html   |    2 +-
 .../apache/calcite/sql/fun/LibraryOperator.html    |    2 +-
 .../calcite/sql/fun/OracleSqlOperatorTable.html    |    2 +-
 .../calcite/sql/fun/SqlAbstractGroupFunction.html  |   15 +-
 .../calcite/sql/fun/SqlAbstractTimeFunction.html   |    4 +-
 .../calcite/sql/fun/SqlAnyValueAggFunction.html    |  121 +-
 .../calcite/sql/fun/SqlArrayQueryConstructor.html  |    4 +-
 .../calcite/sql/fun/SqlArrayValueConstructor.html  |    4 +-
 .../calcite/sql/fun/SqlAvgAggFunction.Subtype.html |    2 +-
 .../apache/calcite/sql/fun/SqlAvgAggFunction.html  |   11 +-
 .../calcite/sql/fun/SqlBaseContextVariable.html    |    4 +-
 .../calcite/sql/fun/SqlBasicAggFunction.html       |  511 ++
 .../calcite/sql/fun/SqlBetweenOperator.Flag.html   |    2 +-
 .../apache/calcite/sql/fun/SqlBetweenOperator.html |   46 +-
 .../calcite/sql/fun/SqlBitOpAggFunction.html       |   15 +-
 .../org/apache/calcite/sql/fun/SqlCase.html        |   42 +-
 .../apache/calcite/sql/fun/SqlCaseOperator.html    |   26 +-
 .../apache/calcite/sql/fun/SqlCastFunction.html    |    4 +-
 .../calcite/sql/fun/SqlCoalesceFunction.html       |    4 +-
 .../sql/fun/SqlCollectionTableOperator.html        |    4 +-
 .../calcite/sql/fun/SqlColumnListConstructor.html  |    4 +-
 .../apache/calcite/sql/fun/SqlConvertFunction.html |    4 +-
 .../calcite/sql/fun/SqlCountAggFunction.html       |   36 +-
 .../sql/fun/SqlCovarAggFunction.Subtype.html       |    2 +-
 .../calcite/sql/fun/SqlCovarAggFunction.html       |   11 +-
 .../calcite/sql/fun/SqlCurrentDateFunction.html    |    4 +-
 .../calcite/sql/fun/SqlCursorConstructor.html      |    4 +-
 .../calcite/sql/fun/SqlDatePartFunction.html       |    4 +-
 .../calcite/sql/fun/SqlDatetimePlusOperator.html   |    4 +-
 .../sql/fun/SqlDatetimeSubtractionOperator.html    |    4 +-
 .../org/apache/calcite/sql/fun/SqlDotOperator.html |    4 +-
 .../apache/calcite/sql/fun/SqlExtractFunction.html |    4 +-
 .../sql/fun/SqlFirstLastValueAggFunction.html      |   11 +-
 .../apache/calcite/sql/fun/SqlFloorFunction.html   |    4 +-
 .../calcite/sql/fun/SqlGeoFunctions.GridTable.html |   14 +-
 .../apache/calcite/sql/fun/SqlGeoFunctions.html    |    2 +-
 .../calcite/sql/fun/SqlHistogramAggFunction.html   |   11 +-
 .../org/apache/calcite/sql/fun/SqlInOperator.html  |   35 +-
 .../calcite/sql/fun/SqlInternalOperators.html      |   69 +-
 .../calcite/sql/fun/SqlIntervalOperator.html       |    4 +-
 .../sql/fun/SqlJsonArrayAggAggFunction.html        |   33 +-
 .../calcite/sql/fun/SqlJsonArrayFunction.html      |   34 +-
 .../calcite/sql/fun/SqlJsonDepthFunction.html      |   40 +-
 .../calcite/sql/fun/SqlJsonExistsFunction.html     |    4 +-
 .../calcite/sql/fun/SqlJsonKeysFunction.html       |    4 +-
 .../calcite/sql/fun/SqlJsonLengthFunction.html     |    4 +-
 .../sql/fun/SqlJsonObjectAggAggFunction.html       |   11 +-
 .../calcite/sql/fun/SqlJsonObjectFunction.html     |   34 +-
 .../calcite/sql/fun/SqlJsonPrettyFunction.html     |   40 +-
 .../calcite/sql/fun/SqlJsonQueryFunction.html      |   30 +-
 .../calcite/sql/fun/SqlJsonRemoveFunction.html     |    4 +-
 .../sql/fun/SqlJsonStorageSizeFunction.html        |    4 +-
 .../calcite/sql/fun/SqlJsonTypeFunction.html       |   40 +-
 .../sql/fun/SqlJsonValueExpressionOperator.html    |    4 +-
 .../calcite/sql/fun/SqlJsonValueFunction.html      |    8 +-
 .../calcite/sql/fun/SqlLeadLagAggFunction.html     |   11 +-
 .../org/apache/calcite/sql/fun/SqlLibrary.html     |   40 +-
 .../sql/fun/SqlLibraryOperatorTableFactory.html    |    2 +-
 .../calcite/sql/fun/SqlLibraryOperators.html       |  339 +-
 .../apache/calcite/sql/fun/SqlLikeOperator.html    |  132 +-
 .../calcite/sql/fun/SqlLiteralChainOperator.html   |    4 +-
 .../calcite/sql/fun/SqlMapQueryConstructor.html    |    4 +-
 .../calcite/sql/fun/SqlMapValueConstructor.html    |    4 +-
 .../calcite/sql/fun/SqlMinMaxAggFunction.html      |   42 +-
 .../sql/fun/SqlMonotonicBinaryOperator.html        |    6 +-
 .../calcite/sql/fun/SqlMonotonicUnaryFunction.html |    8 +-
 .../sql/fun/SqlMultisetMemberOfOperator.html       |    6 +-
 .../sql/fun/SqlMultisetQueryConstructor.html       |    4 +-
 .../calcite/sql/fun/SqlMultisetSetOperator.html    |    6 +-
 .../sql/fun/SqlMultisetValueConstructor.html       |    8 +-
 .../org/apache/calcite/sql/fun/SqlNewOperator.html |    4 +-
 .../calcite/sql/fun/SqlNthValueAggFunction.html    |   11 +-
 .../calcite/sql/fun/SqlNtileAggFunction.html       |   11 +-
 .../apache/calcite/sql/fun/SqlNullifFunction.html  |    4 +-
 .../calcite/sql/fun/SqlOverlapsOperator.html       |    6 +-
 .../apache/calcite/sql/fun/SqlOverlayFunction.html |    4 +-
 .../calcite/sql/fun/SqlPositionFunction.html       |    4 +-
 .../calcite/sql/fun/SqlPosixRegexOperator.html     |   99 +-
 .../calcite/sql/fun/SqlQuantifyOperator.html       |    8 +-
 .../apache/calcite/sql/fun/SqlRandFunction.html    |    4 +-
 .../calcite/sql/fun/SqlRandIntegerFunction.html    |    4 +-
 .../calcite/sql/fun/SqlRegexpReplaceFunction.html  |    4 +-
 .../calcite/sql/fun/SqlRegrCountAggFunction.html   |   11 +-
 .../org/apache/calcite/sql/fun/SqlRowOperator.html |    4 +-
 .../calcite/sql/fun/SqlSequenceValueOperator.html  |    4 +-
 .../calcite/sql/fun/SqlSingleValueAggFunction.html |   89 +-
 .../calcite/sql/fun/SqlStdOperatorTable.html       |  282 +-
 .../calcite/sql/fun/SqlStringContextVariable.html  |    4 +-
 .../calcite/sql/fun/SqlSubstringFunction.html      |    4 +-
 .../apache/calcite/sql/fun/SqlSumAggFunction.html  |   36 +-
 .../sql/fun/SqlSumEmptyIsZeroAggFunction.html      |   34 +-
 .../apache/calcite/sql/fun/SqlThrowOperator.html   |    4 +-
 .../calcite/sql/fun/SqlTimestampAddFunction.html   |    4 +-
 .../calcite/sql/fun/SqlTranslate3Function.html     |    4 +-
 .../calcite/sql/fun/SqlTrimFunction.Flag.html      |    2 +-
 .../apache/calcite/sql/fun/SqlTrimFunction.html    |   26 +-
 .../apache/calcite/sql/fun/package-summary.html    |  166 +-
 .../org/apache/calcite/sql/fun/package-tree.html   |    3 +-
 .../org/apache/calcite/sql/package-summary.html    |   49 +-
 .../org/apache/calcite/sql/package-tree.html       |    8 +-
 .../org/apache/calcite/sql/parser/Span.html        |   20 +-
 .../calcite/sql/parser/SqlParseException.html      |    2 +-
 .../calcite/sql/parser/SqlParser.Config.html       |    2 +-
 .../sql/parser/SqlParser.ConfigBuilder.html        |    2 +-
 .../org/apache/calcite/sql/parser/SqlParser.html   |    2 +-
 .../calcite/sql/parser/SqlParserImplFactory.html   |    2 +-
 .../apache/calcite/sql/parser/SqlParserPos.html    |   30 +-
 .../sql/parser/SqlParserUtil.ParsedCollation.html  |    2 +-
 .../sql/parser/SqlParserUtil.ToTreeListItem.html   |    2 +-
 .../apache/calcite/sql/parser/SqlParserUtil.html   |   77 +-
 .../apache/calcite/sql/parser/StringAndPos.html    |    6 +-
 .../apache/calcite/sql/parser/package-summary.html |    2 +-
 .../apache/calcite/sql/parser/package-tree.html    |    2 +-
 .../calcite/sql/pretty/SqlFormatOptions.html       |    2 +-
 .../sql/pretty/SqlPrettyWriter.FrameImpl.html      |    2 +-
 .../apache/calcite/sql/pretty/SqlPrettyWriter.html |   57 +-
 .../apache/calcite/sql/pretty/package-summary.html |    2 +-
 .../apache/calcite/sql/pretty/package-tree.html    |    2 +-
 .../apache/calcite/sql/type/AbstractSqlType.html   |    8 +-
 .../org/apache/calcite/sql/type/ArraySqlType.html  |    4 +-
 .../sql/type/AssignableOperandTypeChecker.html     |    8 +-
 .../org/apache/calcite/sql/type/BasicSqlType.html  |   16 +-
 .../sql/type/ComparableOperandTypeChecker.html     |    4 +-
 .../CompositeOperandTypeChecker.Composition.html   |    2 +-
 .../sql/type/CompositeOperandTypeChecker.html      |   25 +-
 .../type/CompositeSingleOperandTypeChecker.html    |    6 +-
 .../sql/type/CursorReturnTypeInference.html        |    6 +-
 .../sql/type/ExplicitOperandTypeChecker.html       |    4 +-
 .../sql/type/ExplicitOperandTypeInference.html     |    2 +-
 .../sql/type/ExplicitReturnTypeInference.html      |    2 +-
 .../org/apache/calcite/sql/type/ExtraSqlTypes.html |    2 +-
 .../calcite/sql/type/FamilyOperandTypeChecker.html |    4 +-
 .../sql/type/ImplicitCastOperandTypeChecker.html   |    2 +-
 .../org/apache/calcite/sql/type/InferTypes.html    |    2 +-
 .../apache/calcite/sql/type/IntervalSqlType.html   |    4 +-
 .../sql/type/JavaToSqlTypeConversionRules.html     |    6 +-
 .../sql/type/LiteralOperandTypeChecker.html        |    4 +-
 .../org/apache/calcite/sql/type/MapSqlType.html    |    4 +-
 .../calcite/sql/type/MatchReturnTypeInference.html |    6 +-
 .../sql/type/MultisetOperandTypeChecker.html       |    4 +-
 .../apache/calcite/sql/type/MultisetSqlType.html   |    4 +-
 .../type/NonNullableAccessors.html}                |   67 +-
 .../org/apache/calcite/sql/type/ObjectSqlType.html |   12 +-
 .../calcite/sql/type/OperandMetadataImpl.html      |    4 +-
 .../org/apache/calcite/sql/type/OperandTypes.html  |   24 +-
 .../calcite/sql/type/OperandsTypeChecking.html     |    2 +-
 .../sql/type/OrdinalReturnTypeInference.html       |    2 +-
 .../org/apache/calcite/sql/type/ReturnTypes.html   |  100 +-
 .../calcite/sql/type/SameOperandTypeChecker.html   |    8 +-
 .../SameOperandTypeExceptLastOperandChecker.html   |    8 +-
 .../calcite/sql/type/SetopOperandTypeChecker.html  |    4 +-
 .../calcite/sql/type/SqlOperandCountRanges.html    |    2 +-
 .../calcite/sql/type/SqlOperandMetadata.html       |    7 +-
 .../type/SqlOperandTypeChecker.Consistency.html    |    2 +-
 .../calcite/sql/type/SqlOperandTypeChecker.html    |   20 +-
 .../calcite/sql/type/SqlOperandTypeInference.html  |    2 +-
 .../calcite/sql/type/SqlReturnTypeInference.html   |    6 +-
 .../sql/type/SqlReturnTypeInferenceChain.html      |    6 +-
 .../sql/type/SqlSingleOperandTypeChecker.html      |    4 +-
 .../calcite/sql/type/SqlTypeAssignmentRule.html    |    2 +-
 .../calcite/sql/type/SqlTypeCoercionRule.html      |    6 +-
 .../sql/type/SqlTypeExplicitPrecedenceList.html    |    2 +-
 .../calcite/sql/type/SqlTypeFactoryImpl.html       |    8 +-
 .../org/apache/calcite/sql/type/SqlTypeFamily.html |   10 +-
 .../calcite/sql/type/SqlTypeMappingRule.html       |    2 +-
 .../sql/type/SqlTypeMappingRules.Builder.html      |    2 +-
 .../calcite/sql/type/SqlTypeMappingRules.html      |    2 +-
 .../apache/calcite/sql/type/SqlTypeName.Limit.html |    2 +-
 .../org/apache/calcite/sql/type/SqlTypeName.html   |   20 +-
 .../apache/calcite/sql/type/SqlTypeTransform.html  |    2 +-
 .../calcite/sql/type/SqlTypeTransformCascade.html  |    6 +-
 .../apache/calcite/sql/type/SqlTypeTransforms.html |   32 +-
 .../org/apache/calcite/sql/type/SqlTypeUtil.html   |   53 +-
 .../sql/type/TableFunctionReturnTypeInference.html |    6 +-
 .../apache/calcite/sql/type/package-summary.html   |   48 +-
 .../org/apache/calcite/sql/type/package-tree.html  |    3 +-
 .../calcite/sql/util/ChainedSqlOperatorTable.html  |    6 +-
 .../org/apache/calcite/sql/util/IdPair.html        |    6 +-
 .../calcite/sql/util/ListSqlOperatorTable.html     |    6 +-
 .../sql/util/ReflectiveSqlOperatorTable.html       |    6 +-
 .../sql/util/SqlBasicVisitor.ArgHandler.html       |    6 +-
 .../sql/util/SqlBasicVisitor.ArgHandlerImpl.html   |   12 +-
 .../apache/calcite/sql/util/SqlBasicVisitor.html   |    4 +-
 .../org/apache/calcite/sql/util/SqlBuilder.html    |    2 +-
 .../apache/calcite/sql/util/SqlOperatorTables.html |    2 +-
 .../sql/util/SqlShuttle.CallCopyingArgHandler.html |   20 +-
 .../org/apache/calcite/sql/util/SqlShuttle.html    |   48 +-
 .../org/apache/calcite/sql/util/SqlString.html     |   15 +-
 .../org/apache/calcite/sql/util/SqlVisitor.html    |    2 +-
 .../apache/calcite/sql/util/package-summary.html   |    2 +-
 .../org/apache/calcite/sql/util/package-tree.html  |    2 +-
 .../calcite/sql/validate/AggregatingScope.html     |    2 +-
 .../validate/AggregatingSelectScope.Resolved.html  |    2 +-
 .../sql/validate/AggregatingSelectScope.html       |    2 +-
 .../calcite/sql/validate/AliasNamespace.html       |   64 +-
 .../calcite/sql/validate/CollectNamespace.html     |   34 +-
 .../sql/validate/CyclicDefinitionException.html    |    2 +-
 .../calcite/sql/validate/DelegatingNamespace.html  |   18 +-
 .../calcite/sql/validate/DelegatingScope.html      |   18 +-
 .../DelegatingSqlValidatorCatalogReader.html       |   25 +-
 .../sql/validate/DelegatingSqlValidatorTable.html  |   12 +-
 .../apache/calcite/sql/validate/GroupByScope.html  |    2 +-
 .../calcite/sql/validate/IdentifierNamespace.html  |   42 +-
 .../org/apache/calcite/sql/validate/JoinScope.html |   14 +-
 .../org/apache/calcite/sql/validate/ListScope.html |   14 +-
 .../sql/validate/MatchRecognizeNamespace.html      |   34 +-
 .../calcite/sql/validate/MatchRecognizeScope.html  |    2 +-
 .../apache/calcite/sql/validate/OrderByScope.html  |    6 +-
 .../org/apache/calcite/sql/validate/OverScope.html |    2 +-
 .../calcite/sql/validate/ParameterScope.html       |   18 +-
 .../calcite/sql/validate/PivotNamespace.html       |   30 +-
 .../apache/calcite/sql/validate/PivotScope.html    |    2 +-
 .../calcite/sql/validate/ProcedureNamespace.html   |   34 +-
 .../calcite/sql/validate/SelectNamespace.html      |   34 +-
 .../apache/calcite/sql/validate/SelectScope.html   |   18 +-
 .../calcite/sql/validate/SetopNamespace.html       |   34 +-
 .../sql/validate/SqlAbstractConformance.html       |   48 +-
 .../calcite/sql/validate/SqlConformance.html       |   43 +-
 .../calcite/sql/validate/SqlConformanceEnum.html   |   52 +-
 .../sql/validate/SqlDelegatingConformance.html     |   48 +-
 .../calcite/sql/validate/SqlIdentifierMoniker.html |    2 +-
 .../apache/calcite/sql/validate/SqlModality.html   |    2 +-
 .../apache/calcite/sql/validate/SqlMoniker.html    |    2 +-
 .../calcite/sql/validate/SqlMonikerImpl.html       |    6 +-
 .../calcite/sql/validate/SqlMonikerType.html       |    2 +-
 .../calcite/sql/validate/SqlMonotonicity.html      |    2 +-
 .../calcite/sql/validate/SqlNameMatcher.html       |   10 +-
 .../calcite/sql/validate/SqlNameMatchers.html      |    2 +-
 .../validate/SqlNonNullableAccessors.html}         |  166 +-
 .../apache/calcite/sql/validate/SqlQualified.html  |   14 +-
 .../calcite/sql/validate/SqlScopedShuttle.html     |   12 +-
 .../sql/validate/SqlUserDefinedAggFunction.html    |   23 +-
 .../sql/validate/SqlUserDefinedFunction.html       |   20 +-
 .../sql/validate/SqlUserDefinedTableFunction.html  |   12 +-
 .../sql/validate/SqlUserDefinedTableMacro.html     |   16 +-
 .../calcite/sql/validate/SqlValidator.Config.html  |   10 +-
 .../apache/calcite/sql/validate/SqlValidator.html  |  197 +-
 .../sql/validate/SqlValidatorCatalogReader.html    |   16 +-
 .../sql/validate/SqlValidatorException.html        |    2 +-
 .../validate/SqlValidatorImpl.DmlNamespace.html    |   26 +-
 .../SqlValidatorImpl.FunctionParamInfo.html        |    2 +-
 .../sql/validate/SqlValidatorImpl.IdInfo.html      |    2 +-
 .../sql/validate/SqlValidatorImpl.Status.html      |    2 +-
 .../calcite/sql/validate/SqlValidatorImpl.html     |  455 +-
 .../sql/validate/SqlValidatorNamespace.html        |   21 +-
 .../sql/validate/SqlValidatorScope.EmptyPath.html  |    2 +-
 .../sql/validate/SqlValidatorScope.Path.html       |    6 +-
 .../sql/validate/SqlValidatorScope.Resolve.html    |    6 +-
 .../sql/validate/SqlValidatorScope.Resolved.html   |   10 +-
 .../validate/SqlValidatorScope.ResolvedImpl.html   |   10 +-
 .../sql/validate/SqlValidatorScope.Step.html       |    2 +-
 .../calcite/sql/validate/SqlValidatorScope.html    |   24 +-
 .../calcite/sql/validate/SqlValidatorTable.html    |   24 +-
 .../sql/validate/SqlValidatorUtil.DeepCopier.html  |    8 +-
 ...ve.html => SqlValidatorUtil.FlatAggregate.html} |  127 +-
 .../sql/validate/SqlValidatorUtil.Suggester.html   |    6 +-
 .../calcite/sql/validate/SqlValidatorUtil.html     |  180 +-
 .../sql/validate/SqlValidatorWithHints.html        |   10 +-
 .../sql/validate/TableConstructorNamespace.html    |   34 +-
 .../{PivotNamespace.html => UnpivotNamespace.html} |   60 +-
 .../{PivotScope.html => UnpivotScope.html}         |   32 +-
 .../apache/calcite/sql/validate/WithNamespace.html |   34 +-
 .../validate/implicit/AbstractTypeCoercion.html    |   62 +-
 .../sql/validate/implicit/TypeCoercion.html        |   54 +-
 .../sql/validate/implicit/TypeCoercionFactory.html |    2 +-
 .../sql/validate/implicit/TypeCoercionImpl.html    |   14 +-
 .../sql/validate/implicit/TypeCoercions.html       |    2 +-
 .../sql/validate/implicit/package-summary.html     |    2 +-
 .../sql/validate/implicit/package-tree.html        |    2 +-
 .../calcite/sql/validate/package-summary.html      |   59 +-
 .../apache/calcite/sql/validate/package-tree.html  |    6 +-
 .../calcite/sql2rel/AuxiliaryConverter.Impl.html   |    2 +-
 .../apache/calcite/sql2rel/AuxiliaryConverter.html |    2 +-
 ...eFinder.html => CorrelateProjectExtractor.html} |   87 +-
 .../sql2rel/CorrelationReferenceFinder.html        |    2 +-
 .../sql2rel/DeduplicateCorrelateVariables.html     |    2 +-
 .../apache/calcite/sql2rel/InitializerContext.html |    2 +-
 .../sql2rel/InitializerExpressionFactory.html      |    6 +-
 .../sql2rel/NullInitializerExpressionFactory.html  |    6 +-
 .../calcite/sql2rel/ReflectiveConvertletTable.html |   12 +-
 ....AdjustProjectForCountAggregateRule.Config.html |    2 +-
 ...relator.AdjustProjectForCountAggregateRule.html |   56 +-
 .../calcite/sql2rel/RelDecorrelator.Config.html    |    2 +-
 .../calcite/sql2rel/RelDecorrelator.CorelMap.html  |   18 +-
 .../sql2rel/RelDecorrelator.CorelMapBuilder.html   |    2 +-
 ...veCorrelationForScalarAggregateRule.Config.html |    2 +-
 ...or.RemoveCorrelationForScalarAggregateRule.html |   56 +-
 ...moveCorrelationForScalarProjectRule.Config.html |    2 +-
 ...ator.RemoveCorrelationForScalarProjectRule.html |   56 +-
 ...orrelator.RemoveSingleAggregateRule.Config.html |    2 +-
 .../RelDecorrelator.RemoveSingleAggregateRule.html |   56 +-
 .../apache/calcite/sql2rel/RelDecorrelator.html    |  290 +-
 .../sql2rel/RelFieldTrimmer.TrimResult.html        |    2 +-
 .../apache/calcite/sql2rel/RelFieldTrimmer.html    |   14 +-
 ...lStructuredTypeFlattener.SelfFlatteningRel.html |    4 +-
 .../sql2rel/RelStructuredTypeFlattener.html        |    2 +-
 .../calcite/sql2rel/SqlNodeToRexConverter.html     |    2 +-
 .../calcite/sql2rel/SqlNodeToRexConverterImpl.html |    2 +-
 .../org/apache/calcite/sql2rel/SqlRexContext.html  |    2 +-
 .../apache/calcite/sql2rel/SqlRexConvertlet.html   |    2 +-
 .../calcite/sql2rel/SqlRexConvertletTable.html     |    6 +-
 .../sql2rel/SqlToRelConverter.AggConverter.html    |   14 +-
 .../sql2rel/SqlToRelConverter.Blackboard.html      |   70 +-
 .../calcite/sql2rel/SqlToRelConverter.Config.html  |    2 +-
 .../sql2rel/SqlToRelConverter.ConfigBuilder.html   |    2 +-
 .../apache/calcite/sql2rel/SqlToRelConverter.html  |  150 +-
 .../calcite/sql2rel/StandardConvertletTable.html   |   36 +-
 .../apache/calcite/sql2rel/SubQueryConverter.html  |    2 +-
 .../apache/calcite/sql2rel/package-summary.html    |   46 +-
 .../org/apache/calcite/sql2rel/package-tree.html   |    3 +-
 .../statistic/CachingSqlStatisticProvider.html     |    2 +-
 .../calcite/statistic/MapSqlStatisticProvider.html |    2 +-
 .../statistic/QuerySqlStatisticProvider.html       |    2 +-
 .../apache/calcite/statistic/package-summary.html  |    4 +-
 .../org/apache/calcite/statistic/package-tree.html |    2 +-
 .../org/apache/calcite/tools/FrameworkConfig.html  |   22 +-
 .../tools/Frameworks.BasePrepareAction.html        |    2 +-
 .../calcite/tools/Frameworks.ConfigBuilder.html    |    6 +-
 .../calcite/tools/Frameworks.PlannerAction.html    |    2 +-
 .../calcite/tools/Frameworks.PrepareAction.html    |   11 +-
 .../org/apache/calcite/tools/Frameworks.html       |    2 +-
 .../org/apache/calcite/tools/Hoist.Config.html     |    5 +-
 .../org/apache/calcite/tools/Hoist.Hoisted.html    |    2 +-
 .../org/apache/calcite/tools/Hoist.Variable.html   |    2 +-
 .../org/apache/calcite/tools/Hoist.html            |    2 +-
 .../calcite/tools/PigRelBuilder.GroupOption.html   |    2 +-
 .../org/apache/calcite/tools/PigRelBuilder.html    |   14 +-
 .../org/apache/calcite/tools/Planner.html          |    2 +-
 .../org/apache/calcite/tools/Program.html          |    2 +-
 .../org/apache/calcite/tools/Programs.html         |   12 +-
 .../apache/calcite/tools/RelBuilder.AggCall.html   |   76 +-
 .../apache/calcite/tools/RelBuilder.Config.html    |   48 +-
 .../calcite/tools/RelBuilder.ConfigBuilder.html    |    2 +-
 .../apache/calcite/tools/RelBuilder.GroupKey.html  |    6 +-
 .../apache/calcite/tools/RelBuilder.OverCall.html  |  487 ++
 .../org/apache/calcite/tools/RelBuilder.html       |  657 ++-
 .../apache/calcite/tools/RelBuilderFactory.html    |    6 +-
 .../calcite/tools/RelConversionException.html      |    2 +-
 .../org/apache/calcite/tools/RelRunner.html        |   37 +-
 .../org/apache/calcite/tools/RelRunners.html       |    2 +-
 .../org/apache/calcite/tools/RuleSet.html          |    2 +-
 .../org/apache/calcite/tools/RuleSets.html         |    2 +-
 .../apache/calcite/tools/ValidationException.html  |    2 +-
 .../org/apache/calcite/tools/package-summary.html  |   14 +-
 .../org/apache/calcite/tools/package-tree.html     |    3 +-
 .../calcite/util/BarfingInvocationHandler.html     |   12 +-
 .../calcite/util/Benchmark.Statistician.html       |    2 +-
 .../org/apache/calcite/util/Benchmark.html         |    2 +-
 .../org/apache/calcite/util/BitSets.html           |    2 +-
 .../org/apache/calcite/util/BitString.html         |    6 +-
 javadocAggregate/org/apache/calcite/util/Bug.html  |    2 +-
 .../org/apache/calcite/util/BuiltInMethod.html     |  380 +-
 .../calcite/util/CalciteParserException.html       |    2 +-
 .../calcite/util/CalciteValidatorException.html    |    2 +-
 .../org/apache/calcite/util/CancelFlag.html        |    2 +-
 .../org/apache/calcite/util/CastingList.html       |    2 +-
 .../org/apache/calcite/util/ChunkList.html         |    2 +-
 .../org/apache/calcite/util/Closer.html            |    2 +-
 .../apache/calcite/util/Compatible.Factory.html    |    2 +-
 .../org/apache/calcite/util/Compatible.html        |    2 +-
 .../org/apache/calcite/util/CompositeList.html     |    2 +-
 .../org/apache/calcite/util/CompositeMap.html      |   28 +-
 .../apache/calcite/util/ControlFlowException.html  |    2 +-
 .../org/apache/calcite/util/ConversionUtil.html    |    8 +-
 .../org/apache/calcite/util/DateString.html        |    9 +-
 .../apache/calcite/util/DateTimeStringUtils.html   |    2 +-
 .../calcite/util/DelegatingInvocationHandler.html  |   12 +-
 .../org/apache/calcite/util/EquivalenceSet.html    |    6 +-
 .../org/apache/calcite/util/Filterator.html        |    2 +-
 .../org/apache/calcite/util/Glossary.html          |  110 +-
 .../org/apache/calcite/util/Holder.html            |   36 +-
 .../util/ImmutableBeans.BooleanDefault.html        |    2 +-
 .../calcite/util/ImmutableBeans.EnumDefault.html   |    2 +-
 .../calcite/util/ImmutableBeans.IntDefault.html    |    2 +-
 .../calcite/util/ImmutableBeans.NullDefault.html   |    2 +-
 .../calcite/util/ImmutableBeans.Property.html      |   26 +-
 .../calcite/util/ImmutableBeans.StringDefault.html |    2 +-
 .../org/apache/calcite/util/ImmutableBeans.html    |    3 +-
 .../calcite/util/ImmutableBitSet.Builder.html      |    2 +-
 .../org/apache/calcite/util/ImmutableBitSet.html   |   65 +-
 .../org/apache/calcite/util/ImmutableIntList.html  |   44 +-
 .../util/ImmutableNullableList.Builder.html        |    2 +-
 .../apache/calcite/util/ImmutableNullableList.html |    2 +-
 .../apache/calcite/util/ImmutableNullableMap.html  |    2 +-
 .../calcite/util/ImmutableNullableSet.Builder.html |    2 +-
 .../apache/calcite/util/ImmutableNullableSet.html  |   10 +-
 .../org/apache/calcite/util/IntList.html           |    2 +-
 .../apache/calcite/util/IntegerIntervalSet.html    |    6 +-
 .../org/apache/calcite/util/JsonBuilder.html       |   30 +-
 .../org/apache/calcite/util/Litmus.html            |   18 +-
 .../org/apache/calcite/util/NameMap.html           |   10 +-
 .../org/apache/calcite/util/NameMultimap.html      |    6 +-
 .../org/apache/calcite/util/NameSet.html           |    6 +-
 .../org/apache/calcite/util/NlsString.html         |   38 +-
 .../org/apache/calcite/util/NumberUtil.html        |  144 +-
 .../org/apache/calcite/util/Optionality.html       |    2 +-
 javadocAggregate/org/apache/calcite/util/Pair.html |   69 +-
 .../calcite/util/PartiallyOrderedSet.Ordering.html |    2 +-
 .../apache/calcite/util/PartiallyOrderedSet.html   |   26 +-
 .../org/apache/calcite/util/Permutation.html       |    6 +-
 .../util/PrecedenceClimbingParser.Builder.html     |    2 +-
 .../util/PrecedenceClimbingParser.Call.html        |    7 +-
 .../calcite/util/PrecedenceClimbingParser.Op.html  |   25 +-
 .../util/PrecedenceClimbingParser.Result.html      |    2 +-
 .../util/PrecedenceClimbingParser.Special.html     |    2 +-
 .../util/PrecedenceClimbingParser.SpecialOp.html   |    7 +-
 .../util/PrecedenceClimbingParser.Token.html       |   28 +-
 .../util/PrecedenceClimbingParser.Type.html        |    2 +-
 .../calcite/util/PrecedenceClimbingParser.html     |    6 +-
 .../apache/calcite/util/RangeSets.Consumer.html    |    2 +-
 .../org/apache/calcite/util/RangeSets.Handler.html |    2 +-
 .../org/apache/calcite/util/RangeSets.html         |   28 +-
 .../calcite/util/ReflectUtil.MethodDispatcher.html |    6 +-
 .../org/apache/calcite/util/ReflectUtil.html       |   10 +-
 .../calcite/util/ReflectiveVisitDispatcher.html    |   10 +-
 .../org/apache/calcite/util/ReflectiveVisitor.html |    2 +-
 .../apache/calcite/util/RelToSqlConverterUtil.html |    2 +-
 .../calcite/util/SaffronProperties.Helper.html     |    2 +-
 .../org/apache/calcite/util/SaffronProperties.html |    2 +-
 javadocAggregate/org/apache/calcite/util/Sarg.html |  150 +-
 .../apache/calcite/util/SerializableCharset.html   |    8 +-
 .../calcite/util/SimpleNamespaceContext.html       |    6 +-
 .../org/apache/calcite/util/Source.html            |    6 +-
 .../apache/calcite/util/SourceStringReader.html    |    8 +-
 .../org/apache/calcite/util/Sources.html           |    6 +-
 .../org/apache/calcite/util/StackWriter.html       |    2 +-
 .../org/apache/calcite/util/Stacks.html            |    2 +-
 .../org/apache/calcite/util/Static.html            |    2 +-
 .../org/apache/calcite/util/Template.html          |    2 +-
 .../org/apache/calcite/util/TimeString.html        |   13 +-
 .../calcite/util/TimeWithTimeZoneString.html       |   10 +-
 .../org/apache/calcite/util/TimestampString.html   |   10 +-
 .../calcite/util/TimestampWithTimeZoneString.html  |   10 +-
 .../apache/calcite/util/TryThreadLocal.Memo.html   |    2 +-
 .../org/apache/calcite/util/TryThreadLocal.html    |    8 +-
 .../apache/calcite/util/UnmodifiableArrayList.html |    2 +-
 .../org/apache/calcite/util/Unsafe.html            |    2 +-
 .../org/apache/calcite/util/Util.FoundOne.html     |   11 +-
 .../org/apache/calcite/util/Util.OverFinder.html   |    2 +-
 javadocAggregate/org/apache/calcite/util/Util.html |  324 +-
 .../org/apache/calcite/util/XmlOutput.html         |   22 +-
 ...ributedDirectedGraph.AttributedEdgeFactory.html |    2 +-
 .../util/graph/AttributedDirectedGraph.html        |   20 +-
 .../calcite/util/graph/BreadthFirstIterator.html   |    2 +-
 .../apache/calcite/util/graph/CycleDetector.html   |    2 +-
 .../calcite/util/graph/DefaultDirectedGraph.html   |   39 +-
 .../org/apache/calcite/util/graph/DefaultEdge.html |   25 +-
 .../calcite/util/graph/DepthFirstIterator.html     |    2 +-
 .../util/graph/DirectedGraph.EdgeFactory.html      |    2 +-
 .../apache/calcite/util/graph/DirectedGraph.html   |   14 +-
 .../calcite/util/graph/Graphs.FrozenGraph.html     |    2 +-
 .../org/apache/calcite/util/graph/Graphs.html      |    2 +-
 .../util/graph/TopologicalOrderIterator.html       |    2 +-
 .../apache/calcite/util/graph/package-summary.html |    2 +-
 .../apache/calcite/util/graph/package-tree.html    |    2 +-
 .../javac/JaninoCompiler.JaninoCompilerArgs.html   |    2 +-
 .../apache/calcite/util/javac/JaninoCompiler.html  |    2 +-
 .../apache/calcite/util/javac/JavaCompiler.html    |    2 +-
 .../calcite/util/javac/JavaCompilerArgs.html       |    2 +-
 .../apache/calcite/util/javac/package-summary.html |    2 +-
 .../apache/calcite/util/javac/package-tree.html    |    2 +-
 .../util/mapping/AbstractSourceMapping.html        |    8 +-
 .../util/mapping/AbstractTargetMapping.html        |    8 +-
 .../org/apache/calcite/util/mapping/IntPair.html   |    6 +-
 .../org/apache/calcite/util/mapping/Mapping.html   |    2 +-
 .../apache/calcite/util/mapping/MappingType.html   |    4 +-
 .../util/mapping/Mappings.AbstractMapping.html     |    2 +-
 .../calcite/util/mapping/Mappings.CoreMapping.html |    2 +-
 .../mapping/Mappings.FiniteAbstractMapping.html    |    6 +-
 .../util/mapping/Mappings.FunctionMapping.html     |    2 +-
 .../util/mapping/Mappings.IdentityMapping.html     |    2 +-
 .../util/mapping/Mappings.NoElementException.html  |    2 +-
 .../mapping/Mappings.OverridingSourceMapping.html  |    2 +-
 .../mapping/Mappings.OverridingTargetMapping.html  |    2 +-
 .../util/mapping/Mappings.PartialMapping.html      |    2 +-
 .../util/mapping/Mappings.SourceMapping.html       |    2 +-
 .../util/mapping/Mappings.TargetMapping.html       |    2 +-
 .../mapping/Mappings.TooManyElementsException.html |    2 +-
 .../org/apache/calcite/util/mapping/Mappings.html  |   22 +-
 .../calcite/util/mapping/package-summary.html      |    4 +-
 .../apache/calcite/util/mapping/package-tree.html  |    2 +-
 .../org/apache/calcite/util/package-summary.html   |    6 +-
 .../org/apache/calcite/util/package-tree.html      |    2 +-
 .../apache/calcite/util/trace/CalciteLogger.html   |  198 +-
 .../calcite/util/trace/CalciteTimingTracer.html    |    2 +-
 .../apache/calcite/util/trace/CalciteTrace.html    |    6 +-
 .../apache/calcite/util/trace/package-summary.html |    2 +-
 .../apache/calcite/util/trace/package-tree.html    |    2 +-
 javadocAggregate/overview-tree.html                |   68 +-
 javadocAggregate/package-search-index.js           |    2 +-
 javadocAggregate/package-search-index.zip          |  Bin 676 -> 680 bytes
 javadocAggregate/serialized-form.html              |   20 +-
 javadocAggregate/system-properties.html            |    2 +-
 javadocAggregate/type-search-index.js              |    2 +-
 javadocAggregate/type-search-index.zip             |  Bin 17282 -> 17645 bytes
 .../2014/06/27/release-0.8.0-incubating/index.html |   11 +-
 .../2014/08/19/release-0.9.0-incubating/index.html |   11 +-
 .../2014/10/02/release-0.9.1-incubating/index.html |   11 +-
 .../2014/11/05/release-0.9.2-incubating/index.html |   11 +-
 .../2015/01/31/release-1.0.0-incubating/index.html |   11 +-
 .../2015/03/13/release-1.1.0-incubating/index.html |   11 +-
 .../2015/04/07/release-1.2.0-incubating/index.html |   11 +-
 news/2015/04/24/new-committers/index.html          |   11 +-
 .../2015/05/30/release-1.3.0-incubating/index.html |   11 +-
 news/2015/06/05/algebra-builder/index.html         |   11 +-
 .../2015/07/31/xldb-best-lightning-talk/index.html |   11 +-
 .../2015/09/02/release-1.4.0-incubating/index.html |   11 +-
 news/2015/10/22/calcite-graduates/index.html       |   11 +-
 news/2015/11/08/new-committers/index.html          |   11 +-
 news/2015/11/10/release-1.5.0/index.html           |   11 +-
 news/2016/01/22/release-1.6.0/index.html           |   11 +-
 news/2016/02/17/elser-pmc/index.html               |   11 +-
 news/2016/02/17/streaming-sql-talk/index.html      |   11 +-
 news/2016/03/22/cassandra-adapter/index.html       |   11 +-
 news/2016/03/22/release-1.7.0/index.html           |   11 +-
 news/2016/06/13/release-1.8.0/index.html           |   11 +-
 news/2016/09/22/release-1.9.0/index.html           |   11 +-
 news/2016/10/12/release-1.10.0/index.html          |   11 +-
 news/2017/01/09/release-1.11.0/index.html          |   11 +-
 news/2017/03/24/release-1.12.0/index.html          |   11 +-
 news/2017/03/31/new-avatica-repository/index.html  |   11 +-
 news/2017/06/26/release-1.13.0/index.html          |   11 +-
 news/2017/10/02/release-1.14.0/index.html          |   11 +-
 news/2017/12/11/release-1.15.0/index.html          |   11 +-
 news/2018/03/19/release-1.16.0/index.html          |   11 +-
 news/2018/07/20/release-1.17.0/index.html          |   11 +-
 news/2018/12/21/release-1.18.0/index.html          |   11 +-
 news/2019/03/25/release-1.19.0/index.html          |   11 +-
 news/2019/06/24/release-1.20.0/index.html          |   11 +-
 news/2019/09/11/release-1.21.0/index.html          |   11 +-
 news/2020/03/05/release-1.22.0/index.html          |   11 +-
 news/2020/05/23/release-1.23.0/index.html          |   11 +-
 news/2020/07/23/release-1.24.0/index.html          |   11 +-
 news/2020/08/22/release-1.25.0/index.html          |   11 +-
 news/2020/10/06/release-1.26.0/index.html          |   16 +-
 news/2021/01/11/meetup/index.html                  |   11 +-
 .../06/03/release-1.27.0}/index.html               |   52 +-
 news/index.html                                    |   73 +-
 news/releases/index.html                           |   73 +-
 2575 files changed, 32091 insertions(+), 20835 deletions(-)

diff --git a/develop/index.html b/develop/index.html
index a90b58b..5914f78 100644
--- a/develop/index.html
+++ b/develop/index.html
@@ -69,6 +69,7 @@
   <li><a href="#source-code" id="markdown-toc-source-code">Source code</a></li>
   <li><a href="#download-source-build-and-run-tests" id="markdown-toc-download-source-build-and-run-tests">Download source, build, and run tests</a></li>
   <li><a href="#contributing" id="markdown-toc-contributing">Contributing</a></li>
+  <li><a href="#null-safety" id="markdown-toc-null-safety">Null safety</a></li>
   <li><a href="#continuous-integration-testing" id="markdown-toc-continuous-integration-testing">Continuous Integration Testing</a></li>
   <li><a href="#getting-started" id="markdown-toc-getting-started">Getting started</a></li>
 </ul>
@@ -88,7 +89,14 @@ user-friendly.</p>
 <h2 id="download-source-build-and-run-tests">Download source, build, and run tests</h2>
 
 <p>Prerequisites are Git,
-and Java (JDK 8 or later, 13 preferred) on your path.</p>
+and Java (JDK 8u220 or later, 11 preferred) on your path.</p>
+
+<p>Note: early OpenJDK 1.8 versions (e.g. versions before 1.8u202) are known to have issues with
+producing bytecode for type annotations (see <a href="https://bugs.openjdk.java.net/browse/JDK-8187805">JDK-8187805</a>,
+<a href="https://bugs.openjdk.java.net/browse/JDK-8187805">JDK-8187805</a>,
+<a href="https://bugs.openjdk.java.net/browse/JDK-8210273">JDK-8210273</a>,
+<a href="https://bugs.openjdk.java.net/browse/JDK-8160928">JDK-8160928</a>,
+<a href="https://bugs.openjdk.java.net/browse/JDK-8144185">JDK-8144185</a> ), so make sure you use up to date Java.</p>
 
 <p>Create a local copy of the Git repository, <code class="highlighter-rouge">cd</code> to its root directory,
 then build using Gradle:</p>
@@ -242,6 +250,134 @@ parameter and its alternatives. You may choose to force push your changes under
 caused by your changes create an empty commit (<code class="highlighter-rouge">git commit --allow-empty</code>) and
 push it.</p>
 
+<h2 id="null-safety">Null safety</h2>
+
+<p>Apache Calcite uses the Checker Framework to avoid unexpected <code class="highlighter-rouge">NullPointerExceptions</code>.
+You might find a detailed documentation at https://checkerframework.org/</p>
+
+<p>Note: only main code is verified for now, so nullness annotation is not enforced in test code.</p>
+
+<p>To execute the Checker Framework locally please use the following command:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./gradlew -PenableCheckerframework :linq4j:classes :core:classes
+</code></pre></div></div>
+
+<p>Here’s a small introduction to null-safe programming:</p>
+
+<ul>
+  <li>By default, parameters, return values and fields are non-nullable, so refrain from using <code class="highlighter-rouge">@NonNull</code></li>
+  <li>Local variables infer nullness from the expression, so you can write <code class="highlighter-rouge">Object v = ...</code> instead of <code class="highlighter-rouge">@Nullable Object v = ...</code></li>
+  <li>
+    <p>Avoid the use of <code class="highlighter-rouge">javax.annotation.*</code> annotations. The annotations from <code class="highlighter-rouge">jsr305</code> do not support cases like <code class="highlighter-rouge">List&lt;@Nullable String&gt;</code>
+so it is better to stick with <code class="highlighter-rouge">org.checkerframework.checker.nullness.qual.Nullable</code>.
+Unfortunately, Guava (as of <code class="highlighter-rouge">29-jre</code>) has <strong>both</strong> <code class="highlighter-rouge">jsr305</code> and <code class="highlighter-rouge">checker-qual</code> dependencies at the same time,
+so you might want to configure your IDE to exclude <code class="highlighter-rouge">javax.annotation.*</code> annotations from code completion.</p>
+  </li>
+  <li>
+    <p>The Checker Framework verifies code method by method. That means, it can’t account for method execution order.
+That is why <code class="highlighter-rouge">@Nullable</code> fields should be verified in each method where they are used.
+If you split logic into multiple methods, you might want verify null once, then pass it via non-nullable parameters.
+For fields that start as null and become non-null later, use <code class="highlighter-rouge">@MonotonicNonNull</code>.
+For fields that have already been checked against null, use <code class="highlighter-rouge">@RequiresNonNull</code>.</p>
+  </li>
+  <li>
+    <p>If you are absolutely sure the value is non-null, you might use <code class="highlighter-rouge">org.apache.calcite.linq4j.Nullness.castNonNull(T)</code>.
+The intention behind <code class="highlighter-rouge">castNonNull</code> is like <code class="highlighter-rouge">trustMeThisIsNeverNullHoweverTheVerifierCantTellYet(...)</code></p>
+  </li>
+  <li>
+    <p>If the expression is nullable, however, you need to pass it to a non-null method, use <code class="highlighter-rouge">Objects.requireNonNull</code>.
+It allows to have a better error message that includes context information.</p>
+  </li>
+  <li>
+    <p>The Checker Framework comes with an annotated JDK, however, there might be invalid annotations.
+In that cases, stub files can be placed to <code class="highlighter-rouge">/src/main/config/checkerframework</code> to override the annotations.
+It is important the files have <code class="highlighter-rouge">.astub</code> extension otherwise they will be ignored.</p>
+  </li>
+  <li>
+    <p>In array types, a type annotation appears immediately before the type component (either the array or the array component) it refers to.
+This is explained in the <a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.7.4">Java Language Specification</a>.</p>
+
+    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  String nonNullable;
+  @Nullable String nullable;
+
+  java.lang.@Nullable String fullyQualifiedNullable;
+
+  // array and elements: non-nullable
+  String[] x;
+
+  // array: nullable, elements: non-nullable
+  String @Nullable [] x;
+
+  // array: non-nullable, elements: nullable
+  @Nullable String[] x;
+
+  // array: nullable, elements: nullable
+  @Nullable String @Nullable [] x;
+
+  // arrays: nullable, elements: nullable
+  // x: non-nullable
+  // x[0]: non-nullable
+  // x[0][0]: nullable
+  @Nullable String[][] x;
+
+  // x: nullable
+  // x[0]: non-nullable
+  // x[0][0]: non-nullable
+  String @Nullable [][] x;
+
+  // x: non-nullable
+  // x[0]: nullable
+  // x[0][0]: non-nullable
+  String[] @Nullable [] x;
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>By default, generic parameters can be both nullable and non-nullable:</p>
+
+    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  class Holder&lt;T&gt; { // can be both nullable
+      final T value;
+      T get() {
+          return value; // works
+      }
+      int hashCode() {
+          return value.hashCode(); // error here since T can be nullable
+      }
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>However, default bounds are non-nullable, so if you write <code class="highlighter-rouge">&lt;T extends Number&gt;</code>,
+then it is the same as <code class="highlighter-rouge">&lt;T extends @NonNull Number&gt;</code>.</p>
+
+    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  class Holder&lt;T extends Number&gt; { // note how this T never permits nulls
+      final T value;
+      Holder(T value) {
+          this.value = value;
+      }
+      static &lt;T&gt; Holder&lt;T&gt; empty() {
+          return new Holder&lt;&gt;(null); // fails since T must be non-nullable
+      }
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>If you need “either nullable or non-nullable <code class="highlighter-rouge">Number</code>”, then use <code class="highlighter-rouge">&lt;T extends @Nullable Number&gt;</code>,</p>
+  </li>
+  <li>
+    <p>If you need to ensure the type is <strong>always</strong> nullable, then use <code class="highlighter-rouge">&lt;@Nullable T&gt;</code> as follows:</p>
+
+    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  class Holder&lt;@Nullable T&gt; { // note how this requires T to always be nullable
+      protected T get() { // Default implementation.
+          // Default implementation returns null, so it requires that T must always be nullable
+          return null;
+      }
+      static void useHolder() {
+          // T is declared as &lt;@Nullable T&gt;, so Holder&lt;String&gt; would not compile
+          Holder&lt;@Nullable String&gt; holder = ...;
+          String value = holder.get();
+      }
+</code></pre></div>    </div>
+  </li>
+</ul>
+
 <h2 id="continuous-integration-testing">Continuous Integration Testing</h2>
 
 <p>Calcite has a collection of Jenkins jobs on ASF-hosted infrastructure.
diff --git a/docs/adapter.html b/docs/adapter.html
index a5a0519..50ff55c 100644
--- a/docs/adapter.html
+++ b/docs/adapter.html
@@ -94,6 +94,7 @@ presenting the data as tables within a schema.</p>
 (<a href="/javadocAggregate/org/apache/calcite/adapter/elasticsearch/package-summary.html">calcite-elasticsearch</a>)</li>
   <li><a href="file_adapter.html">File adapter</a> (<a href="/javadocAggregate/org/apache/calcite/adapter/file/package-summary.html">calcite-file</a>)</li>
   <li><a href="geode_adapter.html">Geode adapter</a> (<a href="/javadocAggregate/org/apache/calcite/adapter/geode/package-summary.html">calcite-geode</a>)</li>
+  <li><a href="innodb_adapter.html">InnoDB adapter</a> (<a href="/javadocAggregate/org/apache/calcite/adapter/innodb/package-summary.html">calcite-innodb</a>)</li>
   <li>JDBC adapter (part of <a href="/javadocAggregate/org/apache/calcite/adapter/jdbc/package-summary.html">calcite-core</a>)</li>
   <li>MongoDB adapter (<a href="/javadocAggregate/org/apache/calcite/adapter/mongodb/package-summary.html">calcite-mongodb</a>)</li>
   <li><a href="os_adapter.html">OS adapter</a> (<a href="/javadocAggregate/org/apache/calcite/adapter/os/package-summary.html">calcite-os</a>)</li>
@@ -379,7 +380,7 @@ They are straightforward to write (you just write a Java class and register it
 in your schema) but do not offer much flexibility in the number and type of
 arguments, resolving overloaded functions, or deriving the return type.</p>
 
-<p>It you want that flexibility, you probably need to write you a
+<p>If you want that flexibility, you probably need to write a
 <em>user-defined operator</em>
 (see <a href="/javadocAggregate/org/apache/calcite/sql/SqlOperator.html"><code>interface SqlOperator</code></a>).</p>
 
@@ -419,7 +420,7 @@ stage in the life-cycle of an aggregate:</p>
   <span class="k">return</span> <span class="k">new</span> <span class="nf">Accumulator</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">sum</span> <span class="o">+</span> <span class="n">a2</span><span class="o">.</span><span class="na">sum</span><span class="o">);</span>
 <span class="o">}</span>
 <span class="kt">int</span> <span class="nf">result</span><span class="o">(</span><span class="n">Accumulator</span> <span class="n">a</span><span class="o">)</span> <span class="o">{</span>
-  <span class="k">return</span> <span class="k">new</span> <span class="nf">Accumulator</span><span class="o">(</span><span class="n">a</span><span class="o">.</span><span class="na">sum</span> <span class="o">+</span> <span class="n">x</span><span class="o">);</span>
+  <span class="k">return</span> <span class="n">a</span><span class="o">.</span><span class="na">sum</span><span class="o">;</span>
 <span class="o">}</span></code></pre></figure>
 
 <p>Here is the sequence of calls to compute the sum of two rows with column values 4 and 7:</p>
diff --git a/docs/algebra.html b/docs/algebra.html
index 7a22fa6..955e3d4 100644
--- a/docs/algebra.html
+++ b/docs/algebra.html
@@ -410,6 +410,10 @@ return the <code class="highlighter-rouge">RelBuilder</code>.</p>
       <td style="text-align: left">Adds a pivot operation, implemented by generating an <a href="/javadocAggregate/org/apache/calcite/rel/core/Aggregate.html">Aggregate</a> with a column for each combination of measures and values</td>
     </tr>
     <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">unpivot(includeNulls, measureNames, axisNames, axisMap)</code></td>
+      <td style="text-align: left">Adds an unpivot operation, implemented by generating a <a href="/javadocAggregate/org/apache/calcite/rel/core/Join.html">Join</a> to a <a href="/javadocAggregate/org/apache/calcite/rel/core/Values.html">Values</a> that converts each row to several rows</td>
+    </tr>
+    <tr>
       <td style="text-align: left"><code class="highlighter-rouge">sort(fieldOrdinal...)</code><br /><code class="highlighter-rouge">sort(expr...)</code><br /><code class="highlighter-rouge">sort(exprList)</code></td>
       <td style="text-align: left">Creates a <a href="/javadocAggregate/org/apache/calcite/rel/core/Sort.html">Sort</a>.<br /><br />In the first form, field ordinals are 0-based, and a negative ordinal indicates descending; for example, -2 means field 1 descending.<br /><br />In the other forms, you can wrap expressions in <code class="highlighter-rouge">as</code>, <code class="highlighter-rouge">nullsFirst</code> or <code class="highlighter-rouge">nullsLast</code>.</td>
     </tr>
@@ -823,6 +827,90 @@ added to the stack.</p>
       <td style="text-align: left"><code class="highlighter-rouge">sort(expr...)</code><br /><code class="highlighter-rouge">sort(exprList)</code></td>
       <td style="text-align: left">Sorts rows before aggregating (see SQL <code class="highlighter-rouge">WITHIN GROUP</code>)</td>
     </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">unique(expr...)</code><br /><code class="highlighter-rouge">unique(exprList)</code></td>
+      <td style="text-align: left">Makes rows unique before aggregating (see SQL <code class="highlighter-rouge">WITHIN DISTINCT</code>)</td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">over()</code></td>
+      <td style="text-align: left">Converts this <code class="highlighter-rouge">AggCall</code> into a windowed aggregate (see <code class="highlighter-rouge">OverCall</code> below)</td>
+    </tr>
+  </tbody>
+</table>
+
+<h4 id="windowed-aggregate-call-methods">Windowed aggregate call methods</h4>
+
+<p>To create an
+<a href="/javadocAggregate/org/apache/calcite/tools/RelBuilder.OverCall.html">RelBuilder.OverCall</a>,
+which represents a call to a windowed aggregate function, create an aggregate
+call and then call its <code class="highlighter-rouge">over()</code> method, for instance <code class="highlighter-rouge">count().over()</code>.</p>
+
+<p>To further modify the <code class="highlighter-rouge">OverCall</code>, call its methods:</p>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">Method</th>
+      <th style="text-align: left">Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rangeUnbounded()</code></td>
+      <td style="text-align: left">Creates an unbounded range-based window, <code class="highlighter-rouge">RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rangeFrom(lower)</code></td>
+      <td style="text-align: left">Creates a range-based window bounded below, <code class="highlighter-rouge">RANGE BETWEEN lower AND CURRENT ROW</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rangeTo(upper)</code></td>
+      <td style="text-align: left">Creates a range-based window bounded above, <code class="highlighter-rouge">RANGE BETWEEN CURRENT ROW AND upper</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rangeBetween(lower, upper)</code></td>
+      <td style="text-align: left">Creates a range-based window, <code class="highlighter-rouge">RANGE BETWEEN lower AND upper</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rowsUnbounded()</code></td>
+      <td style="text-align: left">Creates an unbounded row-based window, <code class="highlighter-rouge">ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rowsFrom(lower)</code></td>
+      <td style="text-align: left">Creates a row-based window bounded below, <code class="highlighter-rouge">ROWS BETWEEN lower AND CURRENT ROW</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rowsTo(upper)</code></td>
+      <td style="text-align: left">Creates a row-based window bounded above, <code class="highlighter-rouge">ROWS BETWEEN CURRENT ROW AND upper</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">rowsBetween(lower, upper)</code></td>
+      <td style="text-align: left">Creates a rows-based window, <code class="highlighter-rouge">ROWS BETWEEN lower AND upper</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">partitionBy(expr...)</code><br /><code class="highlighter-rouge">partitionBy(exprList)</code></td>
+      <td style="text-align: left">Partitions the window on the given expressions (see SQL <code class="highlighter-rouge">PARTITION BY</code>)</td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">orderBy(expr...)</code><br /><code class="highlighter-rouge">sort(exprList)</code></td>
+      <td style="text-align: left">Sorts the rows in the window (see SQL <code class="highlighter-rouge">ORDER BY</code>)</td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">allowPartial(b)</code></td>
+      <td style="text-align: left">Sets whether to allow partial width windows; default true</td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">nullWhenCountZero(b)</code></td>
+      <td style="text-align: left">Sets whether whether the aggregate function should evaluate to null if no rows are in the window; default false</td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">as(alias)</code></td>
+      <td style="text-align: left">Assigns a column alias (see SQL <code class="highlighter-rouge">AS</code>) and converts this <code class="highlighter-rouge">OverCall</code> to a <code class="highlighter-rouge">RexNode</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left"><code class="highlighter-rouge">toRex()</code></td>
+      <td style="text-align: left">Converts this <code class="highlighter-rouge">OverCall</code> to a <code class="highlighter-rouge">RexNode</code></td>
+    </tr>
   </tbody>
 </table>
 
diff --git a/docs/file_adapter.html b/docs/file_adapter.html
index e5a3fd5..ee9b209 100644
--- a/docs/file_adapter.html
+++ b/docs/file_adapter.html
@@ -133,11 +133,11 @@ as follows.</p>
         </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"EMPS"</span><span class="p">,</span><span class="w">
         </span><span class="s2">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"file:file/src/test/resources/sales/EMPS.html"</span><span class="w">
       </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w">
-        </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTS"</span><span class="w">
+        </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEPTS"</span><span class="p">,</span><span class="w">
         </span><span class="s2">"url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"file:file/src/test/resources/sales/DEPTS.html"</span><span class="w">
       </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
     </span><span class="p">}</span><span class="w">
-  </span><span class="p">]</span><span class="w">
+  </span><span class="p">}</span><span class="w"> </span><span class="p">]</span><span class="w">
 </span><span class="p">}</span></code></pre></figure>
 
 <p>Schemas are defined as a list of tables, each containing minimally a
diff --git a/docs/geode_adapter.html b/docs/geode_adapter.html
index dbea1fe..e928984 100644
--- a/docs/geode_adapter.html
+++ b/docs/geode_adapter.html
@@ -119,7 +119,7 @@ in Geode.</p>
 </span><span class="p">}</span></code></pre></figure>
 
 <p>This adapter is targeted for Geode 1.3.x. The <code class="highlighter-rouge">regions</code> field allows to list (comma separated)
-all Geode regions to be appear as relational tables.</p>
+all Geode regions to appear as relational tables.</p>
 
 <p>Assuming this file is stored as <code class="highlighter-rouge">model.json</code>, you can connect to
 Geode via <a href="https://github.com/julianhyde/sqlline"><code class="highlighter-rouge">sqlline</code></a> as
@@ -179,7 +179,7 @@ For example the following JOIN query on the same Bookshop dataset</p>
 <span class="o">|</span> <span class="mi">123</span>        <span class="o">|</span> <span class="n">Daisy</span> <span class="n">Mae</span> <span class="n">West</span> <span class="o">|</span> <span class="mi">34</span><span class="p">.</span><span class="mi">99</span>      <span class="o">|</span>
 <span class="o">+</span><span class="c1">------------+----------------+------------+</span></code></pre></figure>
 
-<p>Will result into two separate OQL queries:</p>
+<p>Will result in two separate OQL queries:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span>  <span class="n">itemNumber</span> <span class="k">AS</span> <span class="n">itemNumber</span><span class="p">,</span> <span class="n">retailCost</span> <span class="k">AS</span> <span class="n">retailCost</span><span class="p">,</span> <span class="n">author</span> <span class="k">AS</span> <span class="n">author</span>
 <span class="k">FROM</span> <span class="o">/</span><span class="n">BookMaster</span>
diff --git a/docs/history.html b/docs/history.html
index 12e1148..d44b82c 100644
--- a/docs/history.html
+++ b/docs/history.html
@@ -85,6 +85,423 @@
 <a href="https://github.com/apache/calcite/releases">github</a>.
 Downloads are available on the
 <a href="/downloads/">downloads page</a>.</p>
+<h2 id="v1-27-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.27.0">1.27.0</a> / 2021-06-03</h2>
+<p>This release comes eight months after <a href="#v1-26-0">1.26.0</a>. It includes more than 150 resolved
+issues, comprising a few new features, three minor breaking changes, many bug-fixes and small
+improvements, as well as code quality enhancements and better test coverage.</p>
+
+<p>Among others, it is worth highlighting the following:</p>
+
+<ul>
+  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4034">InnoDB adapter</a></li>
+  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4446">Three-valued logic for SEARCH operator</a></li>
+  <li><a href="https://issues.apache.org/jira/browse/CALCITE-3221">MergeUnion operator in Enumerable convention</a></li>
+  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4260">Explain plan with DOT format</a></li>
+  <li><a href="https://issues.apache.org/jira/browse/CALCITE-4314">ErrorProne code quality checks</a></li>
+</ul>
+
+<p>Compatibility: This release is tested on Linux, macOS, Microsoft Windows;
+using JDK/OpenJDK versions 8 to 15;
+Guava versions 19.0 to 29.0-jre;
+other software versions as specified in gradle.properties.</p>
+
+<h4 id="breaking-changes">Breaking Changes</h4>
+<ul>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4521">CALCITE-4251</a>]
+Get the origin column, even if it is derived</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4570">CALCITE-4570</a>]
+Always validate preconditions in Filter/Correlate/Snapshot expressions when
+assertions are enabled</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4427">CALCITE-4427</a>]
+Make <code class="highlighter-rouge">SUBSTRING</code> operator comply with ISO standard SQL</li>
+</ul>
+
+<h4 id="new-features">New features</h4>
+<ul>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4564">CALCITE-4564</a>]
+Initialization context for non-static user-defined functions (UDFs)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4477">CALCITE-4477</a>]
+In <code class="highlighter-rouge">Interpreter</code>, support table-valued functions</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4418">CALCITE-4418</a>]
+Allow Interpreter to read from JDBC input</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3574">CALCITE-3574</a>]
+Add <code class="highlighter-rouge">RLIKE</code> operator (similar to <code class="highlighter-rouge">LIKE</code>, but Hive- and Spark-specific)
+(Shradha Ambekar)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4483">CALCITE-4483</a>]
+<code class="highlighter-rouge">WITHIN DISTINCT</code> clause for aggregate functions (experimental)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3221">CALCITE-3221</a>]
+Add <code class="highlighter-rouge">MergeUnion</code> operator in <code class="highlighter-rouge">Enumerable</code> convention</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4349">CALCITE-4349</a>]
+<code class="highlighter-rouge">GROUP_CONCAT</code> aggregate function (MySQL’s equivalent of <code class="highlighter-rouge">LISTAGG</code>)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4443">CALCITE-4443</a>]
+Add <code class="highlighter-rouge">ILIKE</code> operator (as <code class="highlighter-rouge">LIKE</code>, but case-insensitive and PostgreSQL-specific)
+(Ondřej Štumpf)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4456">CALCITE-4456</a>]
+Allows all value expressions in <code class="highlighter-rouge">ROW</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4433">CALCITE-4433</a>]
+Add <code class="highlighter-rouge">UNPIVOT</code> operator to SQL</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4408">CALCITE-4408</a>]
+Implement Oracle <code class="highlighter-rouge">SUBSTR</code> function (James Starr)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4374">CALCITE-4374</a>]
+Support materialized view recognition when query distinct aggregate on target
+<code class="highlighter-rouge">GROUP BY</code> columns (xzh)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4369">CALCITE-4369</a>]
+Support <code class="highlighter-rouge">COUNTIF</code> aggregate function for BigQuery (Aryeh Hillman)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4354">CALCITE-4354</a>]
+Allow <code class="highlighter-rouge">ITEM</code> operator on <code class="highlighter-rouge">ROW/STRUCT</code> data types (Alessandro Solimando)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4335">CALCITE-4335</a>]
+<code class="highlighter-rouge">ARRAY_AGG</code>, <code class="highlighter-rouge">ARRAY_CONCAT_AGG</code>, <code class="highlighter-rouge">STRING_AGG</code> aggregate functions for BigQuery</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2935">CALCITE-2935</a>]
+Support <code class="highlighter-rouge">BOOL_AND</code>, <code class="highlighter-rouge">BOOL_OR</code>, <code class="highlighter-rouge">LOGICAL_AND</code>, <code class="highlighter-rouge">LOGICAL_OR</code> aggregate functions
+(ShuMingLi)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3731">CALCITE-3731</a>]
+Add <code class="highlighter-rouge">IF</code> function for BigQuery, Hive and Spark dialects (Vaibhav Jain)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4260">CALCITE-4260</a>]
+Support plan explain with <code class="highlighter-rouge">DOT</code> format (Liya Fan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4297">CALCITE-4297</a>]
+Allow BigQuery to parse and validate niladic functions (Mr. Swett)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4034">CALCITE-4034</a>]
+<code class="highlighter-rouge">InnoDB</code> adapter (neoremind)</li>
+</ul>
+
+<h4 id="bug-fixes-api-changes-and-minor-enhancements">Bug fixes, API changes and minor enhancements</h4>
+<ul>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4497">CALCITE-4497</a>]
+In <code class="highlighter-rouge">RelBuilder</code>, support windowed aggregate functions (OVER)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4620">CALCITE-4620</a>] 
+Join on <code class="highlighter-rouge">CASE</code> causes <code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">RelToSqlConverter</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4446">CALCITE-4446</a>]
+Implement three-valued logic for SEARCH operator</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4621">CALCITE-4621</a>]
+<code class="highlighter-rouge">SemiJoinRule</code> throws <code class="highlighter-rouge">AssertionError</code> on <code class="highlighter-rouge">ANTI</code> join</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4610">CALCITE-4610</a>]
+Join on range causes <code class="highlighter-rouge">AssertionError</code> in <code class="highlighter-rouge">RelToSqlConverter</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4609">CALCITE-4609</a>]
+<code class="highlighter-rouge">AggregateRemoveRule</code> throws while handling <code class="highlighter-rouge">AVG</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4603">CALCITE-4603</a>]
+Least restrictive type considers only the last element in collections of collections</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4548">CALCITE-4548</a>]
+<code class="highlighter-rouge">SqlToRelConverter#convertExpression</code> cannot convert <code class="highlighter-rouge">SqlNode</code> with sub query (jibiyr)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2317">CALCITE-2317</a>]
+Support JDBC <code class="highlighter-rouge">DatabaseMetaData#getFunctions</code> (Malte Bellmann)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4594">CALCITE-4594</a>]
+Interpreter returns wrong result when <code class="highlighter-rouge">VALUES</code> has zero fields</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4510">CALCITE-4510</a>]
+<code class="highlighter-rouge">RexLiteral</code> can produce wrong digest for some user defined types</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4560">CALCITE-4560</a>]
+Wrong plan when decorrelating <code class="highlighter-rouge">EXISTS</code> subquery with <code class="highlighter-rouge">COALESCE</code> in the predicate</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4574">CALCITE-4574</a>]
+Wrong/Invalid plans when using <code class="highlighter-rouge">RelBuilder#join</code> with correlations</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4591">CALCITE-4591</a>]
+<code class="highlighter-rouge">RelRunner</code> should throw SQLException if prepare fails</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4585">CALCITE-4585</a>]
+Improve error message from <code class="highlighter-rouge">RelRunner</code> (NobiGo)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4586">CALCITE-4586</a>]
+In piglet, allow creating a <code class="highlighter-rouge">PigRelBuilder</code> with custom <code class="highlighter-rouge">config.simplify()</code>
+(Jiatao Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4583">CALCITE-4583</a>]
+Control simplification in <code class="highlighter-rouge">RelBuilder#filter</code> with <code class="highlighter-rouge">config.simplify()</code> (Jiatao
+Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4571">CALCITE-4571</a>]
+In piglet, a Pig Latin script with multiple <code class="highlighter-rouge">STORE</code> commands causes the merging
+of multiple SQL statements (Mahesh Kumar Behera)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4569">CALCITE-4569</a>]
+In piglet, allow creating a <code class="highlighter-rouge">PigConverter</code> with custom properties (Mahesh Kumar
+Behera)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4572">CALCITE-4572</a>]
+Piglet fails if Pig Latin script contains <code class="highlighter-rouge">RANK</code> or <code class="highlighter-rouge">FILTER</code> operators (Mahesh
+Kumar Behera)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4579">CALCITE-4579</a>]
+Piglet throws <code class="highlighter-rouge">ClassCastException</code> if Pig Latin script contains <code class="highlighter-rouge">FLATTEN</code> or
+<code class="highlighter-rouge">STRSPLIT</code> operators (Mahesh Kumar Behera)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4515">CALCITE-4515</a>]
+Do not generate the new join tree from commute/associate rules if there are
+“always TRUE” conditions (Vladimir Ozerov)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4535">CALCITE-4535</a>]
+<code class="highlighter-rouge">ServerDdlExecutor</code> cannot execute <code class="highlighter-rouge">DROP</code> commands with qualified object names
+(Vladimir Ozerov)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4511">CALCITE-4511</a>]
+Distinct row count and population size for constant columns should be 1</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4562">CALCITE-4562</a>]
+Improve simplification of “x IS TRUE” and “x LIKE ‘%’”</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4556">CALCITE-4556</a>]
+<code class="highlighter-rouge">CalciteMetaImpl#createEmptyResultSet</code> should not pass class to
+<code class="highlighter-rouge">CursorFactory#deduce</code> (Alessandro Solimando)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4522">CALCITE-4522</a>]
+CPU cost of <code class="highlighter-rouge">Sort</code> should be lower if sort keys are empty (huangqixiang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4552">CALCITE-4552</a>]
+<code class="highlighter-rouge">Interpreter</code> does not close resources held by its nodes on close</li>
+  <li>Add method RelJsonReader.readType</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4524">CALCITE-4524</a>]
+Make some fields non-nullable (<code class="highlighter-rouge">SqlSelect.selectList</code>,
+<code class="highlighter-rouge">DataContext.getTypeFactory</code>)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4533">CALCITE-4533</a>]
+Incorrect semantics of <code class="highlighter-rouge">REPLACE</code> and <code class="highlighter-rouge">IF NOT EXISTS</code> keywords in
+<code class="highlighter-rouge">CREATE TABLE/SCHEMA</code> commands (Vladimir Ozerov)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4342">CALCITE-4342</a>]
+More aggregate functions should be marked as splittable and ignore distinct
+optionality (Liya Fan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4526">CALCITE-4526</a>]
+<code class="highlighter-rouge">SqlSnapshot#unparse</code> loses the <code class="highlighter-rouge">AS</code> keyword when the table has alias (jibiyr)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4276">CALCITE-4276</a>]
+<code class="highlighter-rouge">MaterializedViewOnlyAggregateRule</code> performs invalid rewrite on query that
+contains join and time-rollup function (<code class="highlighter-rouge">FLOOR</code>) (Justin Swett)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2000">CALCITE-2000</a>]
+<code class="highlighter-rouge">UNNEST</code> a collection that has a field with nested data generates an <code class="highlighter-rouge">Exception</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4514">CALCITE-4514</a>]
+When merging <code class="highlighter-rouge">RelSets</code>, fine-tune which set is merged into which, for efficiency
+(Botong Huang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4437">CALCITE-4437</a>]
+<code class="highlighter-rouge">Sort</code> should be decorrelated even though it has fetch or limit when it
+is not inside a <code class="highlighter-rouge">Correlate</code> (Thomas Rebele)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4265">CALCITE-4265</a>]
+Improve error message when <code class="highlighter-rouge">CAST</code> to unknown type (Louis Kuang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4494">CALCITE-4494</a>]
+Improve performance of checking <code class="highlighter-rouge">RelNode</code> presence in <code class="highlighter-rouge">RelSubset</code> (Igor Lozynskyi)</li>
+  <li>In <code class="highlighter-rouge">RelBuilder</code>, remove not-null arguments to <code class="highlighter-rouge">COUNT</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
+<code class="highlighter-rouge">RelBuilder</code> throws <code class="highlighter-rouge">NullPointerException</code> while implementing <code class="highlighter-rouge">GROUP_ID()</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4491">CALCITE-4491</a>]
+Aggregation of window function produces invalid SQL for PostgreSQL (Dominik
+Labuda)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4426">CALCITE-4426</a>]
+Short-circuit evaluating when comparing two <code class="highlighter-rouge">RelTraitSets</code> (Jiatao Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4482">CALCITE-4482</a>]
+Extract the default <code class="highlighter-rouge">SqlWriterConfig</code> in <code class="highlighter-rouge">SqlPrettyWriter</code>, reduce the overhead of
+<code class="highlighter-rouge">ImmutableBeans#create</code> (Jiatao Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4461">CALCITE-4461</a>]
+Do not use <code class="highlighter-rouge">Logical</code> nodes inside <code class="highlighter-rouge">Enumerable</code> rules (Vladimir Ozerov)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4479">CALCITE-4479</a>]
+<code class="highlighter-rouge">vFloat in (1.0, 2.0)</code> throws <code class="highlighter-rouge">UnsupportedOperationException</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4474">CALCITE-4474</a>]
+<code class="highlighter-rouge">SqlSimpleParser</code> inner Tokenizer should not recognize the sql of TokenType.ID
+ or some keywords in some case (wangjie)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4431">CALCITE-4431</a>]
+Use <code class="highlighter-rouge">requireNonNull(var, "var")</code> instead of <code class="highlighter-rouge">requireNonNull(var)</code> for better error
+messages</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4466">CALCITE-4466</a>]
+Do not invoke <code class="highlighter-rouge">RelTraitDef#convert</code> when the source trait satisfies the target
+trait (Vladimir Ozerov)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4463">CALCITE-4463</a>]
+JDBC adapter for Spark generates incorrect <code class="highlighter-rouge">ORDER BY</code> syntax (Yanjing Wang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4453">CALCITE-4453</a>]
+<code class="highlighter-rouge">RexExecutorImpl#compile</code> should use <code class="highlighter-rouge">RexBuilder</code>’s type factory if possible</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4450">CALCITE-4450</a>]
+ElasticSearch query with <code class="highlighter-rouge">VARCHAR</code> literal projection fails with
+<code class="highlighter-rouge">JsonParseException</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4449">CALCITE-4449</a>]
+Generate nicer SQL for Sarg <code class="highlighter-rouge">x IS NULL OR x NOT IN (1, 2)</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4434">CALCITE-4434</a>]
+Cannot implement <code class="highlighter-rouge">CASE row WHEN row</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4425">CALCITE-4425</a>]
+Class <code class="highlighter-rouge">DefaultEdge</code> lacks a proper <code class="highlighter-rouge">toString</code> implementation (Liya Fan)</li>
+  <li>Change return type of <code class="highlighter-rouge">RelBuilder#literal</code> from <code class="highlighter-rouge">RexNode</code> to <code class="highlighter-rouge">RexLiteral</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4435">CALCITE-4435</a>]
+Incorrect logic for validating <code class="highlighter-rouge">RexFieldAccess</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4436">CALCITE-4436</a>]
+Use the fields order from the struct type for <code class="highlighter-rouge">ITEM(STRUCT, INDEX)</code> access
+(Alessandro Solimando)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4429">CALCITE-4429</a>]
+<code class="highlighter-rouge">RelOptUtil#createCastRel</code> should throw if source and target row types have
+different number of fields</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4419">CALCITE-4419</a>]
+POSIX regex operators cannot be used within <code class="highlighter-rouge">RelBuilder</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4411">CALCITE-4411</a>]
+<code class="highlighter-rouge">RelNode</code> to SQL loses <code class="highlighter-rouge">DISTINCT</code> on window aggregation (Jiatao Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4284">CALCITE-4284</a>]
+<code class="highlighter-rouge">ImmutableBeans</code>: make reference properties non-nullable by default</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
+Add nullability annotations</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
+Add package-level NonNull annotations to calcite packages</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4214">CALCITE-4214</a>]
+Make <code class="highlighter-rouge">RelDataType#getSqlTypeName</code> non-nullable</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4251">CALCITE-4251</a>]
+<code class="highlighter-rouge">NPE</code> in <code class="highlighter-rouge">LoptMultiJoin</code> when <code class="highlighter-rouge">mq#getColumnOrigin(left, i)</code> returns <code class="highlighter-rouge">null</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4415">CALCITE-4415</a>]
+<code class="highlighter-rouge">SqlStdOperatorTable.NOT_LIKE</code> has a wrong implementor</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4317">CALCITE-4317</a>]
+<code class="highlighter-rouge">RelFieldTrimmer</code> after trimming all the fields in an aggregate should not
+return a zero field Aggregate (Rafay)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4414">CALCITE-4414</a>]
+<code class="highlighter-rouge">RelMdSelectivity#getSelectivity</code> for <code class="highlighter-rouge">Calc</code> propagates predicate with wrong
+references</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4409">CALCITE-4409</a>]
+Improve exception when <code class="highlighter-rouge">RelBuilder</code> tries to create a field on a non-struct
+expression</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4393">CALCITE-4393</a>]
+<code class="highlighter-rouge">ExceptionInInitializerError</code> due to <code class="highlighter-rouge">NPE</code> in <code class="highlighter-rouge">SqlCallBinding</code> caused by circular
+dependency</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4251">CALCITE-4251</a>]
+Support <code class="highlighter-rouge">Calc</code> and <code class="highlighter-rouge">SetOp</code> operator in <code class="highlighter-rouge">RelMdAllPredicates</code> (Xu Zhaohui)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4402">CALCITE-4402</a>]
+<code class="highlighter-rouge">SqlCall#equalsDeep</code> does not take into account the function quantifier (Huang
+Qixiang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4251">CALCITE-4251</a>]
+Get the origin column, even if it is derived (xzh)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4406">CALCITE-4406</a>]
+<code class="highlighter-rouge">SqlTableRef</code> operator should create a <code class="highlighter-rouge">SqlTableRef</code> as the call</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4277">CALCITE-4277</a>]
+When <code class="highlighter-rouge">RelNode</code> has been removed from its subset, skip the origin rule match (Jiatao
+Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4392">CALCITE-4392</a>]
+The operation of checking types equal ignoring null can be more efficient</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4383">CALCITE-4383</a>]
+In <code class="highlighter-rouge">RelBuilder</code>, optimize <code class="highlighter-rouge">VALUES ... UNION ALL ... VALUES</code> to a single <code class="highlighter-rouge">VALUES</code>
+with multiple rows</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4394">CALCITE-4394</a>]
+When generating code for a function call, take the inferred types of the
+operands into account</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4389">CALCITE-4389</a>]
+Calls to <code class="highlighter-rouge">ROW</code> and implicit row constructor sometimes print too many spaces</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4380">CALCITE-4380</a>]
+Make class <code class="highlighter-rouge">SqlNodeList</code> implement <code class="highlighter-rouge">List&lt;SqlNode&gt;</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4390">CALCITE-4390</a>]
+<code class="highlighter-rouge">SqlMatchRecognize</code> returns wrong operand list (Dawid Wysakowicz)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4364">CALCITE-4364</a>]
+<code class="highlighter-rouge">a IN (1, 2) AND a = 1</code> should be simplified to <code class="highlighter-rouge">a = 1</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4273">CALCITE-4273</a>]
+Support get expression lineage for Calc</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4350">CALCITE-4350</a>]
+The reverse operation of collation direction is overly relaxed (Liya Fan)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4345">CALCITE-4345</a>]
+<code class="highlighter-rouge">AggregateCaseToFilterRule</code> throws <code class="highlighter-rouge">NullPointerException</code> when converting <code class="highlighter-rouge">CASE</code>
+without <code class="highlighter-rouge">ELSE</code> (Jiatao Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4233">CALCITE-4233</a>]
+In Elasticsearch adapter, support generating disjunction max (dis_max) queries
+(shlok7296)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4106">CALCITE-4106</a>]
+Consider <code class="highlighter-rouge">listCoerced</code> in <code class="highlighter-rouge">TypeCoercionImpl#inOperationCoercion</code> (Jiatao Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4352">CALCITE-4352</a>]
+<code class="highlighter-rouge">RexSimplify</code> incorrectly drops <code class="highlighter-rouge">IS NULL</code> and <code class="highlighter-rouge">IS NOT NULL</code> from <code class="highlighter-rouge">SEARCH</code>
+expressions</li>
+  <li>BigQuery dialect should allow <code class="highlighter-rouge">GROUP BY</code> ordinal</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4332">CALCITE-4332</a>]
+Improve error when planning rule produces a relational expression with wrong
+row type</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4225">CALCITE-4225</a>]
+Make <code class="highlighter-rouge">RelDecorrelator</code> pluggable</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4305">CALCITE-4305</a>]
+Implicit column alias for single-column <code class="highlighter-rouge">VALUES</code>, and <code class="highlighter-rouge">UNNEST</code> of <code class="highlighter-rouge">ARRAY</code> and
+<code class="highlighter-rouge">MULTISET</code> constructors</li>
+  <li>Add an overloaded <code class="highlighter-rouge">SqlOperator#createCall</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4321">CALCITE-4321</a>]
+JDBC adapter omits <code class="highlighter-rouge">FILTER (WHERE ...)</code> expressions when generating SQL
+(Jeremiah Rhoads Hall)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4325">CALCITE-4325</a>]
+<code class="highlighter-rouge">RexSimplify</code> incorrectly simplifies complex expressions that contain Sarg and
+<code class="highlighter-rouge">IS NULL</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4240">CALCITE-4240</a>]
+<code class="highlighter-rouge">SqlTypeUtil#getMaxPrecisionScaleDecimal</code> returns a decimal with same
+precision and scale (Jiatao Tao)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4333">CALCITE-4333</a>]
+<code class="highlighter-rouge">Sort</code> rel should be decorrelated even though it has fetch or limit when its
+parent is not a <code class="highlighter-rouge">Correlate</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4302">CALCITE-4302</a>]
+Avoid cost re-propagation in <code class="highlighter-rouge">VolcanoPlanner</code> (Botong Huang)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4324">CALCITE-4324</a>]
+Avoid sqlline classpath caching by default, add sqlline and sqlsh tests</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4315">CALCITE-4315</a>]
+<code class="highlighter-rouge">NPE</code> in <code class="highlighter-rouge">RelMdUtil#checkInputForCollationAndLimit</code></li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4316">CALCITE-4316</a>]
+<code class="highlighter-rouge">NPE</code> when division includes nulls</li>
+  <li>Add method RelBuilder.isDistinctFrom()</li>
+  <li>Add class SqlBasicAggFunction</li>
+  <li>Add generic info to <code class="highlighter-rouge">Map</code> &amp; <code class="highlighter-rouge">Array</code> annotation</li>
+  <li>Refactor: Add method SqlOperator.reverse()</li>
+  <li>Refactor: Make HintStrategyTable immutable</li>
+  <li>Refactor: move CassandraRules.reverseDirection into Direction</li>
+  <li>Remove the insecure, unused <code class="highlighter-rouge">TrustAllSslSocketFactory</code> class (intrigus-lgtm)</li>
+  <li>Remove multiple blank lines after package statements</li>
+  <li>Remove multiple blank lines after import statements</li>
+  <li>Cleanup code after errorprone upgrade: <code class="highlighter-rouge">IdentityHashMapUsage</code>, <code class="highlighter-rouge">JdkObsolete</code> -&gt;
+<code class="highlighter-rouge">JavaUtilDate</code>
+    <h4 id="build-and-test-suit">Build and test suit</h4>
+  </li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4613">CALCITE-4613</a>]
+OWASP dependency-check tasks fail due to missing resources</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4576">CALCITE-4576</a>]
+Release process should not overwrite LICENSE file</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4575">CALCITE-4575</a>]
+Remove Gradle wrapper from source distribution</li>
+  <li>Remove <code class="highlighter-rouge">System.out.println</code> from <code class="highlighter-rouge">DiffRepository</code></li>
+  <li><code class="highlighter-rouge">DiffRepository</code> should write a test’s resource file only when it is modified</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4593">CALCITE-4593</a>]
+<code class="highlighter-rouge">DiffRepository</code> tests should fail if new XML resources are not in alphabetical
+order</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4587">CALCITE-4587</a>]
+Set <code class="highlighter-rouge">spark.driver.bindAddress</code> explicitly to avoid <code class="highlighter-rouge">BindException</code> thrown by
+Spark (Jiatao Tao)</li>
+  <li>Add Matcher#matches to ForbiddenApis to avoid its accidental use</li>
+  <li>Apply com.autonomousapps.dependency-analysis plugin only when
+-PenableDependencyAnalysis is provided on a command line</li>
+  <li>Fuzz testing for SEARCH operator, and refactor RexSimplify</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4344">CALCITE-4344</a>]
+Run <code class="highlighter-rouge">Redis</code> tests using Docker containers</li>
+  <li>Make sure FmppTask re-executes in case default_config.fmpp changes</li>
+  <li>Use max-parallel=3 to reduce the usage of the shared GitHub Actions executors</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4140">CALCITE-4140</a>]
+Use Wasabi S3 for remote build cache</li>
+  <li>Use Sonatype OSSRH repository instead of JCenter in build plugins</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4459">CALCITE-4459</a>]
+Verify the bytecode with Jandex by default</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4470">CALCITE-4470</a>]
+Add optional bytecode verification with Jandex</li>
+  <li>Cancel stale workflows in GitHub Actions CI</li>
+  <li>Add ErrorProne and the Checker Framework verifications to Travis CI</li>
+  <li>Test case for [<a href="https://issues.apache.org/jira/browse/CALCITE-1382">CALCITE-1382</a>]
+<code class="highlighter-rouge">ClassCastException</code> in JDBC Adapter</li>
+  <li>Require Java 1.8.0u202 or later for the build</li>
+  <li>Make sure compileJava is re-executed in case of the minor javac version changes</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4422">CALCITE-4422</a>]
+Add <code class="highlighter-rouge">MethodCanBeStatic</code> check via ErrorProne</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4199">CALCITE-4199</a>]
+Add CheckerFramework to GitHub Actions CI</li>
+  <li>Add OpenJ9 1.8 CI job at GitHub Actions</li>
+  <li>Add markdown to .gitattributes</li>
+  <li>Set diff pattern for CSS files in .gitattributes</li>
+  <li>Remove files that change often from Travis cache, remove broken files
+automatically</li>
+  <li>Make buildSrc jars reproducible for better caching</li>
+  <li>Refactor <code class="highlighter-rouge">SqlToRelTestBase</code> to allow custom <code class="highlighter-rouge">Context</code> in tests</li>
+  <li>Exclude root project from javadoc aggregate tasks</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4301">CALCITE-4301</a>]
+Unit test <code class="highlighter-rouge">testCollectionsInnerValues()</code> for Cassandra adapter is wrong
+(Alessandro Solimando)</li>
+  <li>Refactor <code class="highlighter-rouge">ResultSetEnumerable</code> to avoid nested lambdas</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4314">CALCITE-4314</a>]
+Enable ErrorProne checking and resolve identified problems</li>
+</ul>
+
+<h4 id="dependency-version-upgrade">Dependency version upgrade</h4>
+<ul>
+  <li>Bump commons-codec from 1.12 to 1.13 (Jaromir Hamala)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4528">CALCITE-4528</a>]
+Upgrade Avatica version to 1.18.0</li>
+  <li>Bump Gradle 6.8.1 -&gt; 6.8.3</li>
+  <li>Update dependency declarations: adjust api vs implementation, remove unused
+ones</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4506">CALCITE-4506</a>]
+Upgrade SQLLine to 1.11.0</li>
+  <li>Bump checkerframework 3.9.1 -&gt; 3.10.0, errorprone 2.4.0 -&gt; 2.5.1</li>
+  <li>Bump checkerframework 3.7 -&gt; 3.9.1</li>
+  <li>Bump Gradle 6.7 -&gt; 6.8.1</li>
+  <li>Bump AppVeyor image from 2017 to 2019 to test with newer Java: 1.8u162 -&gt;
+1.8u221, 13 -&gt; 15</li>
+  <li>Bump de.thetaphi.forbiddenapis from 2.7 to 3.1</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4343">CALCITE-4343</a>]
+Bump Jedis from 2.9.0 to 3.3.0 (Tugdual Grall)</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4339">CALCITE-4339</a>]
+Update Gradle: 6.6 -&gt; 6.7</li>
+  <li>Use jackson-bom to specify Jackson versions
+    <h4 id="web-site-and-documentation">Web site and documentation</h4>
+  </li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4625">CALCITE-4625</a>]
+Update version in NOTICE, README, and howto.md</li>
+  <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4601">CALCITE-4601</a>]
+Invalid Javadoc URL in <code class="highlighter-rouge">SchemaFactory</code> of CSV adapter</li>
+  <li>Update release instructions</li>
+</ul>
 
 <h2 id="v1-26-0"><a href="https://github.com/apache/calcite/releases/tag/calcite-1.26.0">1.26.0</a> / 2020-10-06</h2>
 
@@ -104,13 +521,13 @@ using JDK/OpenJDK versions 8 to 15;
 Guava versions 19.0 to 29.0-jre;
 other software versions as specified in gradle.properties.</p>
 
-<h4 id="breaking-changes">Breaking Changes</h4>
+<h4 id="breaking-changes-1">Breaking Changes</h4>
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2082">CALCITE-2082</a>]
 Do not store types or type factories inside operators</li>
 </ul>
 
-<h4 id="new-features">New features</h4>
+<h4 id="new-features-1">New features</h4>
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4173">CALCITE-4173</a>]
 Add internal <code class="highlighter-rouge">SEARCH</code> operator and <code class="highlighter-rouge">Sarg</code> literal that represents a set of values or ranges</li>
@@ -130,7 +547,7 @@ Provide utility to visualize <code class="highlighter-rouge">RelNode</code> plan
 Support <code class="highlighter-rouge">LEFT JOIN</code> in <code class="highlighter-rouge">EnumerableMergeJoin</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements">Bug fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-1">Bug fixes, API changes and minor enhancements</h4>
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2833">CALCITE-2833</a>]
 In JDBC adapter for Hive and BigQuery, implement <code class="highlighter-rouge">Values</code> by generating <code class="highlighter-rouge">SELECT</code> without <code class="highlighter-rouge">FROM</code> (Stuti Gupta)</li>
@@ -279,7 +696,7 @@ Remove dependency between checkstyle and compilation tasks</li>
   <li>Update <code class="highlighter-rouge">org.nosphere.apache.rat</code> plugin from 0.5.2 to 0.7.0, and print files with unapproved licenses to console</li>
 </ul>
 
-<h4 id="web-site-and-documentation">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-1">Web site and documentation</h4>
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3841">CALCITE-3841</a>]
 Change downloads page to use downloads.apache.org</li>
@@ -306,7 +723,7 @@ using Oracle JDK 8, 9, 10, 11, 12, 13, 14 and OpenJDK 8, 9, 10, 11, 12, 13, 14;
 Guava versions 19.0 to 28.2-jre; other software versions as specified in
 gradle.properties.</p>
 
-<h4 id="breaking-changes-1">Breaking Changes</h4>
+<h4 id="breaking-changes-2">Breaking Changes</h4>
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2569">CALCITE-2569</a>]
 UDFs that are table functions must implement <code class="highlighter-rouge">SqlTableFunction</code> and have <code class="highlighter-rouge">CURSOR</code> as their return type</li>
@@ -318,7 +735,7 @@ Dialect constants in <code class="highlighter-rouge">SqlDialect</code> can cause
 Remove dependency of File adapter on Example CSV adapter</li>
 </ul>
 
-<h4 id="new-features-1">New features</h4>
+<h4 id="new-features-2">New features</h4>
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2160">CALCITE-2160</a>]
 Spatial: Add functions <code class="highlighter-rouge">ST_MakeGrid</code> and <code class="highlighter-rouge">ST_MakeGridPoints</code></li>
@@ -330,7 +747,7 @@ Add a rule, <code class="highlighter-rouge">ProjectAggregateMergeRule</code>, to
 Allow character literals as column aliases, if <code class="highlighter-rouge">SqlConformance.allowCharLiteralAlias()</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-1">Bug fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-2">Bug fixes, API changes and minor enhancements</h4>
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4139">CALCITE-4139</a>]
 Prevent NPE in <code class="highlighter-rouge">ListTransientTable</code></li>
@@ -402,7 +819,7 @@ using Oracle JDK 8, 9, 10, 11, 12, 13, 14 and OpenJDK 8, 9, 10, 11, 12, 13, 14;
 Guava versions 19.0 to 28.2-jre; other software versions as specified in
 gradle.properties.</p>
 
-<h4 id="breaking-changes-2">Breaking Changes</h4>
+<h4 id="breaking-changes-3">Breaking Changes</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4032">CALCITE-4032</a>]
@@ -414,7 +831,7 @@ Disallow cross convention matching and <code class="highlighter-rouge">PhysicalN
 Change <code class="highlighter-rouge">RelNode#recomputeDigest()</code> return type from <code class="highlighter-rouge">String</code> to <code class="highlighter-rouge">void</code></li>
 </ul>
 
-<h4 id="new-features-2">New features</h4>
+<h4 id="new-features-3">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4000">CALCITE-4000</a>]
@@ -433,7 +850,7 @@ In Babel, allow <code class="highlighter-rouge">CAST(integer AS DATE)</code> eve
 <code class="highlighter-rouge">Hoist</code>, a utility to replace literals in a SQL string with placeholders</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-2">Bug fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-3">Bug fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-4073">CALCITE-4073</a>]
@@ -583,7 +1000,7 @@ Add automatically link to GitHub PR and ‘pull-request-available’ label to is
 Restructure tests for materialized views (Jin Xing)</li>
 </ul>
 
-<h4 id="web-site-and-documentation-1">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-2">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3950">CALCITE-3950</a>]
@@ -621,7 +1038,7 @@ using Oracle JDK 8, 9, 10, 11, 12, 13, 14 and OpenJDK 8, 9, 10, 11, 12, 13, 14;
 Guava versions 19.0 to 28.2-jre; other software versions as specified in
 gradle.properties.</p>
 
-<h4 id="breaking-changes-3">Breaking Changes</h4>
+<h4 id="breaking-changes-4">Breaking Changes</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3877">CALCITE-3877</a>]
@@ -638,7 +1055,7 @@ operators</li>
 Split <code class="highlighter-rouge">AbstractMaterializedViewRule</code> into multiple classes (addendum)</li>
 </ul>
 
-<h4 id="new-features-3">New features</h4>
+<h4 id="new-features-4">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3896">CALCITE-3896</a>]
@@ -670,7 +1087,7 @@ Support SQL standard aggregate functions: <code class="highlighter-rouge">EVERY<
 Implement <code class="highlighter-rouge">STRCMP</code> function</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-3">Bug fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-4">Bug fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3984">CALCITE-3984</a>]
@@ -912,7 +1329,7 @@ Make junit test classes and methods non-public where possible</li>
   <li>The release tag should be ‘calcite-N.N’ not ‘vN.N’</li>
 </ul>
 
-<h4 id="web-site-and-documentation-2">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-3">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3958">CALCITE-3958</a>]
@@ -968,7 +1385,7 @@ using Oracle JDK 8, 9, 10, 11, 12, 13 and OpenJDK 8, 9, 10, 11, 12, 13;
 Guava versions 19.0 to 27.1-jre; Apache Flink 1.10.0;
 other software versions as specified in gradle.properties.</p>
 
-<h4 id="breaking-changes-4">Breaking Changes</h4>
+<h4 id="breaking-changes-5">Breaking Changes</h4>
 
 <ul>
   <li>Constructors for <code class="highlighter-rouge">Project</code>, <code class="highlighter-rouge">TableScan</code>, <code class="highlighter-rouge">Calc</code>, <code class="highlighter-rouge">Aggregate</code> and <code class="highlighter-rouge">Join</code> introduce new parameter named <code class="highlighter-rouge">hints</code> (<a href="https://issues.apache.org/jira/browse/CALCITE-482">CALCITE-482</a>)</li>
@@ -979,7 +1396,7 @@ other software versions as specified in gradle.properties.</p>
   <li><code class="highlighter-rouge">RelBuilder.scan</code> and sql-to-rel conversion always invoke <code class="highlighter-rouge">RelOptTable.toRel</code> now, so there may be some plan changes for the <code class="highlighter-rouge">TableScan</code> node if your <code class="highlighter-rouge">RelOptTable.toRel</code> returns a physical rel before</li>
 </ul>
 
-<h4 id="new-features-4">New features</h4>
+<h4 id="new-features-5">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3771">CALCITE-3771</a>] <code class="highlighter-rouge">TRIM</code> Support for HIVE/SPARK Dialect (Dhirenda Gautam)</li>
@@ -1015,7 +1432,7 @@ other software versions as specified in gradle.properties.</p>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3112">CALCITE-3112</a>] Support <code class="highlighter-rouge">Window</code> in <code class="highlighter-rouge">RelToSqlConverter</code> (Wenhui Tang)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-4">Bug fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-5">Bug fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>Following CALCITE-3769: Add BindableTableScanRule into the default ruleset</li>
@@ -1287,7 +1704,7 @@ generates the <code class="highlighter-rouge">ROW</code> keyword only if the dia
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3421">CALCITE-3421</a>] Reuse <code class="highlighter-rouge">RelMetadataQuery</code> in test suites</li>
 </ul>
 
-<h4 id="dependency-version-upgrade">Dependency version upgrade</h4>
+<h4 id="dependency-version-upgrade-1">Dependency version upgrade</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3818">CALCITE-3818</a>] Upgrade Avatica version to 1.16.0</li>
@@ -1301,7 +1718,7 @@ generates the <code class="highlighter-rouge">ROW</code> keyword only if the dia
   <li>Bump jackson-databind from 2.9.9.3 to 2.9.10.1</li>
 </ul>
 
-<h4 id="web-site-and-documentation-3">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-4">Web site and documentation</h4>
 
 <ul>
   <li>Site: Update IntelliJ instructions with suggested and problematic versions</li>
@@ -1352,7 +1769,7 @@ Guava versions 19.0 to 27.1-jre;
 Apache Druid version 0.14.0-incubating;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="breaking-changes-5">Breaking Changes</h4>
+<h4 id="breaking-changes-6">Breaking Changes</h4>
 
 <ul>
   <li>Core parser config.fmpp#dataTypeParserMethods should return <code class="highlighter-rouge">SqlTypeNameSpec</code>
@@ -1364,7 +1781,7 @@ exception. The exception can easily disappear by changing the name of the
 <code class="highlighter-rouge">Convention</code> which causes the problem.</li>
 </ul>
 
-<h4 id="new-features-5">New features</h4>
+<h4 id="new-features-6">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2973">CALCITE-2973</a>]
@@ -1425,7 +1842,7 @@ Implement <code class="highlighter-rouge">DAYNAME</code>,<code class="highligh
 Parse and process PostgreSQL posix regular expressions</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-5">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-6">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3321">CALCITE-3321</a>]
@@ -1664,7 +2081,7 @@ Mongo adapter. Replace fongo with Mongo Java Server for tests</li>
 Add test for invalid literal of SQL parser</li>
 </ul>
 
-<h4 id="web-site-and-documentation-4">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-5">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3303">CALCITE-3303</a>]
@@ -1701,7 +2118,7 @@ Guava versions 19.0 to 27.1-jre;
 Apache Druid version 0.14.0-incubating;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="breaking-changes-6">Breaking Changes</h4>
+<h4 id="breaking-changes-7">Breaking Changes</h4>
 
 <ul>
   <li>Make <code class="highlighter-rouge">EnumerableMergeJoin</code> extend <code class="highlighter-rouge">Join</code> instead of <code class="highlighter-rouge">EquiJoin</code></li>
@@ -1719,7 +2136,7 @@ Calcite table names will reflect index names in Elasticsearch (as opposed to typ
 We recommend use of Elasticsearch 6.2 (or later) with Calcite.</li>
 </ul>
 
-<h4 id="new-features-6">New features</h4>
+<h4 id="new-features-7">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2822">CALCITE-2822</a>] Allow <code class="highlighter-rouge">MultiJoin</code> rules with any project/filter (Siddharth Teotia)</li>
@@ -1751,7 +2168,7 @@ We recommend use of Elasticsearch 6.2 (or later) with Calcite.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2908">CALCITE-2908</a>] Implement SQL <code class="highlighter-rouge">LAST_DAY</code> function (Chunwei Lei)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-6">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-7">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-3119">CALCITE-3119</a>] Deprecate Linq4j <code class="highlighter-rouge">CorrelateJoinType</code> (in favor of <code class="highlighter-rouge">JoinType</code>)</li>
@@ -1865,7 +2282,7 @@ We recommend use of Elasticsearch 6.2 (or later) with Calcite.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2961">CALCITE-2961</a>] Enable Travis to test against JDK 13</li>
 </ul>
 
-<h4 id="web-site-and-documentation-5">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-6">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2952">CALCITE-2952</a>] Document JDK 12 support</li>
@@ -1898,7 +2315,7 @@ Guava versions 19.0 to 27.1-jre;
 Druid version 0.11.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-7">New features</h4>
+<h4 id="new-features-8">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1912">CALCITE-1912</a>]
@@ -1917,7 +2334,7 @@ Add bitwise aggregate functions <code class="highlighter-rouge">BIT_AND</code>,
 Allow alias in <code class="highlighter-rouge">HAVING</code> clause for aggregate functions</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-7">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-8">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1513">CALCITE-1513</a>]
@@ -2113,7 +2530,7 @@ In Mongo adapter, compare Bson (not string) query representation in tests</li>
 <code class="highlighter-rouge">cassandra-all</code></li>
 </ul>
 
-<h4 id="web-site-and-documentation-6">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-7">Web site and documentation</h4>
 
 <ul>
   <li>Switch from <code class="highlighter-rouge">maven:alpine</code> to <code class="highlighter-rouge">maven</code> image for generating javadoc when
@@ -2160,7 +2577,7 @@ Guava versions 19.0 to 27.0.1-jre;
 Druid version 0.11.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-8">New features</h4>
+<h4 id="new-features-9">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2662">CALCITE-2662</a>]
@@ -2260,7 +2677,7 @@ Geode adapter wrongly quotes <code class="highlighter-rouge">BOOLEAN</code> valu
   </li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-8">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-9">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2670">CALCITE-2670</a>]
@@ -2616,7 +3033,7 @@ Cassandra unit test fails to parse JDK version string (Andrei Sereda)</li>
 Use embedded Cassandra for tests</li>
 </ul>
 
-<h4 id="web-site-and-documentation-7">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-8">Web site and documentation</h4>
 
 <ul>
   <li>Add geospatial category to DOAP file</li>
@@ -2655,7 +3072,7 @@ that accepts all SQL dialects.
 Allowed <a href="https://issues.apache.org/jira/browse/CALCITE-2261">JDK 8 language level</a> for core module.
 Calcite has been upgraded to use <a href="https://issues.apache.org/jira/browse/CALCITE-2365">Avatica 1.12.0</a></p>
 
-<h4 id="new-features-9">New features</h4>
+<h4 id="new-features-10">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-873">CALCITE-873</a>]
@@ -2676,7 +3093,7 @@ In Babel parser, allow Hive-style syntax <code class="highlighter-rouge">LEFT SE
 A union of <code class="highlighter-rouge">CHAR</code> columns of different lengths can now (based on a conformance setting) yield a <code class="highlighter-rouge">VARCHAR</code> column (Hequn Cheng)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-9">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-10">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-531">CALCITE-531</a>]
@@ -2890,7 +3307,7 @@ and the JDBC adapter now <a href="https://issues.apache.org/jira/browse/CALCITE-
 support for <a href="https://issues.apache.org/jira/browse/CALCITE-2191">Guava versions earlier than 19</a>.</li>
 </ul>
 
-<h4 id="new-features-10">New features</h4>
+<h4 id="new-features-11">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1265">CALCITE-1265</a>]
@@ -2905,7 +3322,7 @@ In JDBC adapter, add SQL dialect for Jethro Data (Jonathan Doron)</li>
 Use Druid Expressions capabilities to improve the amount of work that can be pushed to Druid</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-10">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-11">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1054">CALCITE-1054</a>]
@@ -3050,7 +3467,7 @@ Enforce Java version via maven-enforcer-plugin (Kevin Risden)</li>
 Geode integration tests are failing</li>
 </ul>
 
-<h4 id="web-site-and-documentation-8">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-9">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2024">CALCITE-2024</a>]
@@ -3098,7 +3515,7 @@ and the Cassandra adapter’s dependencies.)</p>
 <p>This is the <a href="https://issues.apache.org/jira/browse/CALCITE-2027">last
 release that will support JDK 1.7</a>.</p>
 
-<h4 id="new-features-11">New features</h4>
+<h4 id="new-features-12">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1616">CALCITE-1616</a>]
@@ -3129,7 +3546,7 @@ with dialect methods, and introduce a configurable <code class="highlighter-roug
 (Christian Beikov)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-11">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-12">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-2078">CALCITE-2078</a>]
@@ -3232,7 +3649,7 @@ aggregate functions (Pawel Ruchaj)</li>
 linq4j: support List and Map literals</li>
 </ul>
 
-<h4 id="web-site-and-documentation-9">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-10">Web site and documentation</h4>
 
 <ul>
   <li>Update PMC Chair</li>
@@ -3275,7 +3692,7 @@ Guava versions 14.0 to 21.0;
 Druid version 0.11.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-12">New features</h4>
+<h4 id="new-features-13">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1968">CALCITE-1968</a>]  OpenGIS Simple Feature Access SQL 1.2.1: add <code class="highlighter-rouge">GEOMETRY</code> data type and first 35 functions
@@ -3297,7 +3714,7 @@ which ones are implemented), and add “countries” data set for testing.</li>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1709">CALCITE-1709</a>]  Support mixing table columns with extended columns in DML (Rajeshbabu Chintaguntla)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-12">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-13">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1931">CALCITE-1931</a>]
@@ -3355,7 +3772,7 @@ types: <code class="highlighter-rouge">RANK</code>, <code class="highlighter-rou
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1856">CALCITE-1856</a>]  Add option <code class="highlighter-rouge">StructKind.PEEK_FIELDS_NO_EXPAND</code>, similar to <code class="highlighter-rouge">PEEK_FIELDS</code> but is not expanded in <code class="highlighter-rouge">"SELECT *"</code> (Shuyi Chen)</li>
 </ul>
 
-<h4 id="web-site-and-documentation-10">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-11">Web site and documentation</h4>
 
 <ul>
   <li>Add committer Chris Baynes</li>
@@ -3400,7 +3817,7 @@ Guava versions 14.0 to 21.0;
 Druid version 0.10.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-13">New features</h4>
+<h4 id="new-features-14">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1570">CALCITE-1570</a>]
@@ -3478,7 +3895,7 @@ Upgrade Druid to 0.9.2 (Nishant Bangarwa)</li>
 Support extended columns in DML (Kevin Liew)</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-13">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-14">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1855">CALCITE-1855</a>]
@@ -3565,7 +3982,7 @@ Match <code class="highlighter-rouge">DruidProjectFilterTransposeRule</code> aga
 Do not push group by on druid metrics fields (Slim Bouguerra)</li>
 </ul>
 
-<h4 id="web-site-and-documentation-11">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-12">Web site and documentation</h4>
 
 <ul>
   <li>Michael Mior joins PMC</li>
@@ -3599,7 +4016,7 @@ Guava versions 14.0 to 21.0;
 Druid version 0.9.1.1;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h3 id="new-features-14">New features</h3>
+<h3 id="new-features-15">New features</h3>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1666">CALCITE-1666</a>]
@@ -3689,7 +4106,7 @@ Add numeric scalar functions (Laurent Goujon)</li>
 JDK9</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-14">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-15">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1716">CALCITE-1716</a>]
@@ -3838,7 +4255,7 @@ Correlated scalar sub-query with multiple aggregates gives <code class="highligh
 (Kurt Young)</li>
 </ul>
 
-<h4 id="web-site-and-documentation-12">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-13">Web site and documentation</h4>
 
 <ul>
   <li>Maryann Xue joins PMC</li>
@@ -3908,7 +4325,7 @@ Guava versions 14.0 to 19.0;
 Druid version 0.9.1.1;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-15">New features</h4>
+<h4 id="new-features-16">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1551">CALCITE-1551</a>]
@@ -3986,7 +4403,7 @@ Implement JDBC functions: <code class="highlighter-rouge">LTRIM</code>, <code cl
 Add <code class="highlighter-rouge">AS JSON</code> as output option for <code class="highlighter-rouge">EXPLAIN</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-15">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-16">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1559">CALCITE-1559</a>]
@@ -4076,7 +4493,7 @@ Druid type is called <code class="highlighter-rouge">FLOAT</code>, not <code cla
 Add sub-query support for RelStructuredTypeFlattener</li>
 </ul>
 
-<h4 id="web-site-and-documentation-13">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-14">Web site and documentation</h4>
 
 <ul>
   <li>Change PMC chair</li>
@@ -4105,7 +4522,7 @@ other software versions as specified in <code class="highlighter-rouge">pom.xml<
 Support operator <code class="highlighter-rouge">!=</code> as an alternative to <code class="highlighter-rouge">&lt;&gt;</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-16">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-17">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1378">CALCITE-1378</a>]
@@ -4136,7 +4553,7 @@ Druid Filter translation incorrect if input reference is in RHS of comparison</l
 Allow Calcite JDBC Driver minor version to be greater than 9</li>
 </ul>
 
-<h4 id="web-site-and-documentation-14">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-15">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1393">CALCITE-1393</a>]
@@ -4173,7 +4590,7 @@ using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-16">New features</h4>
+<h4 id="new-features-17">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1208">CALCITE-1208</a>]
@@ -4220,7 +4637,7 @@ Convert predicates on <code class="highlighter-rouge">EXTRACT</code> function ca
 Introduce <code class="highlighter-rouge">UnionPullUpConstantsRule</code></li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-17">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-18">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-30">CALCITE-30</a>]
@@ -4289,7 +4706,7 @@ In <code class="highlighter-rouge">SqlKind</code>, add <code class="highlighter-
 Calcite generate wrong field names in JDBC adapter</li>
 </ul>
 
-<h4 id="web-site-and-documentation-15">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-16">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1229">CALCITE-1229</a>]
@@ -4330,7 +4747,7 @@ using Oracle JDK 1.7, 1.8;
 Guava versions 14.0 to 19.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-17">New features</h4>
+<h4 id="new-features-18">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1177">CALCITE-1177</a>]
@@ -4387,7 +4804,7 @@ Add <code class="highlighter-rouge">ProjectRemoveRule</code> to pre-processing p
 substitution</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-18">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-19">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1281">CALCITE-1281</a>]
@@ -4466,7 +4883,7 @@ Allow <code class="highlighter-rouge">SqlSetOperator</code> to be overridden, as
 Allow apache-rat to be run outside of release process</li>
 </ul>
 
-<h4 id="web-site-and-documentation-16">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-17">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1273">CALCITE-1273</a>]
@@ -4527,7 +4944,7 @@ using Oracle JDK 1.7, 1.8;
 Guava versions 12.0.1 to 19.0;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-18">New features</h4>
+<h4 id="new-features-19">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1124">CALCITE-1124</a>]
@@ -4571,7 +4988,7 @@ In <code class="highlighter-rouge">RelBuilder</code>, simplify predicates, and o
 Not valid to convert <code class="highlighter-rouge">Aggregate</code> on empty to empty if its <code class="highlighter-rouge">GROUP BY</code> key is empty</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-19">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-20">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1147">CALCITE-1147</a>]
@@ -4638,7 +5055,7 @@ Upgrade Jackson</li>
 Clean up maven POM files</li>
 </ul>
 
-<h4 id="web-site-and-documentation-17">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-18">Web site and documentation</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1112">CALCITE-1112</a>]
@@ -4694,7 +5111,7 @@ on Linux, Mac OS X, Microsoft Windows;
 using Oracle JDK 1.7, 1.8;
 other software versions as specified in <code class="highlighter-rouge">pom.xml</code>.</p>
 
-<h4 id="new-features-19">New features</h4>
+<h4 id="new-features-20">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-816">CALCITE-816</a>]
@@ -4799,7 +5216,7 @@ Composite <code class="highlighter-rouge">EnumerableSort</code> with <code class
 Add description to <code class="highlighter-rouge">SortProjectTransposeRule</code>’s constructor</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-20">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-21">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-1060">CALCITE-1060</a>]
@@ -4881,7 +5298,7 @@ Exception while validating <code class="highlighter-rouge">DELETE</code> (Yuri A
 Rename <code class="highlighter-rouge">timezone</code> connection property to <code class="highlighter-rouge">timeZone</code></li>
 </ul>
 
-<h4 id="web-site-and-documentation-18">Web site and documentation</h4>
+<h4 id="web-site-and-documentation-19">Web site and documentation</h4>
 
 <ul>
   <li>Avatica
@@ -4937,7 +5354,7 @@ multi-sets.  You can follow this example to implement your own query
 language, and immediately taking advantage of Calcite’s back-ends and
 optimizer rules. It’s all just algebra, after all!</p>
 
-<h4 id="new-features-20">New features</h4>
+<h4 id="new-features-21">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-911">CALCITE-911</a>]
@@ -5100,7 +5517,7 @@ Add API to execute queries expressed as <code class="highlighter-rouge">RelNode<
   <li>In RelBuilder, build expressions by table alias</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-21">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-22">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-948">CALCITE-948</a>]
@@ -5188,7 +5605,7 @@ this release includes improvements to lattices and materialized views,
 and adds a builder API so that you can easily create relational
 algebra expressions.</p>
 
-<h4 id="new-features-21">New features</h4>
+<h4 id="new-features-22">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-748">CALCITE-748</a>]
@@ -5224,7 +5641,7 @@ exclusions otherwise</li>
     Web site</li>
 </ul>
 
-<h4 id="bug-fixes-api-changes-and-minor-enhancements-22">Bug-fixes, API changes and minor enhancements</h4>
+<h4 id="bug-fixes-api-changes-and-minor-enhancements-23">Bug-fixes, API changes and minor enhancements</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-741">CALCITE-741</a>]
@@ -5375,7 +5792,7 @@ and
 <a href="https://issues.apache.org/jira/browse/CALCITE-704">filtered aggregate functions</a>
 and various improvements to Avatica.</p>
 
-<h4 id="new-features-22">New features</h4>
+<h4 id="new-features-23">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-505">CALCITE-505</a>]
@@ -5504,7 +5921,7 @@ distribution among relational expressions.</p>
 and [<a href="https://issues.apache.org/jira/browse/CALCITE-307">CALCITE-307</a>]
 improve implicit and explicit conversions in SQL.</p>
 
-<h4 id="new-features-23">New features</h4>
+<h4 id="new-features-24">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-366">CALCITE-366</a>]
@@ -5647,7 +6064,7 @@ later.</p>
 <code class="highlighter-rouge">RelNode</code>. We strongly suggest that you use these rather than
 calling constructors directly.</p>
 
-<h4 id="new-features-24">New features</h4>
+<h4 id="new-features-25">New features</h4>
 
 <ul>
   <li>SQL
@@ -5773,7 +6190,7 @@ improvements to the algorithms that implement the relational algebra,
 including an interpreter that can evaluate queries without compilation;
 and fixes about 30 bugs.</p>
 
-<h4 id="new-features-25">New features</h4>
+<h4 id="new-features-26">New features</h4>
 
 <ul>
   <li>SQL
@@ -6035,7 +6452,7 @@ packages and lots of classes, in what we expect to call 1.0. If you
 have an existing application, it’s worth upgrading to this first,
 before you move on to 1.0.</p>
 
-<h4 id="new-features-26">New features</h4>
+<h4 id="new-features-27">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-436">CALCITE-436</a>]
@@ -6086,7 +6503,7 @@ Push predicates through <code class="highlighter-rouge">SemiJoinRel</code></li>
 
 <p>This is the first release as Calcite. (The project was previously called Optiq.)</p>
 
-<h4 id="new-features-27">New features</h4>
+<h4 id="new-features-28">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-430">CALCITE-430</a>]
@@ -6243,7 +6660,7 @@ most recently.</li>
 
 <p>This is the first release under the Apache incubator process.</p>
 
-<h4 id="new-features-28">New features</h4>
+<h4 id="new-features-29">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-371">CALCITE-371</a>]
@@ -6375,7 +6792,7 @@ Add unit test for <code class="highlighter-rouge">SqlRun</code></li>
 
 <h2 id="v0-8"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.8">0.8</a> / 2014-06-27</h2>
 
-<h4 id="new-features-29">New features</h4>
+<h4 id="new-features-30">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-310">CALCITE-310</a>]
@@ -6456,7 +6873,7 @@ Window functions throw exception without <code class="highlighter-rouge">ORDER B
 
 <h2 id="v0-7"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.7">0.7</a> / 2014-05-13</h2>
 
-<h4 id="new-features-30">New features</h4>
+<h4 id="new-features-31">New features</h4>
 
 <ul>
   <li>Implement table functions.</li>
@@ -6541,7 +6958,7 @@ Suspicious map.get in VolcanoPlanner.reregister</li>
 
 <h2 id="v0-6"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.6">0.6</a> / 2014-04-11</h2>
 
-<h4 id="new-features-31">New features</h4>
+<h4 id="new-features-32">New features</h4>
 
 <ul>
   <li>[<a href="https://issues.apache.org/jira/browse/CALCITE-214">CALCITE-214</a>]
@@ -6666,7 +7083,7 @@ and obsolete our copy of the resource framework.</li>
 
 <h2 id="v0-5"><a href="https://github.com/apache/calcite/releases/tag/optiq-parent-0.5">0.5</a> / 2014-03-14</h2>
 
-<h4 id="new-features-32">New features</h4>
+<h4 id="new-features-33">New features</h4>
 
 <ul>
   <li>Allow <code class="highlighter-rouge">quoting</code>, <code class="highlighter-rouge">quotedCasing</code>, <code class="highlighter-rouge">unquotedCasing</code>, and <code class="highlighter-rouge">caseSensitive</code>
diff --git a/docs/howto.html b/docs/howto.html
index 9894427..5f1b6dd 100644
--- a/docs/howto.html
+++ b/docs/howto.html
@@ -145,27 +145,29 @@ adapters.</p>
 
 <h2 id="building-from-a-source-distribution">Building from a source distribution</h2>
 
-<p>Prerequisite is Java (JDK 8, 9, 10, 11, 12, 13, 14 or 15) on your path.</p>
+<p>Prerequisite is Java (JDK 8, 9, 10, 11, 12, 13, 14 or 15)
+and Gradle (version 6.8.1) on your path.</p>
 
 <p>Unpack the source distribution <code class="highlighter-rouge">.tar.gz</code> file,
 <code class="highlighter-rouge">cd</code> to the root directory of the unpacked source,
-then build using the included maven wrapper:</p>
+then build using Gradle:</p>
 
-<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">tar </span>xvfz apache-calcite-1.26.0-src.tar.gz
-<span class="nv">$ </span><span class="nb">cd </span>apache-calcite-1.26.0-src
-<span class="nv">$ </span>./gradlew build</code></pre></figure>
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span><span class="nb">tar </span>xvfz apache-calcite-1.27.0-src.tar.gz
+<span class="nv">$ </span><span class="nb">cd </span>apache-calcite-1.27.0-src
+<span class="nv">$ </span>gradle build</code></pre></figure>
 
 <p><a href="#running-tests">Running tests</a> describes how to run more or fewer
-tests.</p>
+tests  (but you should use the <code class="highlighter-rouge">gradle</code> command rather than
+<code class="highlighter-rouge">./gradlew</code>).</p>
 
 <h2 id="building-from-git">Building from Git</h2>
 
 <p>Prerequisites are git
 and Java (JDK 8, 9, 10, 11, 12, 13, 14 or 15) on your path.</p>
 
-<p>Create a local copy of the github repository,
+<p>Create a local copy of the GitHub repository,
 <code class="highlighter-rouge">cd</code> to its root directory,
-then build using the included maven wrapper:</p>
+then build using the included Gradle wrapper:</p>
 
 <figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$ </span>git clone git://github.com/apache/calcite.git
 <span class="nv">$ </span><span class="nb">cd </span>calcite
@@ -178,7 +180,7 @@ has not changed.</p>
 
 <p>Typically re-generation is called automatically when the relevant templates
 are changed, and it should work transparently.
-However if your IDE does not generate sources (e.g. <code class="highlighter-rouge">core/build/javacc/javaCCMain/org/apache/calcite/sql/parser/impl/SqlParserImpl.java</code>),
+However, if your IDE does not generate sources (e.g. <code class="highlighter-rouge">core/build/javacc/javaCCMain/org/apache/calcite/sql/parser/impl/SqlParserImpl.java</code>),
 then you can call <code class="highlighter-rouge">./gradlew generateSources</code> tasks manually.</p>
 
 <p><a href="#running-tests">Running tests</a> describes how to run more or fewer
@@ -207,7 +209,8 @@ be impedance mismatch between different versions.</p>
 <span class="nv">$ </span>./gradlew check <span class="c"># verify code style, execute tests</span>
 <span class="nv">$ </span>./gradlew <span class="nb">test</span> <span class="c"># execute tests</span>
 <span class="nv">$ </span>./gradlew style <span class="c"># update code formatting (for auto-correctable cases) and verify style</span>
-<span class="nv">$ </span>./gradlew autostyleCheck checkstyleAll <span class="c"># report code style violations</span></code></pre></figure>
+<span class="nv">$ </span>./gradlew autostyleCheck checkstyleAll <span class="c"># report code style violations</span>
+<span class="nv">$ </span>./gradlew <span class="nt">-PenableErrorprone</span> classes <span class="c"># verify Java code with Error Prone compiler, requires Java 11</span></code></pre></figure>
 
 <p>You can use <code class="highlighter-rouge">./gradlew assemble</code> to build the artifacts and skip all tests and verifications.</p>
 
@@ -307,9 +310,9 @@ The connection strings for different databases are listed in <a href="https://gi
 
 <h3 id="integration-tests-technical-details">Integration tests technical details</h3>
 
-<p>Tests with external data are executed at maven’s integration-test phase.
-We do not currently use pre-integration-test/post-integration-test, however we could use that in future.
-The verification of build pass/failure is performed at verify phase.
+<p>Tests with external data are executed during Gradle’s integration-test phase.
+We do not currently use pre-integration-test/post-integration-test, however, we could use that in the future.
+The verification of build pass/failure is performed during the verify phase.
 Integration tests should be named <code class="highlighter-rouge">...IT.java</code>, so they are not picked up on unit test execution.</p>
 
 <h2 id="contributing">Contributing</h2>
@@ -354,7 +357,7 @@ Wait for NetBeans to finish importing all dependencies.</p>
 
 <p>To ensure that the project is configured successfully, navigate to the method <code class="highlighter-rouge">testWinAgg</code> in <code class="highlighter-rouge">org.apache.calcite.test.JdbcTest</code>.
 Right-click on the method and select to <em>Run Focused Test Method</em>.
-NetBeans will run a Maven process, and you should see in the command output window a line with
+NetBeans will run a Gradle process, and you should see in the command output window a line with
  <code class="highlighter-rouge">Running org.apache.calcite.test.JdbcTest</code> followed by <code class="highlighter-rouge">"BUILD SUCCESS"</code>.</p>
 
 <p>Note: it is not clear if NetBeans automatically generates relevant sources on project import,
@@ -402,7 +405,7 @@ for temporary files, such as <code class="highlighter-rouge">/tmp</code> on Unix
 </ul>
 
 <p>After code is generated, either go into Intellij and mark the folder that
-contains generated temporary files as a generated sources root or sources root,
+contains generated temporary files as generated sources root or sources root,
 or directly set the value of <code class="highlighter-rouge">org.codehaus.janino.source_debugging.dir</code> to an
 existing source root when starting the JVM.</p>
 
@@ -415,7 +418,7 @@ existing source root when starting the JVM.</p>
 <p>First, download and install Calcite,
 and <a href="https://www.mongodb.org/downloads">install MongoDB</a>.</p>
 
-<p>Note: you can use MongoDB from integration test virtual machine above.</p>
+<p>Note: you can use MongoDB from the integration test virtual machine above.</p>
 
 <p>Import MongoDB’s zipcode data set into MongoDB:</p>
 
@@ -609,11 +612,11 @@ need to be re-generated only every build, only when the schema changes.</p>
 sometimes followed by what the rule does, then the word <code class="highlighter-rouge">Rule</code>.
 Examples: <code class="highlighter-rouge">ProjectFilterTransposeRule</code>, <code class="highlighter-rouge">FilterMergeRule</code>.</p>
 
-<p>The rule must have a constructor that takes a <code class="highlighter-rouge">Config</code> as argument.
+<p>The rule must have a constructor that takes a <code class="highlighter-rouge">Config</code> as an argument.
 It should be <code class="highlighter-rouge">protected</code>, and will only be called from <code class="highlighter-rouge">Config.toRule()</code>.</p>
 
 <p>The class must contain an interface called <code class="highlighter-rouge">Config</code> that extends
-<code class="highlighter-rouge">RelRule.Config</code> (or the config of a the rule’s super-class).</p>
+<code class="highlighter-rouge">RelRule.Config</code> (or the config of the rule’s super-class).</p>
 
 <p><code class="highlighter-rouge">Config</code> must implement the <code class="highlighter-rouge">toRule</code> method and create a rule.</p>
 
@@ -688,7 +691,7 @@ the <code class="highlighter-rouge">slow-tests-needed</code> label. It is up to
 tests need to run before merging.</p>
 
 <p>If the PR has multiple commits, squash them into a single commit. The
-commit message should follow the conventions outined in
+commit message should follow the conventions outlined in
 <a href="/develop/#contributing">contribution guidelines</a>.
 If there are conflicts it is better to ask the contributor to take this step,
 otherwise it is preferred to do this manually since it saves time and also
@@ -707,7 +710,7 @@ must:</p>
   <li>resolve the issue (do not close it as this will be done by the release
 manager);</li>
   <li>select “Fixed” as resolution cause;</li>
-  <li>mark the appropriate version (e.g., 1.26.0) in the “Fix version” field;</li>
+  <li>mark the appropriate version (e.g., 1.28.0) in the “Fix version” field;</li>
   <li>add a comment (e.g., “Fixed in …”) with a hyperlink pointing to the commit
 which resolves the issue (in GitHub or GitBox), and also thank the contributor
 for their contribution.</li>
@@ -727,6 +730,10 @@ the permission to update the <code class="highlighter-rouge">KEYS</code> file, a
 ball because that would be
 <a href="https://issues.apache.org/jira/browse/CALCITE-1746">redundant</a>.)</p>
 
+<p>In order to be able to make a release candidate, make sure you upload
+your key to <a href="https://keyserver.ubuntu.com">https://keyserver.ubuntu.com</a> and/or
+<a href="http://pool.sks-keyservers.net:11371">http://pool.sks-keyservers.net:11371</a> (keyservers used by Nexus).</p>
+
 <h2 id="set-up-nexus-repository-credentials">Set up Nexus repository credentials</h2>
 
 <p>Gradle provides multiple ways to <a href="https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties">configure project properties</a>.
@@ -749,13 +756,15 @@ For instance, you could update <code class="highlighter-rouge">$HOME/.gradle/gra
 <p>Note: Both <code class="highlighter-rouge">asfNexusUsername</code> and <code class="highlighter-rouge">asfSvnUsername</code> are your apache id with <code class="highlighter-rouge">asfNexusPassword</code> and
 <code class="highlighter-rouge">asfSvnPassword</code> are corresponding password.</p>
 
-<p>Note: when https://github.com/vlsi/asflike-release-environment is used, the credentials are taken from
+<p>When
+<a href="https://github.com/vlsi/asflike-release-environment">asflike-release-environment</a>
+is used, the credentials are taken from
 <code class="highlighter-rouge">asfTest...</code> (e.g. <code class="highlighter-rouge">asfTestNexusUsername=test</code>)</p>
 
-<p>Note: <code class="highlighter-rouge">asfGitSourceUsername</code> is your github id while <code class="highlighter-rouge">asfGitSourcePassword</code> is not your github password.
+<p>Note: <code class="highlighter-rouge">asfGitSourceUsername</code> is your GitHub id while <code class="highlighter-rouge">asfGitSourcePassword</code> is not your GitHub password.
 You need to generate it in https://github.com/settings/tokens choosing <code class="highlighter-rouge">Personal access tokens</code>.</p>
 
-<p>Note: if you want to uses <code class="highlighter-rouge">gpg-agent</code>, you need to pass anther properties:</p>
+<p>Note: if you want to use <code class="highlighter-rouge">gpg-agent</code>, you need to pass some more properties:</p>
 
 <figure class="highlight"><pre><code class="language-properties" data-lang="properties"><span class="py">useGpgCmd</span><span class="p">=</span><span class="s">true</span>
 <span class="py">signing.gnupg.keyName</span><span class="p">=</span>
@@ -766,7 +775,7 @@ You need to generate it in https://github.com/settings/tokens choosing <code cla
 <p>Before you start:</p>
 
 <ul>
-  <li>Make sure you are using JDK 8.</li>
+  <li>Make sure you are using JDK 8. Note: you need Java 8u202 or later in case you use OpenJDK-based Java.</li>
   <li>Make sure build and tests succeed with <code class="highlighter-rouge">-Dcalcite.test.db=hsqldb</code> (the default)</li>
 </ul>
 
@@ -783,9 +792,15 @@ git clean <span class="nt">-xn</span>
 <p>Before you start:</p>
 
 <ul>
+  <li>Send an email to <a href="mailto:dev@calcite.apache.org">dev@calcite.apache.org</a> notifying that RC build process
+is starting and therefore <code class="highlighter-rouge">master</code> branch is in code freeze until further notice.</li>
   <li>Set up signing keys as described above.</li>
   <li>Make sure you are using JDK 8 (not 9 or 10).</li>
+  <li>Make sure <code class="highlighter-rouge">master</code> branch and <code class="highlighter-rouge">site</code> branch are in sync, i.e. there is no commit on <code class="highlighter-rouge">site</code> that has not
+been applied also to <code class="highlighter-rouge">master</code>.
+This can be achieved by doing <code class="highlighter-rouge">git switch site &amp;&amp; git rebase --empty=drop master &amp;&amp; git switch master &amp;&amp; git reset --hard site</code>.</li>
   <li>Check that <code class="highlighter-rouge">README</code> and <code class="highlighter-rouge">site/_docs/howto.md</code> have the correct version number.</li>
+  <li>Check that <code class="highlighter-rouge">site/_docs/howto.md</code> has the correct Gradle version.</li>
   <li>Check that <code class="highlighter-rouge">NOTICE</code> has the current copyright year.</li>
   <li>Check that <code class="highlighter-rouge">calcite.version</code> has the proper value in <code class="highlighter-rouge">/gradle.properties</code>.</li>
   <li>Make sure build and tests succeed</li>
@@ -812,10 +827,6 @@ notes.  To test Guava version <em>x.y</em>, specify <code class="highlighter-rou
       <li><code class="highlighter-rouge">./gradlew testSlow</code></li>
     </ul>
   </li>
-  <li>Trigger a
-<a href="https://scan.coverity.com/projects/julianhyde-calcite">Coverity scan</a>
-by merging the latest code into the <code class="highlighter-rouge">julianhyde/coverity_scan</code> branch,
-and when it completes, make sure that there are no important issues.</li>
   <li>Add release notes to <code class="highlighter-rouge">site/_docs/history.md</code>. Include the commit history,
 and say which versions of Java, Guava and operating systems the release is
 tested against.</li>
@@ -865,6 +876,16 @@ git clean <span class="nt">-xn</span>
 <span class="c"># Push release candidate to ASF servers</span>
 ./gradlew prepareVote <span class="nt">-Prc</span><span class="o">=</span>1 <span class="nt">-Pasf</span></code></pre></figure>
 
+<p>prepareVote troubleshooting:</p>
+<ul>
+  <li><code class="highlighter-rouge">net.rubygrapefruit.platform.NativeException: Could not start 'svnmucc'</code>: Make sure you have <code class="highlighter-rouge">svnmucc</code> command
+installed in your machine.</li>
+  <li><code class="highlighter-rouge">Execution failed for task ':closeRepository' ... Possible staging rules violation. Check repository status using Nexus UI</code>:
+Log into <a href="https://repository.apache.org/#stagingRepositories">Nexus UI</a> to see the actual error. In case of
+<code class="highlighter-rouge">Failed: Signature Validation. No public key: Key with id: ... was not able to be located</code>, make sure you have uploaded
+your key to the keyservers used by Nexus, see above.</li>
+</ul>
+
 <h4 id="checking-the-artifacts">Checking the artifacts</h4>
 
 <ul>
@@ -884,8 +905,12 @@ no binary distro), check that all files belong to a directory called
     <ul>
       <li>Check that the version in <code class="highlighter-rouge">README</code> is correct</li>
       <li>Check that the copyright year in <code class="highlighter-rouge">NOTICE</code> is correct</li>
+      <li>Check that <code class="highlighter-rouge">LICENSE</code> is identical to the file checked into git</li>
     </ul>
   </li>
+  <li>Make sure that the following files do not occur in the source
+distros: <code class="highlighter-rouge">KEYS</code>, <code class="highlighter-rouge">gradlew</code>, <code class="highlighter-rouge">gradlew.bat</code>, <code class="highlighter-rouge">gradle-wrapper.jar</code>,
+<code class="highlighter-rouge">gradle-wrapper.properties</code></li>
   <li>Make sure that there is no <code class="highlighter-rouge">KEYS</code> file in the source distros</li>
   <li>In each .jar (for example
 <code class="highlighter-rouge">core/build/libs/calcite-core-X.Y.Z.jar</code> and
@@ -921,7 +946,7 @@ gpg <span class="nt">--recv-keys</span> key
 <span class="c"># Check keys</span>
 curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/release/calcite/KEYS
 
-<span class="c"># Sign/check sha256 hashes</span>
+<span class="c"># Sign/check sha512 hashes</span>
 <span class="c"># (Assumes your O/S has a 'shasum' command.)</span>
 <span class="k">function </span>checkHash<span class="o">()</span> <span class="o">{</span>
   <span class="nb">cd</span> <span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span>
@@ -929,15 +954,15 @@ curl <span class="nt">-O</span> https://dist.apache.org/repos/dist/release/calci
     if</span> <span class="o">[</span> <span class="o">!</span> <span class="nt">-f</span> <span class="nv">$i</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
       continue
     fi
-    if</span> <span class="o">[</span> <span class="nt">-f</span> <span class="nv">$i</span>.sha256 <span class="o">]</span><span class="p">;</span> <span class="k">then
-      if</span> <span class="o">[</span> <span class="s2">"</span><span class="k">$(</span><span class="nb">cat</span> <span class="nv">$i</span>.sha256<span class="k">)</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"</span><span class="k">$(</span>shasum <span class="nt">-a</span> 256 <span class="nv">$i</span><span class="k">)</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
-        </span><span class="nb">echo</span> <span class="nv">$i</span>.sha256 present and correct
+    if</span> <span class="o">[</span> <span class="nt">-f</span> <span class="nv">$i</span>.sha512 <span class="o">]</span><span class="p">;</span> <span class="k">then
+      if</span> <span class="o">[</span> <span class="s2">"</span><span class="k">$(</span><span class="nb">cat</span> <span class="nv">$i</span>.sha512<span class="k">)</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"</span><span class="k">$(</span>shasum <span class="nt">-a</span> 512 <span class="nv">$i</span><span class="k">)</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
+        </span><span class="nb">echo</span> <span class="nv">$i</span>.sha512 present and correct
       <span class="k">else
-        </span><span class="nb">echo</span> <span class="nv">$i</span>.sha256 does not match
+        </span><span class="nb">echo</span> <span class="nv">$i</span>.sha512 does not match
       <span class="k">fi
     else
-      </span>shasum <span class="nt">-a</span> 256 <span class="nv">$i</span> <span class="o">&gt;</span> <span class="nv">$i</span>.sha256
-      <span class="nb">echo</span> <span class="nv">$i</span>.sha256 created
+      </span>shasum <span class="nt">-a</span> 512 <span class="nv">$i</span> <span class="o">&gt;</span> <span class="nv">$i</span>.sha512
+      <span class="nb">echo</span> <span class="nv">$i</span>.sha512 created
     <span class="k">fi
   done</span>
 <span class="o">}</span>
@@ -969,7 +994,7 @@ The artifacts to be voted on are located here:
 https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-X.Y.Z-rcN/
 
 The hashes of the artifacts are as follows:
-src.tar.gz.sha256 XXXX
+src.tar.gz.sha512 XXXX
 
 A staged Maven repository is available for review at:
 https://repository.apache.org/content/repositories/orgapachecalcite-NNNN
@@ -1035,7 +1060,7 @@ out to mirrors, and other tasks.</p>
 <p>Choose a release date.
 This is based on the time when you expect to announce the release.
 This is usually a day after the vote closes.
-Remember that UTC date changes at 4pm Pacific time.</p>
+Remember that UTC date changes at 4 pm Pacific time.</p>
 
 <h3 id="publishing-directly-in-your-environment">Publishing directly in your environment:</h3>
 
@@ -1090,6 +1115,13 @@ address. You can use
 <a href="https://mail-archives.apache.org/mod_mbox/www-announce/201906.mbox/%3CCA%2BEpF8tcJcZ41rVuwJODJmyRy-qAxZUQm9OxKsoDi07c2SKs_A%40mail.gmail.com%3E">the 1.20.0 announcement</a>
 as a template. Be sure to include a brief description of the project.</p>
 
+<p>Increase the <code class="highlighter-rouge">calcite.version</code> value in <code class="highlighter-rouge">/gradle.properties</code> and commit &amp; push
+the change with the message “Prepare for next development iteration”
+(see <a href="https://github.com/apache/calcite/commit/ed1470a3ea53a78c667354a5ec066425364eca73">ed1470a</a> as a reference)</p>
+
+<p>Re-open the <code class="highlighter-rouge">master</code> branch. Send an email to <a href="mailto:dev@calcite.apache.org">dev@calcite.apache.org</a> notifying
+that <code class="highlighter-rouge">master</code> code freeze is over and commits can resume.</p>
+
 <h2 id="publish-the-web-site">Publishing the web site</h2>
 
 <p>See instructions in
diff --git a/docs/innodb_adapter.html b/docs/innodb_adapter.html
new file mode 100644
index 0000000..d73b417
--- /dev/null
+++ b/docs/innodb_adapter.html
@@ -0,0 +1,785 @@
+<!DOCTYPE HTML>
+<html lang="en-US">
+<head>
+  <meta charset="UTF-8">
+  <title>InnoDB adapter</title>
+  <meta name="viewport" content="width=device-width,initial-scale=1">
+  <meta name="generator" content="Jekyll v3.7.3">
+  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
+  <link rel="stylesheet" href="/css/screen.css">
+  <link rel="icon" type="image/x-icon" href="/favicon.ico">
+  <!--[if lt IE 9]>
+  <script src="/js/html5shiv.min.js"></script>
+  <script src="/js/respond.min.js"></script>
+  <![endif]-->
+</head>
+
+
+<body class="wrap">
+  <header role="banner">
+  <div class="grid">
+    <div class="unit center-on-mobiles">
+      <h1>
+        <a href="/">
+          <span class="sr-only">Apache Calcite</span>
+          <img src="/img/logo.svg" alt="Calcite Logo">
+        </a>
+      </h1>
+    </div>
+    <nav class="main-nav">
+      <ul>
+  <li class="">
+    <a href="/">Home</a>
+  </li>
+  <li class="">
+    <a href="/downloads/">Download</a>
+  </li>
+  <li class="">
+    <a href="/community/">Community</a>
+  </li>
+  <li class="">
+    <a href="/develop/">Develop</a>
+  </li>
+  <li class="">
+    <a href="/news/">News</a>
+  </li>
+  <li class="current">
+    <a href="/docs/">Docs</a>
+  </li>
+</ul>
+
+    </nav>
+  </div>
+</header>
+
+
+    <section class="docs">
+    <div class="grid">
+
+      <div class="docs-nav-mobile unit whole show-on-mobiles">
+  <select onchange="if (this.value) window.location.href=this.value">
+    <option value="">Navigate the docs…</option>
+        <optgroup label="Overview">      
+    </optgroup>
+    <optgroup label="Advanced">      
+    </optgroup>
+    <optgroup label="Avatica">      
+    </optgroup>
+    <optgroup label="Reference">      
+    </optgroup>
+    <optgroup label="Meta">      
+    </optgroup>
+
+  </select>
+</div>
+
+
+      <div class="unit four-fifths">
+        <article>
+          <h1>InnoDB adapter</h1>
+          <!--
+
+-->
+
+<p><a href="https://www.mysql.com/">MySQL</a> is the most popular Open Source SQL
+database management system, is developed, distributed, and supported
+by Oracle Corporation. InnoDB is a general-purpose storage engine that
+balances high reliability and high performance in MySQL, since 5.6
+InnoDB has become the default MySQL storage engine.</p>
+
+<p>Calcite’s InnoDB adapter allows you to query the data based on InnoDB
+data files directly as illustrated below, data files are also known as
+<code class="highlighter-rouge">.ibd</code> files. It leverages the
+<a href="https://github.com/alibaba/innodb-java-reader">innodb-java-reader</a>. This
+adapter is different from JDBC adapter which maps a schema in a JDBC
+data source and requires a MySQL server to serve response.</p>
+
+<p>With <code class="highlighter-rouge">.ibd</code> files and the corresponding DDLs, the InnoDB adapter acts
+as a simple “MySQL server”: it accepts SQL queries and attempts to
+compile each query based on InnoDB file access APIs provided by
+<a href="https://github.com/alibaba/innodb-java-reader">innodb-java-reader</a>.
+It projects, filters and sorts directly in the InnoDB data files where
+possible.</p>
+
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="w">                      </span><span class="err">SQL</span><span class="w"> </span><span class="err">query</span><span class="w">
+                       </span><span class="err">|</span><span class="w">     </span><span class="err">|</span><span class="w">
+                      </span><span class="err">/</span><span class="w">       </span><span class="err">\</span><span class="w">
+             </span><span class="err">---------</span><span class="w">         </span><span class="err">---------</span><span class="w">
+            </span><span class="err">|</span><span class="w">                           </span><span class="err">|</span><span class="w">
+            </span><span class="err">v</span><span class="w">                           </span><span class="err">v</span><span class="w">
+</span><span class="err">+-------------------------+</span><span class="w">  </span><span class="err">+------------------------+</span><span class="w">
+</span><span class="err">|</span><span class="w">      </span><span class="err">MySQL</span><span class="w"> </span><span class="err">Server</span><span class="w">       </span><span class="err">|</span><span class="w">  </span><span class="err">|</span><span class="w"> </span><span class="err">Calcite</span><span class="w"> </span><span class="err">InnoDB</span><span class="w"> </span><span class="err">Adapter</span><span class="w"> </span><span class="err">|</span><span class="w">
+</span><span class="err">|</span><span class="w">                         </span><span class="err">|</span><span class="w">  </span><span class="err">+------------------------+</span><span class="w">
+</span><span class="err">|</span><span class="w"> </span><span class="err">+---------------------+</span><span class="w"> </span><span class="err">|</span><span class="w">    </span><span class="err">+--------------------+</span><span class="w">
+</span><span class="err">|</span><span class="w"> </span><span class="err">|InnoDB</span><span class="w"> </span><span class="err">Storage</span><span class="w"> </span><span class="err">Engine|</span><span class="w"> </span><span class="err">|</span><span class="w">    </span><span class="err">|</span><span class="w"> </span><span class="err">innodb-java-reader</span><span class="w"> </span><span class="err">|</span><span class="w">
+</span><span class="err">|</span><span class="w"> </span><span class="err">+---------------------+</span><span class="w"> </span><span class="err">|</span><span class="w">    </span><span class="err">+--------------------+</span><span class="w">
+</span><span class="err">+-------------------------+</span><span class="w">
+
+</span><span class="err">--------------------</span><span class="w"> </span><span class="err">File</span><span class="w"> </span><span class="err">System</span><span class="w"> </span><span class="err">--------------------</span><span class="w">
+
+	</span><span class="err">+------------+</span><span class="w">      </span><span class="err">+-----+</span><span class="w">
+	</span><span class="err">|</span><span class="w"> </span><span class="err">.ibd</span><span class="w"> </span><span class="err">files</span><span class="w"> </span><span class="err">|</span><span class="w"> </span><span class="err">...</span><span class="w">  </span><span class="err">|</span><span class="w">     </span><span class="err">|</span><span class="w">    </span><span class="err">InnoDB</span><span class="w"> </span><span class="err">Data</span><span class="w"> </span><span cla [...]
+	</span><span class="err">+------------+</span><span class="w">      </span><span class="err">+-----+</span></code></pre></figure>
+
+<p>What’s more, with DDL statements, the adapter is “index aware”. It
+leverages rules to choose the appropriate index to scan, for example,
+using primary key or secondary keys to look up data, then it tries to
+push down some conditions into storage engine. The adapter also
+supports hints, so that users can tell the optimizer to use a
+particular index.</p>
+
+<p>A basic example of a model file is given below, this schema reads from
+a MySQL “scott” database:</p>
+
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="w">
+  </span><span class="s2">"version"</span><span class="p">:</span><span class="w"> </span><span class="s2">"1.0"</span><span class="p">,</span><span class="w">
+  </span><span class="s2">"defaultSchema"</span><span class="p">:</span><span class="w"> </span><span class="s2">"scott"</span><span class="p">,</span><span class="w">
+  </span><span class="s2">"schemas"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
+    </span><span class="p">{</span><span class="w">
+      </span><span class="s2">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"scott"</span><span class="p">,</span><span class="w">
+      </span><span class="s2">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"custom"</span><span class="p">,</span><span class="w">
+      </span><span class="s2">"factory"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org.apache.calcite.adapter.innodb.InnodbSchemaFactory"</span><span class="p">,</span><span class="w">
+      </span><span class="s2">"operand"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
+        </span><span class="s2">"sqlFilePath"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="s2">"/path/scott.sql"</span><span class="w"> </span><span class="p">],</span><span class="w">
+        </span><span class="s2">"ibdDataFileBasePath"</span><span class="p">:</span><span class="w"> </span><span class="s2">"/usr/local/mysql/data/scott"</span><span class="w">
+      </span><span class="p">}</span><span class="w">
+    </span><span class="p">}</span><span class="w">
+  </span><span class="p">]</span><span class="w">
+</span><span class="p">}</span></code></pre></figure>
+
+<p><code class="highlighter-rouge">sqlFilePath</code> is a list of DDL files, you can generate table
+definitions by executing `mysqldump -d -u<username> -p<password> -h</password></username></p>
+<hostname> <dbname>` in command-line.
+
+The file content of `/path/scott.sql` is as follows:
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">CREATE TABLE <span class="sb">`</span>DEPT<span class="sb">`</span><span class="o">(</span>
+    <span class="sb">`</span>DEPTNO<span class="sb">`</span> TINYINT NOT NULL,
+    <span class="sb">`</span>DNAME<span class="sb">`</span> VARCHAR<span class="o">(</span>50<span class="o">)</span> NOT NULL,
+    <span class="sb">`</span>LOC<span class="sb">`</span> VARCHAR<span class="o">(</span>20<span class="o">)</span>,
+    UNIQUE KEY <span class="sb">`</span>DEPT_PK<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>DEPTNO<span class="sb">`</span><span class="o">)</span>
+<span class="o">)</span> <span class="nv">ENGINE</span><span class="o">=</span>InnoDB DEFAULT <span class="nv">CHARSET</span><span class="o">=</span>latin1<span class="p">;</span>
+
+CREATE TABLE <span class="sb">`</span>EMP<span class="sb">`</span><span class="o">(</span>
+    <span class="sb">`</span>EMPNO<span class="sb">`</span> INT<span class="o">(</span>11<span class="o">)</span> NOT NULL,
+    <span class="sb">`</span>ENAME<span class="sb">`</span> VARCHAR<span class="o">(</span>100<span class="o">)</span> NOT NULL,
+    <span class="sb">`</span>JOB<span class="sb">`</span> VARCHAR<span class="o">(</span>15<span class="o">)</span> NOT NULL,
+    <span class="sb">`</span>AGE<span class="sb">`</span> SMALLINT,
+    <span class="sb">`</span>MGR<span class="sb">`</span> BIGINT,
+    <span class="sb">`</span>HIREDATE<span class="sb">`</span> DATE,
+    <span class="sb">`</span>SAL<span class="sb">`</span> DECIMAL<span class="o">(</span>8,2<span class="o">)</span> NOT NULL,
+    <span class="sb">`</span>COMM<span class="sb">`</span> DECIMAL<span class="o">(</span>6,2<span class="o">)</span>,
+    <span class="sb">`</span>DEPTNO<span class="sb">`</span> TINYINT,
+    <span class="sb">`</span>EMAIL<span class="sb">`</span> VARCHAR<span class="o">(</span>100<span class="o">)</span> DEFAULT NULL,
+    <span class="sb">`</span>CREATE_DATETIME<span class="sb">`</span> DATETIME,
+    <span class="sb">`</span>CREATE_TIME<span class="sb">`</span> TIME,
+    <span class="sb">`</span>UPSERT_TIME<span class="sb">`</span> TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+    PRIMARY KEY <span class="o">(</span><span class="sb">`</span>EMPNO<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>ENAME_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>ENAME<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>HIREDATE_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>HIREDATE<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>CREATE_DATETIME_JOB_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>CREATE_DATETIME<span class="sb">`</span>, <span class="sb">`</span>JOB<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>CREATE_TIME_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>CREATE_TIME<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>UPSERT_TIME_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>UPSERT_TIME<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>DEPTNO_JOB_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>DEPTNO<span class="sb">`</span>, <span class="sb">`</span>JOB<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>DEPTNO_SAL_COMM_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>DEPTNO<span class="sb">`</span>, <span class="sb">`</span>SAL<span class="sb">`</span>, <span class="sb">`</span>COMM<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>DEPTNO_MGR_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>DEPTNO<span class="sb">`</span>, <span class="sb">`</span>MGR<span class="sb">`</span><span class="o">)</span>,
+    KEY <span class="sb">`</span>AGE_KEY<span class="sb">`</span> <span class="o">(</span><span class="sb">`</span>AGE<span class="sb">`</span><span class="o">)</span>
+<span class="o">)</span> <span class="nv">ENGINE</span><span class="o">=</span>InnoDB DEFAULT <span class="nv">CHARSET</span><span class="o">=</span>utf8mb4<span class="p">;</span></code></pre></figure>
+
+
+ibdDataFileBasePath is the parent file path of `.ibd` files.
+
+Assuming the model file is stored as `model.json`, you can connect to
+InnoDB data file to perform query via
+[sqlline](https://github.com/julianhyde/sqlline) as follows:
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="o">!</span>connect jdbc:calcite:model<span class="o">=</span>model.json admin admin</code></pre></figure>
+
+
+We can query all employees by writing standard SQL:
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno, ename, job, age, mgr from <span class="s2">"EMP"</span><span class="p">;</span>
++-------+--------+-----------+-----+------+
+| EMPNO | ENAME  |    JOB    | AGE | MGR  |
++-------+--------+-----------+-----+------+
+| 7369  | SMITH  | CLERK     | 30  | 7902 |
+| 7499  | ALLEN  | SALESMAN  | 24  | 7698 |
+| 7521  | WARD   | SALESMAN  | 41  | 7698 |
+| 7566  | JONES  | MANAGER   | 28  | 7839 |
+| 7654  | MARTIN | SALESMAN  | 27  | 7698 |
+| 7698  | BLAKE  | MANAGER   | 38  | 7839 |
+| 7782  | CLARK  | MANAGER   | 32  | 7839 |
+| 7788  | SCOTT  | ANALYST   | 45  | 7566 |
+| 7839  | KING   | PRESIDENT | 22  | null |
+| 7844  | TURNER | SALESMAN  | 54  | 7698 |
+| 7876  | ADAMS  | CLERK     | 35  | 7788 |
+| 7900  | JAMES  | CLERK     | 40  | 7698 |
+| 7902  | FORD   | ANALYST   | 28  | 7566 |
+| 7934  | MILLER | CLERK     | 32  | 7782 |
++-------+--------+-----------+-----+------+</code></pre></figure>
+
+
+While executing this query, the InnoDB adapter scans the InnoDB data
+file `EMP.ibd` using primary key, also known as clustering B+ tree
+index in MySQL, and is able to push down projection to underlying
+storage engine. Projection can reduce the size of data fetched from
+the storage engine.
+
+We can look up one employee by filtering. The InnoDB adapter retrieves
+all indexes through DDL file provided in `model.json`.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno, ename, job, age, mgr from <span class="s2">"EMP"</span> where empno <span class="o">=</span> 7782<span class="p">;</span>
++-------+-------+---------+-----+------+
+| EMPNO | ENAME |   JOB   | AGE | MGR  |
++-------+-------+---------+-----+------+
+| 7782  | CLARK | MANAGER | 32  | 7839 |
++-------+-------+---------+-----+------+</code></pre></figure>
+
+
+The InnoDB adapter recognizes that `empno` is the primary key and
+performs a point-lookup by using the clustering index instead of a
+full table scan.
+
+We can also do range queries on the primary key:
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno, ename, job, age, mgr from <span class="s2">"EMP"</span> where empno <span class="o">&gt;</span> 7782 and empno &lt; 7900<span class="p">;</span></code></pre></figure>
+
+
+Note that such query with acceptable range is usually efficient in
+MySQL with InnoDB storage engine, because for clustering B+ tree
+index, records close in index are close in data file, which is good
+for scanning.
+
+We can look up employee by secondary key. For example, in the
+following query, the filtering condition is a field `ename` of type
+`VARCHAR`.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno, ename, job, age, mgr from <span class="s2">"EMP"</span> where ename <span class="o">=</span> <span class="s1">'smith'</span><span class="p">;</span>
++-------+-------+-------+-----+------+
+| EMPNO | ENAME |  JOB  | AGE | MGR  |
++-------+-------+-------+-----+------+
+| 7369  | SMITH | CLERK | 30  | 7902 |
++-------+-------+-------+-----+------+</code></pre></figure>
+
+
+The InnoDB adapter works well on almost all the commonly used data
+types in MySQL, for more information on supported data types, please
+refer to
+[innodb-java-reader](https://github.com/alibaba/innodb-java-reader#3-features).
+
+We can query by composite key. For example, given secondary index of
+`DEPTNO_MGR_KEY`.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno, ename, job, age, mgr from <span class="s2">"EMP"</span> where deptno <span class="o">=</span> 20 and mgr <span class="o">=</span> 7566<span class="p">;</span>
++-------+-------+---------+-----+------+
+| EMPNO | ENAME |   JOB   | AGE | MGR  |
++-------+-------+---------+-----+------+
+| 7788  | SCOTT | ANALYST | 45  | 7566 |
+| 7902  | FORD  | ANALYST | 28  | 7566 |
++-------+-------+---------+-----+------+</code></pre></figure>
+
+
+The InnoDB adapter leverages the matched key `DEPTNO_MGR_KEY` to push
+down filtering condition of `deptno = 20 and mgr = 7566`.
+
+In some cases, only part of the conditions can be pushed down since
+there is a limitation in the underlying storage engine API; other
+conditions remain in the rest of the plan. Given the following SQL,
+only `deptno = 20` is pushed down.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="k">select </span>empno, ename, job, age, mgr from <span class="s2">"EMP"</span> where deptno <span class="o">=</span> 20 and upsert_time <span class="o">&gt;</span> <span class="s1">'2018-01-01 00:00:00'</span><span class="p">;</span></code></pre></figure>
+
+
+`innodb-java-reader` only supports range queries with lower and upper
+bound using an index, not fully `Index Condition Pushdown (ICP)`. The
+storage engine returns a range of rows and Calcite evaluates the rest
+of `WHERE` condition from the rows fetched.
+
+For the following SQL, there are multiple indexes satisfying the
+left-prefix index rule: the possible indexes are `DEPTNO_JOB_KEY`,
+`DEPTNO_SAL_COMM_KEY` and `DEPTNO_MGR_KEY`. The InnoDB adapter chooses
+one of them according to the ordinal defined in DDL; only the `deptno
+= 20` condition is pushed down, leaving the rest of `WHERE` condition
+handled by Calcite's built-in execution engine.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno, deptno, sal from <span class="s2">"EMP"</span> where deptno <span class="o">=</span> 20 and sal <span class="o">&gt;</span> 2000<span class="p">;</span>
++-------+--------+---------+
+| EMPNO | DEPTNO |   SAL   |
++-------+--------+---------+
+| 7788  | 20     | 3000.00 |
+| 7902  | 20     | 3000.00 |
+| 7566  | 20     | 2975.00 |
++-------+--------+---------+</code></pre></figure>
+
+
+Accessing rows through secondary key requires scanning by secondary
+index and retrieving records back to clustering index in InnoDB, for a
+"big" scan, that would introduce many random I/O operations, so
+performance is usually not good enough. Note that the query above can
+be more performant by using `EPTNO_SAL_COMM_KEY` index, because
+covering index does not need to retrieve back to clustering index. We
+can force using `DEPTNO_SAL_COMM_KEY` index by hint as follows.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno, deptno, sal from <span class="s2">"EMP"</span>/<span class="k">*</span>+ index<span class="o">(</span>DEPTNO_SAL_COMM_KEY<span class="o">)</span> <span class="k">*</span>/ where deptno <span class="o">=</span> 20 and sal <span class="o">&gt;</span> 2000<span class="p">;</span></code></pre></figure>
+
+
+Hint can be configured in `SqlToRelConverter`, to enable hint, you
+should register `index` HintStrategy on `TableScan` in
+`SqlToRelConverter.ConfigBuilder`. Index hint takes effect on the base
+`TableScan` relational node, if there are conditions matching the
+index, index condition can be pushed down as well. For the following SQL,
+although none of the indexes can be used, but by leveraging covering
+index, the performance is better than full table scan, we can force to
+use `DEPTNO_MGR_KEY` to scan in secondary index.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>empno,mgr from <span class="s2">"EMP"</span>/<span class="k">*</span>+ index<span class="o">(</span>DEPTNO_MGR_KEY<span class="o">)</span> <span class="k">*</span>/ where mgr <span class="o">=</span> 7839<span class="p">;</span></code></pre></figure>
+
+
+Ordering can be pushed down if it matches the natural collation of the index used.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash">sqlline&gt; <span class="k">select </span>deptno,ename,hiredate from <span class="s2">"EMP"</span> where hiredate &lt; <span class="s1">'2020-01-01'</span> order by hiredate desc<span class="p">;</span>
++--------+--------+------------+
+| DEPTNO | ENAME  |  HIREDATE  |
++--------+--------+------------+
+| 20     | ADAMS  | 1987-05-23 |
+| 20     | SCOTT  | 1987-04-19 |
+| 10     | MILLER | 1982-01-23 |
+| 20     | FORD   | 1981-12-03 |
+| 30     | JAMES  | 1981-12-03 |
+| 10     | KING   | 1981-11-17 |
+| 30     | MARTIN | 1981-09-28 |
+| 30     | TURNER | 1981-09-08 |
+| 10     | CLARK  | 1981-06-09 |
+| 30     | WARD   | 1981-02-22 |
+| 30     | ALLEN  | 1981-02-20 |
+| 20     | JONES  | 1981-02-04 |
+| 30     | BLAKE  | 1981-01-05 |
+| 20     | SMITH  | 1980-12-17 |
++--------+--------+------------+</code></pre></figure>
+
+
+## About time zone
+
+MySQL converts `TIMESTAMP` values from the current time zone to UTC
+for storage, and back from UTC to the current time zone for
+retrieval. So in this adapter, MySQL's `TIMESTAMP` is mapped to
+Calcite's `TIMESTAMP WITH LOCAL TIME ZONE`. The per-session time zone
+setting can be configured in Calcite connection config `timeZone`,
+which tells the MySQL server which time zone the `TIMESTAMP` value was
+in. Currently the InnoDB adapter cannot pass the property to the
+underlying storage engine, but you can specify `timeZone` in
+`model.json` like below. Note that you only need to specify the
+property if `timeZone` is set in connection config and it is different
+from system default time zone where the InnoDB adapter runs.
+
+
+<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="o">{</span>
+  <span class="s2">"version"</span>: <span class="s2">"1.0"</span>,
+  <span class="s2">"defaultSchema"</span>: <span class="s2">"test"</span>,
+  <span class="s2">"schemas"</span>: <span class="o">[</span>
+    <span class="o">{</span>
+      <span class="s2">"name"</span>: <span class="s2">"test"</span>,
+      <span class="s2">"type"</span>: <span class="s2">"custom"</span>,
+      <span class="s2">"factory"</span>: <span class="s2">"org.apache.calcite.adapter.innodb.InnodbSchemaFactory"</span>,
+      <span class="s2">"operand"</span>: <span class="o">{</span>
+        <span class="s2">"sqlFilePath"</span>: <span class="o">[</span><span class="s2">"src/test/resources/data_types.sql"</span><span class="o">]</span>,
+        <span class="s2">"ibdDataFileBasePath"</span>: <span class="s2">"src/test/resources/data"</span>,
+        <span class="s2">"timeZone"</span>: <span class="s2">"America/Los_Angeles"</span>
+      <span class="o">}</span>
+    <span class="o">}</span>
+  <span class="o">]</span>
+<span class="o">}</span></code></pre></figure>
+
+
+## Limitations
+
+`innodb-java-reader` has some prerequisites for `.ibd` files.
+
+* The `COMPACT` and `DYNAMIC` row formats are supported. `COMPRESSED`,
+  `REDUNDANT` and `FIXED` are not supported.
+* `innodb_file_per_table` should set to `ON`, `innodb_file_per_table`
+  is enabled by default in MySQL 5.6 and higher.
+* Page size should set to `16K` which is also the default value.
+
+For more information, please refer to
+[prerequisites](https://github.com/alibaba/innodb-java-reader#2-prerequisites).
+
+In terms of data consistency, you can think of the adapter as a simple
+MySQL server, with the ability to query directly through InnoDB data
+file, dump data by offloading from MySQL. If pages are not flushed
+from InnoDB Buffer Pool to disk, then the result may be inconsistent
+(the LSN in `.ibd` file might smaller than in-memory pages). InnoDB
+leverages write ahead log in terms of performance, so there is no
+command available to flush all dirty pages. Only internal mechanism
+manages when and where to persist pages to disk, like Page Cleaner
+thread, adaptive flushing, etc.
+
+Currently the InnoDB adapter is not aware of row count and cardinality
+of a `.ibd` data file, so it relies on simple rules to perform
+optimization. If, in future, the underlying storage engine can provide
+such metrics and metadata, this could be integrated into Calcite by
+leveraging cost based optimization.
+</dbname></hostname>
+
+          
+
+
+
+
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+  
+  
+
+
+        </article>
+      </div>
+
+      <div class="unit one-fifth hide-on-mobiles">
+  <aside>
+    
+    <h4>Overview</h4>
+    
+
+<ul>
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/index.html">Background</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/tutorial.html">Tutorial</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/algebra.html">Algebra</a></li>
+
+
+</ul>
+
+    
+    <h4>Advanced</h4>
+    
+
+<ul>
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/adapter.html">Adapters</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/spatial.html">Spatial</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/stream.html">Streaming</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/materialized_views.html">Materialized Views</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/lattice.html">Lattices</a></li>
+
+
+</ul>
+
+    
+    <h4>Avatica</h4>
+    
+
+<ul>
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/avatica_overview.html">Overview</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/avatica_roadmap.html">Roadmap</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/avatica_json_reference.html">JSON Reference</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/avatica_protobuf_reference.html">Protobuf Reference</a></li>
+
+
+</ul>
+
+    
+    <h4>Reference</h4>
+    
+
+<ul>
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/reference.html">SQL language</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/model.html">JSON/YAML models</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/howto.html">HOWTO</a></li>
+
+
+</ul>
+
+    
+    <h4>Meta</h4>
+    
+
+<ul>
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/history.html">History</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/docs/powered_by.html">Powered by Calcite</a></li>
+
+
+  
+  
+  
+  
+
+  
+
+  <li class=""><a href="/javadocAggregate">API</a></li>
+
+
+</ul>
+
+    
+  </aside>
+</div>
+
+
+      <div class="clear"></div>
+
+    </div>
+  </section>
+
+
+  <footer role="contentinfo">
+  <div id="poweredby">
+    <a href="http://www.apache.org/">
+      <span class="sr-only">Apache</span>
+      <img src="/img/feather.png" width="190" height="77" alt="Apache Logo"></a>
+  </div>
+  <div id="copyright">
+  <p>The contents of this website are Copyright &copy;&nbsp;2021
+     <a href="https://www.apache.org/">Apache Software Foundation</a>
+     under the terms of
+     the <a href="https://www.apache.org/licenses/">
+     Apache&nbsp;License&nbsp;v2</a>. Apache Calcite and its logo are
+     trademarks of the Apache Software Foundation.</p>
+  </div>
+</footer>
+
+  <script>
+  var anchorForId = function (id) {
+    var anchor = document.createElement("a");
+    anchor.className = "header-link";
+    anchor.href      = "#" + id;
+    anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
+    anchor.title = "Permalink";
+    return anchor;
+  };
+
+  var linkifyAnchors = function (level, containingElement) {
+    var headers = containingElement.getElementsByTagName("h" + level);
+    for (var h = 0; h < headers.length; h++) {
+      var header = headers[h];
+
+      if (typeof header.id !== "undefined" && header.id !== "") {
+        header.appendChild(anchorForId(header.id));
+      }
+    }
+  };
+
+  document.onreadystatechange = function () {
+    if (this.readyState === "complete") {
+      var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
+      if (!contentBlock) {
+        return;
+      }
+      for (var level = 1; level <= 6; level++) {
+        linkifyAnchors(level, contentBlock);
+      }
+    }
+  };
+</script>
+
+
+</body>
+</html>
diff --git a/docs/kafka_adapter.html b/docs/kafka_adapter.html
index 6ad7444..15f64ea 100644
--- a/docs/kafka_adapter.html
+++ b/docs/kafka_adapter.html
@@ -89,7 +89,7 @@
 
 <p>The Kafka adapter exposes an Apache Kafka topic as a STREAM table, so it can be queried using
 <a href="/docs/stream.html">Calcite Stream SQL</a>. Note that the adapter will not attempt to scan all topics,
-instead users need to configure tables manually, one Kafka stream table is mapping to one Kafka topic.</p>
+instead, users need to configure tables manually, one Kafka stream table is mapping to one Kafka topic.</p>
 
 <p>A basic example of a model file is given below:</p>
 
@@ -141,7 +141,7 @@ sqlline&gt; <span class="o">!</span>connect jdbc:calcite:model<span class="o">=<
 
 <p><code class="highlighter-rouge">sqlline</code> will now accept SQL queries which access your Kafka topics.</p>
 
-<p>With the Kafka table configured in above model. We can run a simple query to fetch messages:</p>
+<p>With the Kafka table configured in the above model. We can run a simple query to fetch messages:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">sqlline</span><span class="o">&gt;</span> <span class="k">SELECT</span> <span class="n">STREAM</span> <span class="o">*</span>
          <span class="k">FROM</span> <span class="n">KAFKA</span><span class="p">.</span><span class="k">TABLE_NAME</span><span class="p">;</span>
diff --git a/docs/lattice.html b/docs/lattice.html
index e3ec7ce..cd48f5b 100644
--- a/docs/lattice.html
+++ b/docs/lattice.html
@@ -118,7 +118,7 @@ and assigning aliases to the column names (it more convenient than
 inventing a new language to represent relationships, join conditions
 and cardinalities).</p>
 
-<p>Unlike regular SQL, order is important. If you put A before B in the
+<p>Unlike regular SQL, the order is important. If you put A before B in the
 FROM clause, and make a join between A and B, you are saying that
 there is a many-to-one foreign key relationship from A to B. (E.g. in
 the example lattice, the Sales fact table occurs before the Time
@@ -273,7 +273,7 @@ populating materialized views. Let’s run a query and check out its plan:</p>
 <span class="o">|</span>     <span class="n">EnumerableTableScan</span><span class="p">(</span><span class="k">table</span><span class="o">=</span><span class="p">[[</span><span class="n">adhoc</span><span class="p">,</span> <span class="n">m</span><span class="err">{</span><span class="mi">16</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">27</span><span class="p">,</span> <span class="mi">31</span><span class="p">,</span> <span class=" [...]
 <span class="o">+</span><span class="c1">--------------------------------------------------------------------------------+</span></code></pre></figure>
 
-<p>The query gives the right answer, but plan is somewhat surprising.
+<p>The query gives the right answer, but the plan is somewhat surprising.
 It doesn’t read the <code class="highlighter-rouge">sales_fact_1997</code> or <code class="highlighter-rouge">time_by_day</code> tables, but instead
 reads from a table called <code class="highlighter-rouge">m{16, 17, 27, 31, 32, 36, 37}</code>. This is one of the
 tiles created at the start of the connection.</p>
diff --git a/docs/materialized_views.html b/docs/materialized_views.html
index a1975a5..80a9947 100644
--- a/docs/materialized_views.html
+++ b/docs/materialized_views.html
@@ -127,7 +127,7 @@ The Cassandra adapter automatically exposes these materialized views to Calcite.
 <h3 id="view-based-query-rewriting">View-based query rewriting</h3>
 
 <p>View-based query rewriting aims to take an input query which can be answered using a preexisting view and rewrite the query to make use of the view.
-Currently Calcite has two implementations of view-based query rewriting.</p>
+Currently, Calcite has two implementations of view-based query rewriting.</p>
 
 <h4 id="substitution-via-rules-transformation">Substitution via rules transformation</h4>
 
@@ -155,7 +155,7 @@ views, e.g., views with an arbitrary number of join operators.</p>
 The rule can rewrite expressions containing arbitrary chains of Join, Filter, and Project operators.
 Additionally, the rule can rewrite expressions rooted at an Aggregate operator, rolling aggregations up if necessary. In turn, it can also produce rewritings using Union operators if the query can be partially answered from a view.</p>
 
-<p>To produce a larger number of rewritings, the rule relies on information exposed as constraints defined over the database tables, e.g., <em>foreign keys</em>, <em>primary keys</em>, <em>unique keys</em> or <em>not null</em>.</p>
+<p>To produce a larger number of rewritings, the rule relies on the information exposed as constraints defined over the database tables, e.g., <em>foreign keys</em>, <em>primary keys</em>, <em>unique keys</em> or <em>not null</em>.</p>
 
 <h5 id="rewriting-coverage">Rewriting coverage</h5>
 
diff --git a/docs/model.html b/docs/model.html
index f8de461..bfbda4a 100644
--- a/docs/model.html
+++ b/docs/model.html
@@ -534,7 +534,7 @@ if non-static, the class must have a public constructor with no parameters.</p>
 in the class.</p>
 
 <p>If <code class="highlighter-rouge">methodName</code> is not specified, Calcite looks for a method called “eval”, and
-if found, creates a a table macro or scalar function.
+if found, creates a table macro or scalar function.
 It also looks for methods “init”, “add”, “merge”, “result”, and
 if found, creates an aggregate function.</p>
 
diff --git a/docs/reference.html b/docs/reference.html
index 387ba1a..517bfe2 100644
--- a/docs/reference.html
+++ b/docs/reference.html
@@ -158,28 +158,28 @@ form.</p>
       <span class="k">statement</span> <span class="p">[</span> <span class="s1">';'</span> <span class="k">statement</span> <span class="p">]</span><span class="o">*</span> <span class="p">[</span> <span class="s1">';'</span> <span class="p">]</span>
 
 <span class="n">setStatement</span><span class="p">:</span>
-      <span class="p">[</span> <span class="k">ALTER</span> <span class="p">(</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">)</span> <span class="p">]</span> <span class="k">SET</span> <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
+      <span class="p">[</span> <span class="k">ALTER</span> <span class="err">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="err">}</span> <span class="p">]</span> <span class="k">SET</span> <span class="n">identifier</span> <span class="s1">'='</span> <span class="n">expression</span>
 
 <span class="n">resetStatement</span><span class="p">:</span>
-      <span class="p">[</span> <span class="k">ALTER</span> <span class="p">(</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">)</span> <span class="p">]</span> <span class="k">RESET</span> <span class="n">identifier</span>
-  <span class="o">|</span>   <span class="p">[</span> <span class="k">ALTER</span> <span class="p">(</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="p">)</span> <span class="p">]</span> <span class="k">RESET</span> <span class="k">ALL</span>
+      <span class="p">[</span> <span class="k">ALTER</span> <span class="err">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="err">}</span> <span class="p">]</span> <span class="k">RESET</span> <span class="n">identifier</span>
+  <span class="o">|</span>   <span class="p">[</span> <span class="k">ALTER</span> <span class="err">{</span> <span class="k">SYSTEM</span> <span class="o">|</span> <span class="k">SESSION</span> <span class="err">}</span> <span class="p">]</span> <span class="k">RESET</span> <span class="k">ALL</span>
 
 <span class="k">explain</span><span class="p">:</span>
       <span class="k">EXPLAIN</span> <span class="n">PLAN</span>
       <span class="p">[</span> <span class="k">WITH</span> <span class="k">TYPE</span> <span class="o">|</span> <span class="k">WITH</span> <span class="k">IMPLEMENTATION</span> <span class="o">|</span> <span class="k">WITHOUT</span> <span class="k">IMPLEMENTATION</span> <span class="p">]</span>
       <span class="p">[</span> <span class="k">EXCLUDING</span> <span class="n">ATTRIBUTES</span> <span class="o">|</span> <span class="k">INCLUDING</span> <span class="p">[</span> <span class="k">ALL</span> <span class="p">]</span> <span class="n">ATTRIBUTES</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="k">AS</span> <span class="n">JSON</span> <span class="o">|</span> <span class="k">AS</span> <span class="n">XML</span> <span class="p">]</span>
-      <span class="k">FOR</span> <span class="p">(</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="p">)</span>
+      <span class="p">[</span> <span class="k">AS</span> <span class="n">JSON</span> <span class="o">|</span> <span class="k">AS</span> <span class="n">XML</span> <span class="o">|</span> <span class="k">AS</span> <span class="n">DOT</span> <span class="p">]</span>
+      <span class="k">FOR</span> <span class="err">{</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="err">}</span>
 
 <span class="k">describe</span><span class="p">:</span>
       <span class="k">DESCRIBE</span> <span class="k">DATABASE</span> <span class="n">databaseName</span>
-   <span class="o">|</span>  <span class="k">DESCRIBE</span> <span class="k">CATALOG</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span>
-   <span class="o">|</span>  <span class="k">DESCRIBE</span> <span class="k">SCHEMA</span> <span class="p">[</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span> <span class="p">]</span> <span class="p">.</span> <span class="n">schemaName</span>
-   <span class="o">|</span>  <span class="k">DESCRIBE</span> <span class="p">[</span> <span class="k">TABLE</span> <span class="p">]</span> <span class="p">[</span> <span class="p">[</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">schemaName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">tableN [...]
-   <span class="o">|</span>  <span class="k">DESCRIBE</span> <span class="p">[</span> <span class="k">STATEMENT</span> <span class="p">]</span> <span class="p">(</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="p">)</span>
+  <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="k">CATALOG</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span>
+  <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="k">SCHEMA</span> <span class="p">[</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span> <span class="p">]</span> <span class="p">.</span> <span class="n">schemaName</span>
+  <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="p">[</span> <span class="k">TABLE</span> <span class="p">]</span> <span class="p">[</span> <span class="p">[</span> <span class="p">[</span> <span class="n">databaseName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">catalogName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">schemaName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">tableN [...]
+  <span class="o">|</span>   <span class="k">DESCRIBE</span> <span class="p">[</span> <span class="k">STATEMENT</span> <span class="p">]</span> <span class="err">{</span> <span class="n">query</span> <span class="o">|</span> <span class="k">insert</span> <span class="o">|</span> <span class="k">update</span> <span class="o">|</span> <span class="n">merge</span> <span class="o">|</span> <span class="k">delete</span> <span class="err">}</span>
 
 <span class="k">insert</span><span class="p">:</span>
-      <span class="p">(</span> <span class="k">INSERT</span> <span class="o">|</span> <span class="n">UPSERT</span> <span class="p">)</span> <span class="k">INTO</span> <span class="n">tablePrimary</span>
+      <span class="err">{</span> <span class="k">INSERT</span> <span class="o">|</span> <span class="n">UPSERT</span> <span class="err">}</span> <span class="k">INTO</span> <span class="n">tablePrimary</span>
       <span class="p">[</span> <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
       <span class="n">query</span>
 
@@ -227,7 +227,7 @@ form.</p>
       <span class="n">expression</span> <span class="p">[</span> <span class="k">ASC</span> <span class="o">|</span> <span class="k">DESC</span> <span class="p">]</span> <span class="p">[</span> <span class="n">NULLS</span> <span class="k">FIRST</span> <span class="o">|</span> <span class="n">NULLS</span> <span class="k">LAST</span> <span class="p">]</span>
 
 <span class="k">select</span><span class="p">:</span>
-      <span class="k">SELECT</span> <span class="p">[</span> <span class="s1">'/*+'</span> <span class="n">hint</span> <span class="p">[,</span> <span class="n">hint</span><span class="p">]</span><span class="o">*</span> <span class="s1">'*/'</span> <span class="p">]</span> <span class="p">[</span> <span class="n">STREAM</span> <span class="p">]</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span>
+      <span class="k">SELECT</span> <span class="p">[</span> <span class="n">hintComment</span> <span class="p">]</span> <span class="p">[</span> <span class="n">STREAM</span> <span class="p">]</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span>
           <span class="err">{</span> <span class="o">*</span> <span class="o">|</span> <span class="n">projectItem</span> <span class="p">[,</span> <span class="n">projectItem</span> <span class="p">]</span><span class="o">*</span> <span class="err">}</span>
       <span class="k">FROM</span> <span class="n">tableExpression</span>
       <span class="p">[</span> <span class="k">WHERE</span> <span class="n">booleanExpression</span> <span class="p">]</span>
@@ -245,7 +245,7 @@ form.</p>
 
 <span class="n">tableExpression</span><span class="p">:</span>
       <span class="n">tableReference</span> <span class="p">[,</span> <span class="n">tableReference</span> <span class="p">]</span><span class="o">*</span>
-  <span class="o">|</span>   <span class="n">tableExpression</span> <span class="p">[</span> <span class="k">NATURAL</span> <span class="p">]</span> <span class="p">[</span> <span class="p">(</span> <span class="k">LEFT</span> <span class="o">|</span> <span class="k">RIGHT</span> <span class="o">|</span> <span class="k">FULL</span> <span class="p">)</span> <span class="p">[</span> <span class="k">OUTER</span> <span class="p">]</span> <span class="p">]</span> <span class="k">JOIN</span> < [...]
+  <span class="o">|</span>   <span class="n">tableExpression</span> <span class="p">[</span> <span class="k">NATURAL</span> <span class="p">]</span> <span class="p">[</span> <span class="err">{</span> <span class="k">LEFT</span> <span class="o">|</span> <span class="k">RIGHT</span> <span class="o">|</span> <span class="k">FULL</span> <span class="err">}</span> <span class="p">[</span> <span class="k">OUTER</span> <span class="p">]</span> <span class="p">]</span> <span class="k">JOIN</spa [...]
   <span class="o">|</span>   <span class="n">tableExpression</span> <span class="k">CROSS</span> <span class="k">JOIN</span> <span class="n">tableExpression</span>
   <span class="o">|</span>   <span class="n">tableExpression</span> <span class="p">[</span> <span class="k">CROSS</span> <span class="o">|</span> <span class="k">OUTER</span> <span class="p">]</span> <span class="n">APPLY</span> <span class="n">tableExpression</span>
 
@@ -257,13 +257,14 @@ form.</p>
       <span class="n">tablePrimary</span>
       <span class="p">[</span> <span class="k">FOR</span> <span class="n">SYSTEM_TIME</span> <span class="k">AS</span> <span class="k">OF</span> <span class="n">expression</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">pivot</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="n">unpivot</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">matchRecognize</span> <span class="p">]</span>
       <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">[</span> <span class="s1">'('</span> <span class="n">columnAlias</span> <span class="p">[,</span> <span class="n">columnAlias</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span> <span class="p">]</span>
 
 <span class="n">tablePrimary</span><span class="p">:</span>
       <span class="p">[</span> <span class="p">[</span> <span class="n">catalogName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">schemaName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">tableName</span>
       <span class="s1">'('</span> <span class="k">TABLE</span> <span class="p">[</span> <span class="p">[</span> <span class="n">catalogName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">schemaName</span> <span class="p">.</span> <span class="p">]</span> <span class="n">tableName</span> <span class="s1">')'</span>
-  <span class="o">|</span>   <span class="n">tablePrimary</span> <span class="p">[</span> <span class="s1">'/*+'</span> <span class="n">hint</span> <span class="p">[,</span> <span class="n">hint</span><span class="p">]</span><span class="o">*</span> <span class="s1">'*/'</span> <span class="p">]</span> <span class="p">[</span> <span class="n">EXTEND</span> <span class="p">]</span> <span class="s1">'('</span> <span class="n">columnDecl</span> <span class="p">[,</span> <span class="n">colu [...]
+  <span class="o">|</span>   <span class="n">tablePrimary</span> <span class="p">[</span> <span class="n">hintComment</span> <span class="p">]</span> <span class="p">[</span> <span class="n">EXTEND</span> <span class="p">]</span> <span class="s1">'('</span> <span class="n">columnDecl</span> <span class="p">[,</span> <span class="n">columnDecl</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
   <span class="o">|</span>   <span class="p">[</span> <span class="k">LATERAL</span> <span class="p">]</span> <span class="s1">'('</span> <span class="n">query</span> <span class="s1">')'</span>
   <span class="o">|</span>   <span class="k">UNNEST</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="s1">')'</span> <span class="p">[</span> <span class="k">WITH</span> <span class="k">ORDINALITY</span> <span class="p">]</span>
   <span class="o">|</span>   <span class="p">[</span> <span class="k">LATERAL</span> <span class="p">]</span> <span class="k">TABLE</span> <span class="s1">'('</span> <span class="p">[</span> <span class="k">SPECIFIC</span> <span class="p">]</span> <span class="n">functionName</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span cl [...]
@@ -276,9 +277,9 @@ form.</p>
   <span class="o">|</span>   <span class="n">hintName</span> <span class="s1">'('</span> <span class="n">hintOptions</span> <span class="s1">')'</span>
 
 <span class="n">hintOptions</span><span class="p">:</span>
-      <span class="n">hintKVOption</span> <span class="p">[,</span> <span class="n">hintKVOption</span><span class="p">]</span><span class="o">*</span>
-  <span class="o">|</span>   <span class="n">optionName</span> <span class="p">[,</span> <span class="n">optionName</span><span class="p">]</span><span class="o">*</span>
-  <span class="o">|</span>   <span class="n">optionValue</span> <span class="p">[,</span> <span class="n">optionValue</span><span class="p">]</span><span class="o">*</span>
+      <span class="n">hintKVOption</span> <span class="p">[,</span> <span class="n">hintKVOption</span> <span class="p">]</span><span class="o">*</span>
+  <span class="o">|</span>   <span class="n">optionName</span> <span class="p">[,</span> <span class="n">optionName</span> <span class="p">]</span><span class="o">*</span>
+  <span class="o">|</span>   <span class="n">optionValue</span> <span class="p">[,</span> <span class="n">optionValue</span> <span class="p">]</span><span class="o">*</span>
 
 <span class="n">hintKVOption</span><span class="p">:</span>
       <span class="n">optionName</span> <span class="s1">'='</span> <span class="n">stringLiteral</span>
@@ -288,6 +289,14 @@ form.</p>
       <span class="n">stringLiteral</span>
   <span class="o">|</span>   <span class="n">numericLiteral</span>
 
+<span class="n">columnOrList</span><span class="p">:</span>
+      <span class="k">column</span>
+  <span class="o">|</span>   <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+
+<span class="n">exprOrList</span><span class="p">:</span>
+      <span class="n">expr</span>
+  <span class="o">|</span>   <span class="s1">'('</span> <span class="n">expr</span> <span class="p">[,</span> <span class="n">expr</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+
 <span class="n">pivot</span><span class="p">:</span>
       <span class="n">PIVOT</span> <span class="s1">'('</span>
       <span class="n">pivotAgg</span> <span class="p">[,</span> <span class="n">pivotAgg</span> <span class="p">]</span><span class="o">*</span>
@@ -300,14 +309,27 @@ form.</p>
       <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">]</span>
 
 <span class="n">pivotList</span><span class="p">:</span>
-      <span class="k">column</span>
-   <span class="o">|</span>  <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+      <span class="n">columnOrList</span>
 
 <span class="n">pivotExpr</span><span class="p">:</span>
-      <span class="err">{</span> <span class="n">expr</span>
-      <span class="o">|</span> <span class="s1">'('</span> <span class="n">expr</span> <span class="p">[,</span> <span class="n">expr</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
-      <span class="err">}</span>
-      <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">]</span>
+      <span class="n">exprOrList</span> <span class="p">[</span> <span class="p">[</span> <span class="k">AS</span> <span class="p">]</span> <span class="k">alias</span> <span class="p">]</span>
+
+<span class="n">unpivot</span><span class="p">:</span>
+      <span class="n">UNPIVOT</span> <span class="p">[</span> <span class="k">INCLUDING</span> <span class="n">NULLS</span> <span class="o">|</span> <span class="k">EXCLUDING</span> <span class="n">NULLS</span> <span class="p">]</span> <span class="s1">'('</span>
+      <span class="n">unpivotMeasureList</span>
+      <span class="k">FOR</span> <span class="n">unpivotAxisList</span>
+      <span class="k">IN</span> <span class="s1">'('</span> <span class="n">unpivotValue</span> <span class="p">[,</span> <span class="n">unpivotValue</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+      <span class="s1">')'</span>
+
+<span class="n">unpivotMeasureList</span><span class="p">:</span>
+      <span class="n">columnOrList</span>
+
+<span class="n">unpivotAxisList</span><span class="p">:</span>
+      <span class="n">columnOrList</span>
+
+<span class="n">unpivotValue</span><span class="p">:</span>
+      <span class="k">column</span> <span class="p">[</span> <span class="k">AS</span> <span class="n">literal</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="s1">'('</span> <span class="k">column</span> <span class="p">[,</span> <span class="k">column</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">[</span> <span class="k">AS</span> <span class="s1">'('</span> <span class="n">literal</span> <span class="p">[,</span> <span class="n">literal</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
 
 <span class="k">values</span><span class="p">:</span>
       <span class="k">VALUES</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span>
@@ -414,6 +436,8 @@ ALWAYS,
 APPLY,
 <strong>ARE</strong>,
 <strong>ARRAY</strong>,
+ARRAY_AGG,
+ARRAY_CONCAT_AGG,
 <strong>ARRAY_MAX_CARDINALITY</strong>,
 <strong>AS</strong>,
 ASC,
@@ -558,6 +582,7 @@ DIAGNOSTICS,
 DISPATCH,
 <strong>DISTINCT</strong>,
 DOMAIN,
+DOT,
 <strong>DOUBLE</strong>,
 DOW,
 DOY,
@@ -625,6 +650,7 @@ GRANTED,
 <strong>GROUP</strong>,
 <strong>GROUPING</strong>,
 <strong>GROUPS</strong>,
+GROUP_CONCAT,
 <strong>HAVING</strong>,
 HIERARCHY,
 <strong>HOLD</strong>,
@@ -633,11 +659,13 @@ HOP,
 HOURS,
 <strong>IDENTITY</strong>,
 IGNORE,
+ILIKE,
 IMMEDIATE,
 IMMEDIATELY,
 IMPLEMENTATION,
 <strong>IMPORT</strong>,
 <strong>IN</strong>,
+INCLUDE,
 INCLUDING,
 INCREMENT,
 <strong>INDICATOR</strong>,
@@ -857,6 +885,7 @@ RETURNING,
 <strong>RETURNS</strong>,
 <strong>REVOKE</strong>,
 <strong>RIGHT</strong>,
+RLIKE,
 ROLE,
 <strong>ROLLBACK</strong>,
 <strong>ROLLUP</strong>,
@@ -888,6 +917,7 @@ SECURITY,
 <strong>SELECT</strong>,
 SELF,
 <strong>SENSITIVE</strong>,
+SEPARATOR,
 SEQUENCE,
 SERIALIZABLE,
 SERVER,
@@ -969,6 +999,7 @@ STATEMENT,
 <strong>STDDEV_POP</strong>,
 <strong>STDDEV_SAMP</strong>,
 <strong>STREAM</strong>,
+STRING_AGG,
 STRUCTURE,
 STYLE,
 SUBCLASS_ORIGIN,
@@ -1029,6 +1060,7 @@ UNDER,
 <strong>UNKNOWN</strong>,
 UNNAMED,
 <strong>UNNEST</strong>,
+UNPIVOT,
 <strong>UPDATE</strong>,
 <strong>UPPER</strong>,
 <strong>UPSERT</strong>,
@@ -1389,7 +1421,7 @@ for example <code class="highlighter-rouge">ST_GeomFromText('POINT (30 10)')</co
       <td style="text-align: left">left</td>
     </tr>
     <tr>
-      <td style="text-align: left">[ ] (array element)</td>
+      <td style="text-align: left">[ ] (collection element)</td>
       <td style="text-align: left">left</td>
     </tr>
     <tr>
@@ -1534,7 +1566,7 @@ completeness.</p>
     </tr>
     <tr>
       <td style="text-align: left">value comparison ANY (sub-query)</td>
-      <td style="text-align: left">Synonym for SOME</td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">SOME</code></td>
     </tr>
     <tr>
       <td style="text-align: left">value comparison ALL (sub-query)</td>
@@ -1831,6 +1863,10 @@ completeness.</p>
       <td style="text-align: left">Concatenates two binary strings</td>
     </tr>
     <tr>
+      <td style="text-align: left">OCTET_LENGTH(binary)</td>
+      <td style="text-align: left">Returns the number of bytes in <em>binary</em></td>
+    </tr>
+    <tr>
       <td style="text-align: left">POSITION(binary1 IN binary2)</td>
       <td style="text-align: left">Returns the position of the first occurrence of <em>binary1</em> in <em>binary2</em></td>
     </tr>
@@ -2529,12 +2565,20 @@ or promote to <code class="highlighter-rouge">VARCHAR</code> type.</li>
       <td style="text-align: left">Creates a row from a list of values.</td>
     </tr>
     <tr>
+      <td style="text-align: left">row ‘[’ index ‘]’</td>
+      <td style="text-align: left">Returns the element at a particular location in a row (1-based index).</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">row ‘[’ name ‘]’</td>
+      <td style="text-align: left">Returns the element of a row with a particular name.</td>
+    </tr>
+    <tr>
       <td style="text-align: left">map ‘[’ key ‘]’</td>
       <td style="text-align: left">Returns the element of a map with a particular key.</td>
     </tr>
     <tr>
       <td style="text-align: left">array ‘[’ index ‘]’</td>
-      <td style="text-align: left">Returns the element at a particular location in an array.</td>
+      <td style="text-align: left">Returns the element at a particular location in an array (1-based index).</td>
     </tr>
     <tr>
       <td style="text-align: left">ARRAY ‘[’ value [, value ]* ‘]’</td>
@@ -3014,10 +3058,11 @@ or promote to <code class="highlighter-rouge">VARCHAR</code> type.</li>
 <p>Syntax:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">aggregateCall</span><span class="p">:</span>
-        <span class="n">agg</span><span class="p">(</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span> <span class="p">[,</span> <span class="n">value</span> <span class="p">]</span><span class="o">*</span><span class="p">)</span>
-        <span class="p">[</span> <span class="n">WITHIN</span> <span class="k">GROUP</span> <span class="p">(</span><span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span><span class="p">)</span> <span class="p">]</span>
-        <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span><span class="k">WHERE</span> <span class="n">condition</span><span class="p">)</span> <span class="p">]</span>
-    <span class="o">|</span>   <span class="n">agg</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span><span class="k">WHERE</span> <span class="n">condition</span><span class="p">)</span> <span class="p">]</span></code></pre></figure>
+      <span class="n">agg</span> <span class="s1">'('</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span> <span class="p">[,</span> <span class="n">value</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+      <span class="p">[</span> <span class="n">WITHIN</span> <span class="k">DISTINCT</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="p">[,</span> <span class="n">expression</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="n">WITHIN</span> <span class="k">GROUP</span> <span class="s1">'('</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="n">FILTER</span> <span class="s1">'('</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="s1">')'</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="n">agg</span> <span class="s1">'('</span> <span class="s1">'*'</span> <span class="s1">')'</span> <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span><span class="k">WHERE</span> <span class="n">condition</span><span class="p">)</span> <span class="p">]</span></code></pre></figure>
 
 <p>where <em>agg</em> is one of the operators in the following table, or a user-defined
 aggregate function.</p>
@@ -3028,6 +3073,9 @@ aggregate function.</p>
 <p>If <code class="highlighter-rouge">DISTINCT</code> is present, duplicate argument values are eliminated before being
 passed to the aggregate function.</p>
 
+<p>If <code class="highlighter-rouge">WITHIN DISTINCT</code> is present, argument values are made distinct within
+each value of specified keys before being passed to the aggregate function.</p>
+
 <p>If <code class="highlighter-rouge">WITHIN GROUP</code> is present, the aggregate function sorts the input rows
 according to the <code class="highlighter-rouge">ORDER BY</code> clause inside <code class="highlighter-rouge">WITHIN GROUP</code> before aggregating
 values. <code class="highlighter-rouge">WITHIN GROUP</code> is only allowed for hypothetical set functions (<code class="highlighter-rouge">RANK</code>,
@@ -3093,11 +3141,11 @@ and <code class="highlighter-rouge">LISTAGG</code>).</p>
     </tr>
     <tr>
       <td style="text-align: left">SOME(condition)</td>
-      <td style="text-align: left">Returns true if any condition is true.</td>
+      <td style="text-align: left">Returns TRUE if one or more of the values of <em>condition</em> is TRUE</td>
     </tr>
     <tr>
       <td style="text-align: left">EVERY(condition)</td>
-      <td style="text-align: left">Returns true if all conditions are true.</td>
+      <td style="text-align: left">Returns TRUE if all of the values of <em>condition</em> are TRUE</td>
     </tr>
     <tr>
       <td style="text-align: left">BIT_AND( [ ALL | DISTINCT ] value)</td>
@@ -3170,14 +3218,14 @@ and <code class="highlighter-rouge">LISTAGG</code>).</p>
 <p>Syntax:</p>
 
 <figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">windowedAggregateCall</span><span class="p">:</span>
-        <span class="n">agg</span><span class="p">(</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span> <span class="p">[,</span> <span class="n">value</span> <span class="p">]</span><span class="o">*</span><span class="p">)</span>
-        <span class="p">[</span> <span class="n">RESPECT</span> <span class="n">NULLS</span> <span class="o">|</span> <span class="k">IGNORE</span> <span class="n">NULLS</span> <span class="p">]</span>
-        <span class="p">[</span> <span class="n">WITHIN</span> <span class="k">GROUP</span> <span class="p">(</span><span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span><span class="p">)</span> <span class="p">]</span>
-        <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span><span class="k">WHERE</span> <span class="n">condition</span><span class="p">)</span> <span class="p">]</span>
-        <span class="n">OVER</span> <span class="n">window</span>
-    <span class="o">|</span>   <span class="n">agg</span><span class="p">(</span><span class="o">*</span><span class="p">)</span>
-        <span class="p">[</span> <span class="n">FILTER</span> <span class="p">(</span><span class="k">WHERE</span> <span class="n">condition</span><span class="p">)</span> <span class="p">]</span>
-        <span class="n">OVER</span> <span class="n">window</span></code></pre></figure>
+      <span class="n">agg</span> <span class="s1">'('</span> <span class="p">[</span> <span class="k">ALL</span> <span class="o">|</span> <span class="k">DISTINCT</span> <span class="p">]</span> <span class="n">value</span> <span class="p">[,</span> <span class="n">value</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+      <span class="p">[</span> <span class="n">RESPECT</span> <span class="n">NULLS</span> <span class="o">|</span> <span class="k">IGNORE</span> <span class="n">NULLS</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="n">WITHIN</span> <span class="k">GROUP</span> <span class="s1">'('</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span> <span class="p">]</span>
+      <span class="p">[</span> <span class="n">FILTER</span> <span class="s1">'('</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="s1">')'</span> <span class="p">]</span>
+      <span class="n">OVER</span> <span class="n">window</span>
+  <span class="o">|</span>   <span class="n">agg</span> <span class="s1">'('</span> <span class="s1">'*'</span> <span class="s1">')'</span>
+      <span class="p">[</span> <span class="n">FILTER</span>  <span class="s1">'('</span> <span class="k">WHERE</span> <span class="n">condition</span> <span class="s1">')'</span> <span class="p">]</span>
+      <span class="n">OVER</span> <span class="n">window</span></code></pre></figure>
 
 <p>where <em>agg</em> is one of the operators in the following table, or a user-defined
 aggregate function.</p>
@@ -3300,17 +3348,32 @@ runtime.</li>
 </table>
 
 <h3 id="descriptor">DESCRIPTOR</h3>
-<p>| Operator syntax      | Description
-|:——————– |:———–
-| DESCRIPTOR(name [, name ]*) | DESCRIPTOR appears as an argument in a function to indicate a list of names. The interpretation of names is left to the function.</p>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">Operator syntax</th>
+      <th style="text-align: left">Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left">DESCRIPTOR(name [, name ]*)</td>
+      <td style="text-align: left">DESCRIPTOR appears as an argument in a function to indicate a list of names. The interpretation of names is left to the function.</td>
+    </tr>
+  </tbody>
+</table>
 
 <h3 id="table-functions">Table functions</h3>
+
 <p>Table functions occur in the <code class="highlighter-rouge">FROM</code> clause.</p>
 
 <h4 id="tumble">TUMBLE</h4>
-<p>In streaming queries, TUMBLE assigns a window for each row of a relation based on a timestamp column. An assigned window
-is specified by its beginning and ending. All assigned windows have the same length, and that’s why tumbling sometimes
-is named as “fixed windowing”.</p>
+
+<p>In streaming queries, TUMBLE assigns a window for each row of a relation based
+on a timestamp column. An assigned window is specified by its beginning and
+ending. All assigned windows have the same length, and that’s why tumbling
+sometimes is named as “fixed windowing”.</p>
 
 <table>
   <thead>
@@ -3328,24 +3391,27 @@ is named as “fixed windowing”.</p>
 </table>
 
 <p>Here is an example:</p>
-<pre><code class="language-SQL">SELECT * FROM TABLE(
-  TUMBLE(
-    TABLE orders,
-    DESCRIPTOR(rowtime),
-    INTERVAL '1' MINUTE));
-
--- or with the named params
--- note: the DATA param must be the first
-SELECT * FROM TABLE(
-  TUMBLE(
-    DATA =&gt; TABLE orders,
-    TIMECOL =&gt; DESCRIPTOR(rowtime),
-    SIZE =&gt; INTERVAL '1' MINUTE));
-</code></pre>
-<p>will apply tumbling with 1 minute window size on rows from table orders. rowtime is the
-watermarked column of table orders that tells data completeness.</p>
+
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="k">TABLE</span><span class="p">(</span>
+  <span class="n">TUMBLE</span><span class="p">(</span>
+    <span class="k">TABLE</span> <span class="n">orders</span><span class="p">,</span>
+    <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">rowtime</span><span class="p">),</span>
+    <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="k">MINUTE</span><span class="p">));</span>
+
+<span class="c1">-- or with the named params</span>
+<span class="c1">-- note: the DATA param must be the first</span>
+<span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="k">TABLE</span><span class="p">(</span>
+  <span class="n">TUMBLE</span><span class="p">(</span>
+    <span class="k">DATA</span> <span class="o">=&gt;</span> <span class="k">TABLE</span> <span class="n">orders</span><span class="p">,</span>
+    <span class="n">TIMECOL</span> <span class="o">=&gt;</span> <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">rowtime</span><span class="p">),</span>
+    <span class="k">SIZE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'1'</span> <span class="k">MINUTE</span><span class="p">));</span></code></pre></figure>
+
+<p>applies a tumbling window with a one minute range to rows from the <code class="highlighter-rouge">orders</code>
+table. <code class="highlighter-rouge">rowtime</code> is the watermarked column of the <code class="highlighter-rouge">orders</code> table that informs
+whether data is complete.</p>
 
 <h4 id="hop">HOP</h4>
+
 <p>In streaming queries, HOP assigns windows that cover rows within the interval of <em>size</em> and shifting every <em>slide</em> based
 on a timestamp column. Windows assigned could have overlapping so hopping sometime is named as “sliding windowing”.</p>
 
@@ -3365,26 +3431,29 @@ on a timestamp column. Windows assigned could have overlapping so hopping someti
 </table>
 
 <p>Here is an example:</p>
-<pre><code class="language-SQL">SELECT * FROM TABLE(
-  HOP(
-    TABLE orders,
-    DESCRIPTOR(rowtime),
-    INTERVAL '2' MINUTE,
-    INTERVAL '5' MINUTE));
-
--- or with the named params
--- note: the DATA param must be the first
-SELECT * FROM TABLE(
-  HOP(
-    DATA =&gt; TABLE orders,
-    TIMECOL =&gt; DESCRIPTOR(rowtime),
-    SLIDE =&gt; INTERVAL '2' MINUTE,
-    SIZE =&gt; INTERVAL '5' MINUTE));
-</code></pre>
-<p>will apply hopping with 5-minute interval size on rows from table orders and shifting every 2 minutes. rowtime is the
-watermarked column of table orders that tells data completeness.</p>
+
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="k">TABLE</span><span class="p">(</span>
+  <span class="n">HOP</span><span class="p">(</span>
+    <span class="k">TABLE</span> <span class="n">orders</span><span class="p">,</span>
+    <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">rowtime</span><span class="p">),</span>
+    <span class="n">INTERVAL</span> <span class="s1">'2'</span> <span class="k">MINUTE</span><span class="p">,</span>
+    <span class="n">INTERVAL</span> <span class="s1">'5'</span> <span class="k">MINUTE</span><span class="p">));</span>
+
+<span class="c1">-- or with the named params</span>
+<span class="c1">-- note: the DATA param must be the first</span>
+<span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="k">TABLE</span><span class="p">(</span>
+  <span class="n">HOP</span><span class="p">(</span>
+    <span class="k">DATA</span> <span class="o">=&gt;</span> <span class="k">TABLE</span> <span class="n">orders</span><span class="p">,</span>
+    <span class="n">TIMECOL</span> <span class="o">=&gt;</span> <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">rowtime</span><span class="p">),</span>
+    <span class="n">SLIDE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'2'</span> <span class="k">MINUTE</span><span class="p">,</span>
+    <span class="k">SIZE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'5'</span> <span class="k">MINUTE</span><span class="p">));</span></code></pre></figure>
+
+<p>applies hopping with 5-minute interval size on rows from table <code class="highlighter-rouge">orders</code>
+and shifting every 2 minutes. <code class="highlighter-rouge">rowtime</code> is the watermarked column of table
+orders that tells data completeness.</p>
 
 <h4 id="session">SESSION</h4>
+
 <p>In streaming queries, SESSION assigns windows that cover rows based on <em>datetime</em>. Within a session window, distances
 of rows are less than <em>interval</em>. Session window is applied per <em>key</em>.</p>
 
@@ -3404,24 +3473,26 @@ of rows are less than <em>interval</em>. Session window is applied per <em>key</
 </table>
 
 <p>Here is an example:</p>
-<pre><code class="language-SQL">SELECT * FROM TABLE(
-  SESSION(
-    TABLE orders,
-    DESCRIPTOR(rowtime),
-    DESCRIPTOR(product),
-    INTERVAL '20' MINUTE));
-
--- or with the named params
--- note: the DATA param must be the first
-SELECT * FROM TABLE(
-  SESSION(
-    DATA =&gt; TABLE orders,
-    TIMECOL =&gt; DESCRIPTOR(rowtime),
-    KEY =&gt; DESCRIPTOR(product),
-    SIZE =&gt; INTERVAL '20' MINUTE));
-</code></pre>
-<p>will apply session with 20-minute inactive gap on rows from table orders. rowtime is the
-watermarked column of table orders that tells data completeness. Session is applied per product.</p>
+
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="k">TABLE</span><span class="p">(</span>
+  <span class="k">SESSION</span><span class="p">(</span>
+    <span class="k">TABLE</span> <span class="n">orders</span><span class="p">,</span>
+    <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">rowtime</span><span class="p">),</span>
+    <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">product</span><span class="p">),</span>
+    <span class="n">INTERVAL</span> <span class="s1">'20'</span> <span class="k">MINUTE</span><span class="p">));</span>
+
+<span class="c1">-- or with the named params</span>
+<span class="c1">-- note: the DATA param must be the first</span>
+<span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="k">TABLE</span><span class="p">(</span>
+  <span class="k">SESSION</span><span class="p">(</span>
+    <span class="k">DATA</span> <span class="o">=&gt;</span> <span class="k">TABLE</span> <span class="n">orders</span><span class="p">,</span>
+    <span class="n">TIMECOL</span> <span class="o">=&gt;</span> <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">rowtime</span><span class="p">),</span>
+    <span class="k">KEY</span> <span class="o">=&gt;</span> <span class="k">DESCRIPTOR</span><span class="p">(</span><span class="n">product</span><span class="p">),</span>
+    <span class="k">SIZE</span> <span class="o">=&gt;</span> <span class="n">INTERVAL</span> <span class="s1">'20'</span> <span class="k">MINUTE</span><span class="p">));</span></code></pre></figure>
+
+<p>applies a session with 20-minute inactive gap on rows from table <code class="highlighter-rouge">orders</code>.
+<code class="highlighter-rouge">rowtime</code> is the watermarked column of table orders that tells data
+completeness. Session is applied per product.</p>
 
 <p><strong>Note</strong>: The <code class="highlighter-rouge">Tumble</code>, <code class="highlighter-rouge">Hop</code> and <code class="highlighter-rouge">Session</code> window table functions assign
 each row in the original table to a window. The output table has all
@@ -3542,7 +3613,7 @@ implements the OpenGIS Simple Features Implementation Specification for SQL,
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">ST_AsText(geom)</td>
-      <td style="text-align: left">Alias for <code class="highlighter-rouge">ST_AsWKT</code></td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">ST_AsWKT</code></td>
     </tr>
     <tr>
       <td style="text-align: left">o</td>
@@ -3647,7 +3718,7 @@ implements the OpenGIS Simple Features Implementation Specification for SQL,
     <tr>
       <td style="text-align: left">p</td>
       <td style="text-align: left">ST_MakePoint(x, y [, z ])</td>
-      <td style="text-align: left">Alias for <code class="highlighter-rouge">ST_Point</code></td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">ST_Point</code></td>
     </tr>
     <tr>
       <td style="text-align: left">o</td>
@@ -3754,7 +3825,7 @@ implements the OpenGIS Simple Features Implementation Specification for SQL,
   <li>ST_IsValidReason(geom [, selfTouchValid ]) Returns text stating whether <em>geom</em> is valid, and if not valid, a reason why</li>
   <li>ST_NPoints(geom) Returns the number of points in <em>geom</em></li>
   <li>ST_NumGeometries(geom) Returns the number of geometries in <em>geom</em> (1 if it is not a GEOMETRYCOLLECTION)</li>
-  <li>ST_NumInteriorRing(geom) Alias for <code class="highlighter-rouge">ST_NumInteriorRings</code></li>
+  <li>ST_NumInteriorRing(geom) Synonym for <code class="highlighter-rouge">ST_NumInteriorRings</code></li>
   <li>ST_NumInteriorRings(geom) Returns the number of interior rings of <em>geom</em></li>
   <li>ST_NumPoints(lineString) Returns the number of points in <em>lineString</em></li>
   <li>ST_PointN(geom, n) Returns the <em>n</em>th point of a <em>lineString</em></li>
@@ -4071,7 +4142,7 @@ implements the OpenGIS Simple Features Implementation Specification for SQL,
 
 <ul>
   <li>ST_Accum(geom) Accumulates <em>geom</em> into a GEOMETRYCOLLECTION (or MULTIPOINT, MULTILINESTRING or MULTIPOLYGON if possible)</li>
-  <li>ST_Collect(geom) Alias for <code class="highlighter-rouge">ST_Accum</code></li>
+  <li>ST_Collect(geom) Synonym for <code class="highlighter-rouge">ST_Accum</code></li>
   <li>ST_Union(geom) Computes the union of geometries</li>
 </ul>
 
@@ -4095,7 +4166,7 @@ implements the OpenGIS Simple Features Implementation Specification for SQL,
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left">JSON_EXISTS(jsonValue, path [ { TRUE | FALSE | UNKNOWN | ERROR ) ON ERROR } )</td>
+      <td style="text-align: left">JSON_EXISTS(jsonValue, path [ { TRUE | FALSE | UNKNOWN | ERROR } ON ERROR ] )</td>
       <td style="text-align: left">Whether a <em>jsonValue</em> satisfies a search criterion described using JSON path expression <em>path</em></td>
     </tr>
     <tr>
@@ -4122,8 +4193,7 @@ behaviors.</li>
 
 <p>Example Data:</p>
 
-<pre><code class="language-JSON">{"a": "[1,2]", "b": [1,2], "c": "hi"}
-</code></pre>
+<figure class="highlight"><pre><code class="language-json" data-lang="json"><span class="p">{</span><span class="s2">"a"</span><span class="p">:</span><span class="w"> </span><span class="s2">"[1,2]"</span><span class="p">,</span><span class="w"> </span><span class="s2">"b"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">],</span><span class="w"> </span><span class="s2" [...]
 
 <p>Comparison:</p>
 
@@ -4181,24 +4251,35 @@ behaviors.</li>
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: left">JSON_OBJECT( { [ KEY ] name VALUE value [ FORMAT JSON ] | name : value [ FORMAT JSON ] } * [ { NULL | ABSENT } ON NULL ] )</td>
-      <td style="text-align: left">Construct JSON object using a series of key (<em>name</em>) value (<em>value</em>) pairs</td>
+      <td style="text-align: left">JSON_OBJECT( jsonKeyVal [, jsonKeyVal ]* [ nullBehavior ] )</td>
+      <td style="text-align: left">Construct JSON object using a series of key-value pairs</td>
     </tr>
     <tr>
-      <td style="text-align: left">JSON_OBJECTAGG( { [ KEY ] name VALUE value [ FORMAT JSON ] | name : value [ FORMAT JSON ] } [ { NULL | ABSENT } ON NULL ] )</td>
-      <td style="text-align: left">Aggregate function to construct a JSON object using a key (<em>name</em>) value (<em>value</em>) pair</td>
+      <td style="text-align: left">JSON_OBJECTAGG( jsonKeyVal [ nullBehavior ] )</td>
+      <td style="text-align: left">Aggregate function to construct a JSON object using a key-value pair</td>
     </tr>
     <tr>
-      <td style="text-align: left">JSON_ARRAY( { value [ FORMAT JSON ] } * [ { NULL | ABSENT } ON NULL ] )</td>
-      <td style="text-align: left">Construct a JSON array using a series of values (<em>value</em>)</td>
+      <td style="text-align: left">JSON_ARRAY( [ jsonVal [, jsonVal ]* ] [ nullBehavior ] )</td>
+      <td style="text-align: left">Construct a JSON array using a series of values</td>
     </tr>
     <tr>
-      <td style="text-align: left">JSON_ARRAYAGG( value [ FORMAT JSON ] [ ORDER BY orderItem [, orderItem ]* ] [ { NULL | ABSENT } ON NULL ] )</td>
-      <td style="text-align: left">Aggregate function to construct a JSON array using a value (<em>value</em>)</td>
+      <td style="text-align: left">JSON_ARRAYAGG( jsonVal [ ORDER BY orderItem [, orderItem ]* ] [ nullBehavior ] )</td>
+      <td style="text-align: left">Aggregate function to construct a JSON array using a value</td>
     </tr>
   </tbody>
 </table>
 
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">jsonKeyVal</span><span class="p">:</span>
+      <span class="p">[</span> <span class="k">KEY</span> <span class="p">]</span> <span class="n">name</span> <span class="n">VALUE</span> <span class="n">value</span> <span class="p">[</span> <span class="n">FORMAT</span> <span class="n">JSON</span> <span class="p">]</span>
+  <span class="o">|</span>   <span class="n">name</span> <span class="p">:</span> <span class="n">value</span> <span class="p">[</span> <span class="n">FORMAT</span> <span class="n">JSON</span> <span class="p">]</span>
+
+<span class="n">jsonVal</span><span class="p">:</span>
+      <span class="n">value</span> <span class="p">[</span> <span class="n">FORMAT</span> <span class="n">JSON</span> <span class="p">]</span>
+
+<span class="n">nullBehavior</span><span class="p">:</span>
+      <span class="k">NULL</span> <span class="k">ON</span> <span class="k">NULL</span>
+  <span class="o">|</span>   <span class="n">ABSENT</span> <span class="k">ON</span> <span class="k">NULL</span></code></pre></figure>
+
 <p>Note:</p>
 
 <ul>
@@ -4268,11 +4349,15 @@ if your session has enabled an extra operator table.</p>
 <a href="/docs/adapter.html#jdbc-connect-string-parameters">fun</a>
 connect string parameter.</p>
 
-<p>The ‘C’ (compatibility) column contains value
-‘b’ for BigQuery (‘fun=bigquery’ in the connect string),
-‘m’ for MySQL (‘fun=mysql’ in the connect string),
-‘o’ for Oracle (‘fun=oracle’ in the connect string),
-‘p’ for PostgreSQL (‘fun=postgresql’ in the connect string).</p>
+<p>The ‘C’ (compatibility) column contains value:</p>
+<ul>
+  <li>‘b’ for Google BigQuery (‘fun=bigquery’ in the connect string),</li>
+  <li>‘h’ for Apache Hive (‘fun=hive’ in the connect string),</li>
+  <li>‘m’ for MySQL (‘fun=mysql’ in the connect string),</li>
+  <li>‘o’ for Oracle (‘fun=oracle’ in the connect string),</li>
+  <li>‘p’ for PostgreSQL (‘fun=postgresql’ in the connect string),</li>
+  <li>’s’ for Apache Spark (‘fun=spark’ in the connect string).</li>
+</ul>
 
 <p>One operator name may correspond to multiple SQL dialects, but with different
 semantics.</p>
@@ -4322,6 +4407,11 @@ semantics.</p>
       <td style="text-align: left">Converts the timezone of <em>datetime</em> from <em>tz1</em> to <em>tz2</em></td>
     </tr>
     <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">CURRENT_DATETIME([timezone])</td>
+      <td style="text-align: left">Returns the current time as a TIMESTAMP from <em>timezone</em></td>
+    </tr>
+    <tr>
       <td style="text-align: left">m</td>
       <td style="text-align: left">DAYNAME(datetime)</td>
       <td style="text-align: left">Returns the name, in the connection’s locale, of the weekday in <em>datetime</em>; for example, it returns ‘星期日’ for both DATE ‘2020-02-10’ and TIMESTAMP ‘2020-02-10 10:10:10’</td>
@@ -4367,14 +4457,29 @@ semantics.</p>
       <td style="text-align: left">Returns the greatest of the expressions</td>
     </tr>
     <tr>
+      <td style="text-align: left">b h s</td>
+      <td style="text-align: left">IF(condition, value1, value2)</td>
+      <td style="text-align: left">Returns <em>value1</em> if <em>condition</em> is TRUE, <em>value2</em> otherwise</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">p</td>
+      <td style="text-align: left">string1 ILIKE string2 [ ESCAPE string3 ]</td>
+      <td style="text-align: left">Whether <em>string1</em> matches pattern <em>string2</em>, ignoring case (similar to <code class="highlighter-rouge">LIKE</code>)</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">p</td>
+      <td style="text-align: left">string1 NOT ILIKE string2 [ ESCAPE string3 ]</td>
+      <td style="text-align: left">Whether <em>string1</em> does not match pattern <em>string2</em>, ignoring case (similar to <code class="highlighter-rouge">NOT LIKE</code>)</td>
+    </tr>
+    <tr>
       <td style="text-align: left">m</td>
       <td style="text-align: left">JSON_TYPE(jsonValue)</td>
-      <td style="text-align: left">Returns a string value indicating the type of a <em>jsonValue</em></td>
+      <td style="text-align: left">Returns a string value indicating the type of <em>jsonValue</em></td>
     </tr>
     <tr>
       <td style="text-align: left">m</td>
       <td style="text-align: left">JSON_DEPTH(jsonValue)</td>
-      <td style="text-align: left">Returns an integer value indicating the depth of a <em>jsonValue</em></td>
+      <td style="text-align: left">Returns an integer value indicating the depth of <em>jsonValue</em></td>
     </tr>
     <tr>
       <td style="text-align: left">m</td>
@@ -4399,7 +4504,7 @@ semantics.</p>
     <tr>
       <td style="text-align: left">m</td>
       <td style="text-align: left">JSON_STORAGE_SIZE(jsonValue)</td>
-      <td style="text-align: left">Returns the number of bytes used to store the binary representation of a <em>jsonValue</em></td>
+      <td style="text-align: left">Returns the number of bytes used to store the binary representation of <em>jsonValue</em></td>
     </tr>
     <tr>
       <td style="text-align: left">o</td>
@@ -4462,6 +4567,16 @@ semantics.</p>
       <td style="text-align: left">Returns the rightmost <em>length</em> characters from the <em>string</em></td>
     </tr>
     <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">string1 RLIKE string2</td>
+      <td style="text-align: left">Whether <em>string1</em> matches regex pattern <em>string2</em> (similar to <code class="highlighter-rouge">LIKE</code>, but uses Java regex)</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">h s</td>
+      <td style="text-align: left">string1 NOT RLIKE string2</td>
+      <td style="text-align: left">Whether <em>string1</em> does not match regex pattern <em>string2</em> (similar to <code class="highlighter-rouge">NOT LIKE</code>, but uses Java regex)</td>
+    </tr>
+    <tr>
       <td style="text-align: left">o</td>
       <td style="text-align: left">RTRIM(string)</td>
       <td style="text-align: left">Returns <em>string</em> with all blanks removed from the end</td>
@@ -4487,7 +4602,7 @@ semantics.</p>
       <td style="text-align: left">Returns a string of <em>integer</em> spaces; returns an empty string if <em>integer</em> is less than 1</td>
     </tr>
     <tr>
-      <td style="text-align: left">o</td>
+      <td style="text-align: left">b m o p</td>
       <td style="text-align: left">SUBSTR(string, position [, substringLength ])</td>
       <td style="text-align: left">Returns a portion of <em>string</em>, beginning at character <em>position</em>, <em>substringLength</em> characters long. SUBSTR calculates lengths using characters as defined by the input character set</td>
     </tr>
@@ -4554,7 +4669,7 @@ semantics.</p>
     <tr>
       <td style="text-align: left">o</td>
       <td style="text-align: left">XMLTRANSFORM(xml, xslt)</td>
-      <td style="text-align: left">Returns a string after applying xslt to supplied XML</td>
+      <td style="text-align: left">Applies XSLT transform <em>xslt</em> to XML string <em>xml</em> and returns the result</td>
     </tr>
   </tbody>
 </table>
@@ -4593,19 +4708,77 @@ semantics.</p>
   </li>
 </ul>
 
+<p>Dialect-specific aggregate functions.</p>
+
+<table>
+  <thead>
+    <tr>
+      <th style="text-align: left">C</th>
+      <th style="text-align: left">Operator syntax</th>
+      <th style="text-align: left">Description</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td style="text-align: left">b p</td>
+      <td style="text-align: left">ARRAY_AGG( [ ALL | DISTINCT ] value [ RESPECT NULLS | IGNORE NULLS ] [ ORDER BY orderItem [, orderItem ]* ] )</td>
+      <td style="text-align: left">Gathers values into arrays</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b p</td>
+      <td style="text-align: left">ARRAY_CONCAT_AGG( [ ALL | DISTINCT ] value [ ORDER BY orderItem [, orderItem ]* ] )</td>
+      <td style="text-align: left">Concatenates arrays into arrays</td>
+    </tr>
+    <tr>
+      <td style="text-align: left">p</td>
+      <td style="text-align: left">BOOL_AND(condition)</td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">EVERY</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left">p</td>
+      <td style="text-align: left">BOOL_OR(condition)</td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">SOME</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">COUNTIF(condition)</td>
+      <td style="text-align: left">Returns the number of rows for which <em>condition</em> is TRUE; equivalent to <code class="highlighter-rouge">COUNT(*) FILTER (WHERE condition)</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left">m</td>
+      <td style="text-align: left">GROUP_CONCAT( [ ALL | DISTINCT ] value [, value ]* [ ORDER BY orderItem [, orderItem ]* ] [ SEPARATOR separator ] )</td>
+      <td style="text-align: left">MySQL-specific variant of <code class="highlighter-rouge">LISTAGG</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">LOGICAL_AND(condition)</td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">EVERY</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b</td>
+      <td style="text-align: left">LOGICAL_OR(condition)</td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">SOME</code></td>
+    </tr>
+    <tr>
+      <td style="text-align: left">b p</td>
+      <td style="text-align: left">STRING_AGG( [ ALL | DISTINCT ] value [, separator] [ ORDER BY orderItem [, orderItem ]* ] )</td>
+      <td style="text-align: left">Synonym for <code class="highlighter-rouge">LISTAGG</code></td>
+    </tr>
+  </tbody>
+</table>
+
 <p>Usage Examples:</p>
 
 <h5 id="json_type-example">JSON_TYPE example</h5>
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT JSON_TYPE(v) AS c1,
-  JSON_TYPE(JSON_VALUE(v, 'lax $.b' ERROR ON ERROR)) AS c2,
-  JSON_TYPE(JSON_VALUE(v, 'strict $.a[0]' ERROR ON ERROR)) AS c3,
-  JSON_TYPE(JSON_VALUE(v, 'strict $.a[1]' ERROR ON ERROR)) AS c4
-FROM (VALUES ('{"a": [10, true],"b": "[10, true]"}')) AS t(v)
-LIMIT 10;
-</code></pre>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">JSON_TYPE</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c1</span><span class="p">,</span>
+  <span class="n">JSON_TYPE</span><span class="p">(</span><span class="n">JSON_VALUE</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'lax $.b'</span> <span class="n">ERROR</span> <span class="k">ON</span> <span class="n">ERROR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">c2</span><span class="p">,</span>
+  <span class="n">JSON_TYPE</span><span class="p">(</span><span class="n">JSON_VALUE</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[0]'</span> <span class="n">ERROR</span> <span class="k">ON</span> <span class="n">ERROR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">c3</span><span class="p">,</span>
+  <span class="n">JSON_TYPE</span><span class="p">(</span><span class="n">JSON_VALUE</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[1]'</span> <span class="n">ERROR</span> <span class="k">ON</span> <span class="n">ERROR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">c4</span>
+<span class="k">FROM</span> <span class="p">(</span><span class="k">VALUES</span> <span class="p">(</span><span class="s1">'{"a": [10, true],"b": "[10, true]"}'</span><span class="p">))</span> <span class="k">AS</span> <span class="n">t</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
+<span class="k">LIMIT</span> <span class="mi">10</span><span class="p">;</span></code></pre></figure>
 
 <p>Result</p>
 
@@ -4632,13 +4805,12 @@ LIMIT 10;
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT JSON_DEPTH(v) AS c1,
-  JSON_DEPTH(JSON_VALUE(v, 'lax $.b' ERROR ON ERROR)) AS c2,
-  JSON_DEPTH(JSON_VALUE(v, 'strict $.a[0]' ERROR ON ERROR)) AS c3,
-  JSON_DEPTH(JSON_VALUE(v, 'strict $.a[1]' ERROR ON ERROR)) AS c4
-FROM (VALUES ('{"a": [10, true],"b": "[10, true]"}')) AS t(v)
-LIMIT 10;
-</code></pre>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">JSON_DEPTH</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c1</span><span class="p">,</span>
+  <span class="n">JSON_DEPTH</span><span class="p">(</span><span class="n">JSON_VALUE</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'lax $.b'</span> <span class="n">ERROR</span> <span class="k">ON</span> <span class="n">ERROR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">c2</span><span class="p">,</span>
+  <span class="n">JSON_DEPTH</span><span class="p">(</span><span class="n">JSON_VALUE</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[0]'</span> <span class="n">ERROR</span> <span class="k">ON</span> <span class="n">ERROR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">c3</span><span class="p">,</span>
+  <span class="n">JSON_DEPTH</span><span class="p">(</span><span class="n">JSON_VALUE</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[1]'</span> <span class="n">ERROR</span> <span class="k">ON</span> <span class="n">ERROR</span><span class="p">))</span> <span class="k">AS</span> <span class="n">c4</span>
+<span class="k">FROM</span> <span class="p">(</span><span class="k">VALUES</span> <span class="p">(</span><span class="s1">'{"a": [10, true],"b": "[10, true]"}'</span><span class="p">))</span> <span class="k">AS</span> <span class="n">t</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
+<span class="k">LIMIT</span> <span class="mi">10</span><span class="p">;</span></code></pre></figure>
 
 <p>Result</p>
 
@@ -4665,13 +4837,12 @@ LIMIT 10;
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT JSON_LENGTH(v) AS c1,
-  JSON_LENGTH(v, 'lax $.a') AS c2,
-  JSON_LENGTH(v, 'strict $.a[0]') AS c3,
-  JSON_LENGTH(v, 'strict $.a[1]') AS c4
-FROM (VALUES ('{"a": [10, true]}')) AS t(v)
-LIMIT 10;
-</code></pre>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">JSON_LENGTH</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c1</span><span class="p">,</span>
+  <span class="n">JSON_LENGTH</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'lax $.a'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c2</span><span class="p">,</span>
+  <span class="n">JSON_LENGTH</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[0]'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c3</span><span class="p">,</span>
+  <span class="n">JSON_LENGTH</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[1]'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c4</span>
+<span class="k">FROM</span> <span class="p">(</span><span class="k">VALUES</span> <span class="p">(</span><span class="s1">'{"a": [10, true]}'</span><span class="p">))</span> <span class="k">AS</span> <span class="n">t</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
+<span class="k">LIMIT</span> <span class="mi">10</span><span class="p">;</span></code></pre></figure>
 
 <p>Result</p>
 
@@ -4698,14 +4869,13 @@ LIMIT 10;
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT JSON_KEYS(v) AS c1,
-  JSON_KEYS(v, 'lax $.a') AS c2,
-  JSON_KEYS(v, 'lax $.b') AS c2,
-  JSON_KEYS(v, 'strict $.a[0]') AS c3,
-  JSON_KEYS(v, 'strict $.a[1]') AS c4
-FROM (VALUES ('{"a": [10, true],"b": {"c": 30}}')) AS t(v)
-LIMIT 10;
-</code></pre>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">ELECT</span> <span class="n">JSON_KEYS</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c1</span><span class="p">,</span>
+  <span class="n">JSON_KEYS</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'lax $.a'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c2</span><span class="p">,</span>
+  <span class="n">JSON_KEYS</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'lax $.b'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c2</span><span class="p">,</span>
+  <span class="n">JSON_KEYS</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[0]'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c3</span><span class="p">,</span>
+  <span class="n">JSON_KEYS</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'strict $.a[1]'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c4</span>
+<span class="k">FROM</span> <span class="p">(</span><span class="k">VALUES</span> <span class="p">(</span><span class="s1">'{"a": [10, true],"b": {"c": 30}}'</span><span class="p">))</span> <span class="k">AS</span> <span class="n">t</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
+<span class="k">LIMIT</span> <span class="mi">10</span><span class="p">;</span></code></pre></figure>
 
 <p>Result</p>
 
@@ -4734,10 +4904,9 @@ LIMIT 10;
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT JSON_REMOVE(v, '$[1]') AS c1
-FROM (VALUES ('["a", ["b", "c"], "d"]')) AS t(v)
-LIMIT 10;
-</code></pre>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">JSON_REMOVE</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s1">'$[1]'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c1</span>
+<span class="k">FROM</span> <span class="p">(</span><span class="k">VALUES</span> <span class="p">(</span><span class="s1">'["a", ["b", "c"], "d"]'</span><span class="p">))</span> <span class="k">AS</span> <span class="n">t</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
+<span class="k">LIMIT</span> <span class="mi">10</span><span class="p">;</span></code></pre></figure>
 
 <p>Result</p>
 
@@ -4758,13 +4927,12 @@ LIMIT 10;
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT
-JSON_STORAGE_SIZE('[100, \"sakila\", [1, 3, 5], 425.05]') AS c1,
-JSON_STORAGE_SIZE('{\"a\": 10, \"b\": \"a\", \"c\": \"[1, 3, 5, 7]\"}') AS c2,
-JSON_STORAGE_SIZE('{\"a\": 10, \"b\": \"xyz\", \"c\": \"[1, 3, 5, 7]\"}') AS c3,
-JSON_STORAGE_SIZE('[100, \"json\", [[10, 20, 30], 3, 5], 425.05]') AS c4
-limit 10;
-</code></pre>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span>
+<span class="n">JSON_STORAGE_SIZE</span><span class="p">(</span><span class="s1">'[100, </span><span class="se">\"</span><span class="s1">sakila</span><span class="se">\"</span><span class="s1">, [1, 3, 5], 425.05]'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c1</span><span class="p">,</span>
+<span class="n">JSON_STORAGE_SIZE</span><span class="p">(</span><span class="s1">'{</span><span class="se">\"</span><span class="s1">a</span><span class="se">\"</span><span class="s1">: 10, </span><span class="se">\"</span><span class="s1">b</span><span class="se">\"</span><span class="s1">: </span><span class="se">\"</span><span class="s1">a</span><span class="se">\"</span><span class="s1">, </span><span class="se">\"</span><span class="s1">c</span><span class="se">\"</span><span class= [...]
+<span class="n">JSON_STORAGE_SIZE</span><span class="p">(</span><span class="s1">'{</span><span class="se">\"</span><span class="s1">a</span><span class="se">\"</span><span class="s1">: 10, </span><span class="se">\"</span><span class="s1">b</span><span class="se">\"</span><span class="s1">: </span><span class="se">\"</span><span class="s1">xyz</span><span class="se">\"</span><span class="s1">, </span><span class="se">\"</span><span class="s1">c</span><span class="se">\"</span><span clas [...]
+<span class="n">JSON_STORAGE_SIZE</span><span class="p">(</span><span class="s1">'[100, </span><span class="se">\"</span><span class="s1">json</span><span class="se">\"</span><span class="s1">, [[10, 20, 30], 3, 5], 425.05]'</span><span class="p">)</span> <span class="k">AS</span> <span class="n">c4</span>
+<span class="k">limit</span> <span class="mi">10</span><span class="p">;</span></code></pre></figure>
 
 <p>Result</p>
 
@@ -4791,14 +4959,13 @@ limit 10;
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT DECODE(f1, 1, 'aa', 2, 'bb', 3, 'cc', 4, 'dd', 'ee') as c1,
-  DECODE(f2, 1, 'aa', 2, 'bb', 3, 'cc', 4, 'dd', 'ee') as c2,
-  DECODE(f3, 1, 'aa', 2, 'bb', 3, 'cc', 4, 'dd', 'ee') as c3,
-  DECODE(f4, 1, 'aa', 2, 'bb', 3, 'cc', 4, 'dd', 'ee') as c4,
-  DECODE(f5, 1, 'aa', 2, 'bb', 3, 'cc', 4, 'dd', 'ee') as c5
-FROM (VALUES (1, 2, 3, 4, 5)) AS t(f1, f2, f3, f4, f5);
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="n">DECODE</span><span class="p">(</span><span class="n">f1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'aa'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'bb'</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'cc'</span>< [...]
+  <span class="n">DECODE</span><span class="p">(</span><span class="n">f2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'aa'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'bb'</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'cc'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">'dd'</span> [...]
+  <span class="n">DECODE</span><span class="p">(</span><span class="n">f3</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'aa'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'bb'</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'cc'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">'dd'</span> [...]
+  <span class="n">DECODE</span><span class="p">(</span><span class="n">f4</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'aa'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'bb'</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'cc'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">'dd'</span> [...]
+  <span class="n">DECODE</span><span class="p">(</span><span class="n">f5</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'aa'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'bb'</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'cc'</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">'dd'</span> [...]
+<span class="k">FROM</span> <span class="p">(</span><span class="k">VALUES</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> <span class="k">AS</span> <span class="n">t</span><span class="p">(</span><span class="n">f1</span><span class="p">,</span> <span class [...]
 
-</code></pre>
 <p>Result</p>
 
 <table>
@@ -4826,12 +4993,11 @@ FROM (VALUES (1, 2, 3, 4, 5)) AS t(f1, f2, f3, f4, f5);
 
 <p>SQL</p>
 
-<pre><code class="language-SQL">SELECT TRANSLATE('Aa*Bb*Cc''D*d', ' */''%', '_') as c1,
-  TRANSLATE('Aa/Bb/Cc''D/d', ' */''%', '_') as c2,
-  TRANSLATE('Aa Bb Cc''D d', ' */''%', '_') as c3,
-  TRANSLATE('Aa%Bb%Cc''D%d', ' */''%', '_') as c4
-FROM (VALUES (true)) AS t(f0);
-</code></pre>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="k">TRANSLATE</span><span class="p">(</span><span class="s1">'Aa*Bb*Cc</span><span class="se">''</span><span class="s1">D*d'</span><span class="p">,</span> <span class="s1">' */</span><span class="se">''</span><span class="s1">%'</span><span class="p">,</span> <span class="s1">'_'</span><span class="p">)</span> <span class="k">as</span> <span class="n">c1</span><span class= [...]
+  <span class="k">TRANSLATE</span><span class="p">(</span><span class="s1">'Aa/Bb/Cc</span><span class="se">''</span><span class="s1">D/d'</span><span class="p">,</span> <span class="s1">' */</span><span class="se">''</span><span class="s1">%'</span><span class="p">,</span> <span class="s1">'_'</span><span class="p">)</span> <span class="k">as</span> <span class="n">c2</span><span class="p">,</span>
+  <span class="k">TRANSLATE</span><span class="p">(</span><span class="s1">'Aa Bb Cc</span><span class="se">''</span><span class="s1">D d'</span><span class="p">,</span> <span class="s1">' */</span><span class="se">''</span><span class="s1">%'</span><span class="p">,</span> <span class="s1">'_'</span><span class="p">)</span> <span class="k">as</span> <span class="n">c3</span><span class="p">,</span>
+  <span class="k">TRANSLATE</span><span class="p">(</span><span class="s1">'Aa%Bb%Cc</span><span class="se">''</span><span class="s1">D%d'</span><span class="p">,</span> <span class="s1">' */</span><span class="se">''</span><span class="s1">%'</span><span class="p">,</span> <span class="s1">'_'</span><span class="p">)</span> <span class="k">as</span> <span class="n">c4</span>
+<span class="k">FROM</span> <span class="p">(</span><span class="k">VALUES</span> <span class="p">(</span><span class="k">true</span><span class="p">))</span> <span class="k">AS</span> <span class="n">t</span><span class="p">(</span><span class="n">f0</span><span class="p">);</span></code></pre></figure>
 
 <p>Result</p>
 
@@ -5011,38 +5177,41 @@ It would be very flexible to profile the resource with hints per query (not the
 
 <h4 id="syntax">Syntax</h4>
 
-<p>Calcite supports basically two kinds of hints:</p>
+<p>Calcite supports hints in two locations:</p>
 
 <ul>
   <li>Query Hint: right after the <code class="highlighter-rouge">SELECT</code> keyword;</li>
   <li>Table Hint: right after the referenced table name.</li>
 </ul>
 
-<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">query</span> <span class="p">:</span>
-      <span class="k">SELECT</span> <span class="cm">/*+ hints */</span>
-      <span class="p">...</span>
-      <span class="k">from</span>
-          <span class="n">tableName</span> <span class="cm">/*+ hints */</span>
-          <span class="k">JOIN</span>
-          <span class="n">tableName</span> <span class="cm">/*+ hints */</span>
-      <span class="p">...</span>
+<p>For example:</p>
 
-<span class="n">hints</span> <span class="p">:</span>
-      <span class="n">hintItem</span><span class="p">[,</span> <span class="n">hintItem</span> <span class="p">]</span><span class="o">*</span>
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">SELECT</span> <span class="cm">/*+ hint1, hint2(a=1, b=2) */</span>
+<span class="p">...</span>
+<span class="k">FROM</span>
+  <span class="n">tableName</span> <span class="cm">/*+ hint3(5, 'x') */</span>
+<span class="k">JOIN</span>
+  <span class="n">tableName</span> <span class="cm">/*+ hint4(c=id), hint5 */</span>
+<span class="p">...</span></code></pre></figure>
 
-<span class="n">hintItem</span> <span class="p">:</span>
+<p>The syntax is as follows:</p>
+
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">hintComment</span><span class="p">:</span>
+      <span class="s1">'/*+'</span> <span class="n">hint</span> <span class="p">[,</span> <span class="n">hint</span> <span class="p">]</span><span class="o">*</span> <span class="s1">'*/'</span>
+
+<span class="n">hint</span><span class="p">:</span>
       <span class="n">hintName</span>
-  <span class="o">|</span>   <span class="n">hintName</span><span class="p">(</span><span class="n">optionKey</span><span class="o">=</span><span class="n">optionVal</span><span class="p">[,</span> <span class="n">optionKey</span><span class="o">=</span><span class="n">optionVal</span> <span class="p">]</span><span class="o">*</span><span class="p">)</span>
-  <span class="o">|</span>   <span class="n">hintName</span><span class="p">(</span><span class="n">hintOption</span> <span class="p">[,</span> <span class="n">hintOption</span> <span class="p">]</span><span class="o">*</span><span class="p">)</span>
+  <span class="o">|</span>   <span class="n">hintName</span> <span class="s1">'('</span> <span class="n">optionKey</span> <span class="s1">'='</span> <span class="n">optionVal</span> <span class="p">[,</span> <span class="n">optionKey</span> <span class="s1">'='</span> <span class="n">optionVal</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
+  <span class="o">|</span>   <span class="n">hintName</span> <span class="s1">'('</span> <span class="n">hintOption</span> <span class="p">[,</span> <span class="n">hintOption</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
 
-<span class="n">optionKey</span> <span class="p">:</span>
+<span class="n">optionKey</span><span class="p">:</span>
       <span class="n">simpleIdentifier</span>
   <span class="o">|</span>   <span class="n">stringLiteral</span>
 
-<span class="n">optionVal</span> <span class="p">:</span>
+<span class="n">optionVal</span><span class="p">:</span>
       <span class="n">stringLiteral</span>
 
-<span class="n">hintOption</span> <span class="p">:</span>
+<span class="n">hintOption</span><span class="p">:</span>
       <span class="n">simpleIdentifier</span>
    <span class="o">|</span>  <span class="n">numericLiteral</span>
    <span class="o">|</span>  <span class="n">stringLiteral</span></code></pre></figure>
@@ -5072,19 +5241,20 @@ events in complex event processing (CEP).</p>
       <span class="p">[</span> <span class="k">ORDER</span> <span class="k">BY</span> <span class="n">orderItem</span> <span class="p">[,</span> <span class="n">orderItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">MEASURES</span> <span class="n">measureColumn</span> <span class="p">[,</span> <span class="n">measureColumn</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">ONE</span> <span class="k">ROW</span> <span class="n">PER</span> <span class="k">MATCH</span> <span class="o">|</span> <span class="k">ALL</span> <span class="k">ROWS</span> <span class="n">PER</span> <span class="k">MATCH</span> <span class="p">]</span>
-      <span class="p">[</span> <span class="k">AFTER</span> <span class="k">MATCH</span>
-            <span class="p">(</span> <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">NEXT</span> <span class="k">ROW</span>
-            <span class="o">|</span> <span class="n">SKIP</span> <span class="n">PAST</span> <span class="k">LAST</span> <span class="k">ROW</span>
-            <span class="o">|</span> <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">FIRST</span> <span class="k">variable</span>
-            <span class="o">|</span> <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">LAST</span> <span class="k">variable</span>
-            <span class="o">|</span> <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">variable</span> <span class="p">)</span>
-      <span class="p">]</span>
+      <span class="p">[</span> <span class="k">AFTER</span> <span class="k">MATCH</span> <span class="n">skip</span> <span class="p">]</span>
       <span class="n">PATTERN</span> <span class="s1">'('</span> <span class="n">pattern</span> <span class="s1">')'</span>
       <span class="p">[</span> <span class="n">WITHIN</span> <span class="n">intervalLiteral</span> <span class="p">]</span>
       <span class="p">[</span> <span class="n">SUBSET</span> <span class="n">subsetItem</span> <span class="p">[,</span> <span class="n">subsetItem</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
       <span class="n">DEFINE</span> <span class="k">variable</span> <span class="k">AS</span> <span class="n">condition</span> <span class="p">[,</span> <span class="k">variable</span> <span class="k">AS</span> <span class="n">condition</span> <span class="p">]</span><span class="o">*</span>
       <span class="s1">')'</span>
 
+<span class="n">skip</span><span class="p">:</span>
+      <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">NEXT</span> <span class="k">ROW</span>
+  <span class="o">|</span>   <span class="n">SKIP</span> <span class="n">PAST</span> <span class="k">LAST</span> <span class="k">ROW</span>
+  <span class="o">|</span>   <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">FIRST</span> <span class="k">variable</span>
+  <span class="o">|</span>   <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">LAST</span> <span class="k">variable</span>
+  <span class="o">|</span>   <span class="n">SKIP</span> <span class="k">TO</span> <span class="k">variable</span>
+
 <span class="n">subsetItem</span><span class="p">:</span>
       <span class="k">variable</span> <span class="o">=</span> <span class="s1">'('</span> <span class="k">variable</span> <span class="p">[,</span> <span class="k">variable</span> <span class="p">]</span><span class="o">*</span> <span class="s1">')'</span>
 
@@ -5218,7 +5388,7 @@ to the JDBC connect string (see connect string property
       <span class="p">[</span> <span class="k">USING</span>  <span class="n">usingFile</span> <span class="p">[,</span> <span class="n">usingFile</span> <span class="p">]</span><span class="o">*</span> <span class="p">]</span>
 
 <span class="n">usingFile</span><span class="p">:</span>
-      <span class="p">(</span> <span class="n">JAR</span> <span class="o">|</span> <span class="n">FILE</span> <span class="o">|</span> <span class="n">ARCHIVE</span> <span class="p">)</span> <span class="n">filePathLiteral</span>
+      <span class="err">{</span> <span class="n">JAR</span> <span class="o">|</span> <span class="n">FILE</span> <span class="o">|</span> <span class="n">ARCHIVE</span> <span class="err">}</span> <span class="n">filePathLiteral</span>
 
 <span class="n">dropSchemaStatement</span><span class="p">:</span>
       <span class="k">DROP</span> <span class="k">SCHEMA</span> <span class="p">[</span> <span class="n">IF</span> <span class="k">EXISTS</span> <span class="p">]</span> <span class="n">name</span>
@@ -5251,38 +5421,43 @@ generated column, <code class="highlighter-rouge">VIRTUAL</code> is the default.
 <p>In <em>createFunctionStatement</em> and <em>usingFile</em>, <em>classNameLiteral</em>
 and <em>filePathLiteral</em> are character literals.</p>
 
-<h4 id="declaring-objects-for-types-defined-in-schema">Declaring Objects For Types Defined In Schema</h4>
-<p>After an object type is defined and installed in the schema, you can use it to declare objects in any SQL block. For example, you can use the object type to specify the datatype of an attribute, column, variable, bind variable, record field, table element, formal parameter, or function result. At run time, instances of the object type are created; that is, objects of that type are instantiated. Each object can hold different values.</p>
-
-<p>Example: For declared types <code class="highlighter-rouge">address_typ</code> and <code class="highlighter-rouge">employee_typ</code></p>
-<pre><code class="language-SQL">CREATE TYPE address_typ AS OBJECT (
-   street          VARCHAR2(30),
-   city            VARCHAR2(20),
-   state           CHAR(2),
-   postal_code     VARCHAR2(6) );
-
-CREATE TYPE employee_typ AS OBJECT (
-  employee_id       NUMBER(6),
-  first_name        VARCHAR2(20),
-  last_name         VARCHAR2(25),
-  email             VARCHAR2(25),
-  phone_number      VARCHAR2(20),
-  hire_date         DATE,
-  job_id            VARCHAR2(10),
-  salary            NUMBER(8,2),
-  commission_pct    NUMBER(2,2),
-  manager_id        NUMBER(6),
-  department_id     NUMBER(4),
-  address           address_typ
-);
-</code></pre>
-
-<p>We can declare objects of type <code class="highlighter-rouge">employee_typ</code> and <code class="highlighter-rouge">address_typ</code> :</p>
-
-<pre><code class="language-SQL">employee_typ(315, 'Francis', 'Logan', 'FLOGAN',
-        '555.777.2222', '01-MAY-04', 'SA_MAN', 11000, .15, 101, 110,
-         address_typ('376 Mission', 'San Francisco', 'CA', '94222'))
-</code></pre>
+<h4 id="declaring-objects-for-user-defined-types">Declaring objects for user-defined types</h4>
+
+<p>After an object type is defined and installed in the schema, you can use it to
+declare objects in any SQL block. For example, you can use the object type to
+specify the datatype of an attribute, column, variable, bind variable, record
+field, table element, formal parameter, or function result. At run time,
+instances of the object type are created; that is, objects of that type are
+instantiated. Each object can hold different values.</p>
+
+<p>For example, we can declare types <code class="highlighter-rouge">address_typ</code> and <code class="highlighter-rouge">employee_typ</code>:</p>
+
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="k">CREATE</span> <span class="k">TYPE</span> <span class="n">address_typ</span> <span class="k">AS</span> <span class="k">OBJECT</span> <span class="p">(</span>
+   <span class="n">street</span>          <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">30</span><span class="p">),</span>
+   <span class="n">city</span>            <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
+   <span class="k">state</span>           <span class="n">CHAR</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span>
+   <span class="n">postal_code</span>     <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">6</span><span class="p">));</span>
+
+<span class="k">CREATE</span> <span class="k">TYPE</span> <span class="n">employee_typ</span> <span class="k">AS</span> <span class="k">OBJECT</span> <span class="p">(</span>
+  <span class="n">employee_id</span>       <span class="n">NUMBER</span><span class="p">(</span><span class="mi">6</span><span class="p">),</span>
+  <span class="n">first_name</span>        <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
+  <span class="n">last_name</span>         <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
+  <span class="n">email</span>             <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
+  <span class="n">phone_number</span>      <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span>
+  <span class="n">hire_date</span>         <span class="n">DATE</span><span class="p">,</span>
+  <span class="n">job_id</span>            <span class="n">VARCHAR2</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span>
+  <span class="n">salary</span>            <span class="n">NUMBER</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
+  <span class="n">commission_pct</span>    <span class="n">NUMBER</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
+  <span class="n">manager_id</span>        <span class="n">NUMBER</span><span class="p">(</span><span class="mi">6</span><span class="p">),</span>
+  <span class="n">department_id</span>     <span class="n">NUMBER</span><span class="p">(</span><span class="mi">4</span><span class="p">),</span>
+  <span class="n">address</span>           <span class="n">address_typ</span><span class="p">);</span></code></pre></figure>
+
+<p>Using these types, you can instantiate objects as follows:</p>
+
+<figure class="highlight"><pre><code class="language-sql" data-lang="sql"><span class="n">employee_typ</span><span class="p">(</span><span class="mi">315</span><span class="p">,</span> <span class="s1">'Francis'</span><span class="p">,</span> <span class="s1">'Logan'</span><span class="p">,</span> <span class="s1">'FLOGAN'</span><span class="p">,</span>
+    <span class="s1">'555.777.2222'</span><span class="p">,</span> <span class="s1">'01-MAY-04'</span><span class="p">,</span> <span class="s1">'SA_MAN'</span><span class="p">,</span> <span class="mi">11000</span><span class="p">,</span> <span class="p">.</span><span class="mi">15</span><span class="p">,</span> <span class="mi">101</span><span class="p">,</span> <span class="mi">110</span><span class="p">,</span>
+     <span class="n">address_typ</span><span class="p">(</span><span class="s1">'376 Mission'</span><span class="p">,</span> <span class="s1">'San Francisco'</span><span class="p">,</span> <span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'94222'</span><span class="p">))</span></code></pre></figure>
+
 
           
 
diff --git a/downloads/index.html b/downloads/index.html
index bdb00e6..ee9db94 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -78,10 +78,16 @@
   </thead>
   <tbody>
     <tr>
+      <td style="text-align: left"><a href="/docs/history.html#v1-27-0">1.27.0</a></td>
+      <td style="text-align: left">03 Jun 2021</td>
+      <td style="text-align: left"><a href="https://github.com/apache/calcite/commit/60f07118f31776462ea35ffdaa1f46c633251f69">60f0711</a></td>
+      <td style="text-align: left"><a href="https://www.apache.org/dyn/closer.lua?filename=calcite/apache-calcite-1.27.0/apache-calcite-1.27.0-src.tar.gz&amp;action=download">tar</a> (<a href="https://downloads.apache.org/calcite/apache-calcite-1.27.0/apache-calcite-1.27.0-src.tar.gz.sha512">digest</a> <a href="https://downloads.apache.org/calcite/apache-calcite-1.27.0/apache-calcite-1.27.0-src.tar.gz.asc">pgp</a>)</td>
+    </tr>
+    <tr>
       <td style="text-align: left"><a href="/docs/history.html#v1-26-0">1.26.0</a></td>
       <td style="text-align: left">06 Oct 2020</td>
       <td style="text-align: left"><a href="https://github.com/apache/calcite/commit/cfa37c3fd6ae18894035721d9f1eacde40e6b268">cfa37c3</a></td>
-      <td style="text-align: left"><a href="https://www.apache.org/dyn/closer.lua?filename=calcite/apache-calcite-1.26.0/apache-calcite-1.26.0-src.tar.gz&amp;action=download">tar</a> (<a href="https://downloads.apache.org/calcite/apache-calcite-1.26.0/apache-calcite-1.26.0-src.tar.gz.sha512">digest</a> <a href="https://downloads.apache.org/calcite/apache-calcite-1.26.0/apache-calcite-1.26.0-src.tar.gz.asc">pgp</a>)</td>
+      <td style="text-align: left"><a href="https://archive.apache.org/dist/calcite/apache-calcite-1.26.0/apache-calcite-1.26.0-src.tar.gz">tar</a> (<a href="https://archive.apache.org/dist/calcite/apache-calcite-1.26.0/apache-calcite-1.26.0-src.tar.gz.sha512">digest</a> <a href="https://archive.apache.org/dist/calcite/apache-calcite-1.26.0/apache-calcite-1.26.0-src.tar.gz.asc">pgp</a>)</td>
     </tr>
     <tr>
       <td style="text-align: left"><a href="/docs/history.html#v1-25-0">1.25.0</a></td>
@@ -318,7 +324,7 @@ For more information why this must be done, please read
   <span class="nt">&lt;dependency&gt;</span>
     <span class="nt">&lt;groupId&gt;</span>org.apache.calcite<span class="nt">&lt;/groupId&gt;</span>
     <span class="nt">&lt;artifactId&gt;</span>calcite-core<span class="nt">&lt;/artifactId&gt;</span>
-    <span class="nt">&lt;version&gt;</span>1.26.0<span class="nt">&lt;/version&gt;</span>
+    <span class="nt">&lt;version&gt;</span>1.27.0<span class="nt">&lt;/version&gt;</span>
   <span class="nt">&lt;/dependency&gt;</span>
 <span class="nt">&lt;/dependencies&gt;</span></code></pre></figure>
 
diff --git a/javadocAggregate/allclasses-index.html b/javadocAggregate/allclasses-index.html
index 4f6be3a..f2c0c7f 100644
--- a/javadocAggregate/allclasses-index.html
+++ b/javadocAggregate/allclasses-index.html
@@ -19,7 +19,7 @@
 <script type="text/javascript" src="script-dir/jquery-ui.js"></script>
 </head>
 <body class="all-classes-index">
-<script type="text/javascript">var data = {"i0":2,"i1":2,"i2":1,"i3":2,"i4":2,"i5":2,"i6":1,"i7":2,"i8":2,"i9":2,"i10":2,"i11":2,"i12":2,"i13":2,"i14":2,"i15":2,"i16":2,"i17":2,"i18":2,"i19":2,"i20":2,"i21":1,"i22":2,"i23":1,"i24":1,"i25":2,"i26":2,"i27":2,"i28":4,"i29":2,"i30":2,"i31":1,"i32":2,"i33":1,"i34":2,"i35":1,"i36":2,"i37":1,"i38":1,"i39":2,"i40":2,"i41":1,"i42":2,"i43":1,"i44":2,"i45":1,"i46":1,"i47":2,"i48":1,"i49":2,"i50":2,"i51":2,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2,"i5 [...]
+<script type="text/javascript">var data = {"i0":2,"i1":2,"i2":1,"i3":2,"i4":2,"i5":2,"i6":1,"i7":2,"i8":2,"i9":2,"i10":2,"i11":2,"i12":2,"i13":2,"i14":2,"i15":2,"i16":2,"i17":2,"i18":2,"i19":2,"i20":2,"i21":1,"i22":2,"i23":1,"i24":1,"i25":2,"i26":2,"i27":2,"i28":4,"i29":2,"i30":2,"i31":1,"i32":2,"i33":1,"i34":2,"i35":1,"i36":2,"i37":1,"i38":2,"i39":1,"i40":1,"i41":2,"i42":2,"i43":1,"i44":2,"i45":1,"i46":2,"i47":1,"i48":1,"i49":2,"i50":1,"i51":2,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2,"i5 [...]
 var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],4:["t3","Enum Summary"],8:["t4","Exception Summary"],32:["t6","Annotation Types Summary"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -311,6 +311,19 @@ loadScripts(document, 'script');</script>
 </th>
 </tr>
 <tr class="altColor" id="i34">
+<td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateExpandWithinDistinctRule.html" title="class in org.apache.calcite.rel.rules">AggregateExpandWithinDistinctRule</a></td>
+<th class="colLast" scope="row">
+<div class="block">Planner rule that rewrites an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> that contains
+ <code>WITHIN DISTINCT</code> aggregate functions.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i35">
+<td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateExpandWithinDistinctRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateExpandWithinDistinctRule.Config</a></td>
+<th class="colLast" scope="row">
+<div class="block">Rule configuration.</div>
+</th>
+</tr>
+<tr class="altColor" id="i36">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateExtractProjectRule.html" title="class in org.apache.calcite.rel.rules">AggregateExtractProjectRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to extract a <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
@@ -318,13 +331,13 @@ loadScripts(document, 'script');</script>
  and push it down towards the input.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i35">
+<tr class="rowColor" id="i37">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateExtractProjectRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateExtractProjectRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i36">
+<tr class="altColor" id="i38">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateFilterTransposeRule.html" title="class in org.apache.calcite.rel.rules">AggregateFilterTransposeRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that matches an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
@@ -332,25 +345,25 @@ loadScripts(document, 'script');</script>
  pushing the aggregate below the filter.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i37">
+<tr class="rowColor" id="i39">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateFilterTransposeRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateFilterTransposeRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i38">
+<tr class="altColor" id="i40">
 <td class="colFirst"><a href="org/apache/calcite/schema/AggregateFunction.html" title="interface in org.apache.calcite.schema">AggregateFunction</a></td>
 <th class="colLast" scope="row">
 <div class="block">Function that combines several values into a scalar result.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i39">
+<tr class="rowColor" id="i41">
 <td class="colFirst"><a href="org/apache/calcite/schema/impl/AggregateFunctionImpl.html" title="class in org.apache.calcite.schema.impl">AggregateFunctionImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/schema/AggregateFunction.html" title="interface in org.apache.calcite.schema"><code>AggregateFunction</code></a> via user-defined class.</div>
 </th>
 </tr>
-<tr class="altColor" id="i40">
+<tr class="altColor" id="i42">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateJoinJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">AggregateJoinJoinRemoveRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that matches an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
@@ -358,13 +371,13 @@ loadScripts(document, 'script');</script>
  of the join provided that the left input is also a left join if possible.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i41">
+<tr class="rowColor" id="i43">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateJoinJoinRemoveRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateJoinJoinRemoveRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i42">
+<tr class="altColor" id="i44">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateJoinRemoveRule.html" title="class in org.apache.calcite.rel.rules">AggregateJoinRemoveRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that matches an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
@@ -373,13 +386,13 @@ loadScripts(document, 'script');</script>
  aggregate functions or all the aggregate calls have distinct.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i43">
+<tr class="rowColor" id="i45">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateJoinRemoveRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateJoinRemoveRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i44">
+<tr class="altColor" id="i46">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateJoinTransposeRule.html" title="class in org.apache.calcite.rel.rules">AggregateJoinTransposeRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that pushes an
@@ -387,19 +400,19 @@ loadScripts(document, 'script');</script>
  past a <a href="org/apache/calcite/rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i45">
+<tr class="rowColor" id="i47">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateJoinTransposeRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateJoinTransposeRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i46">
+<tr class="altColor" id="i48">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/AggregateLambdaFactory.html" title="interface in org.apache.calcite.adapter.enumerable">AggregateLambdaFactory</a>&lt;<a href="org/apache/calcite/adapter/enumerable/AggregateLambdaFactory.html" title="type parameter in AggregateLambdaFactory">TSource</a>,&#8203;<a href="org/apache/calcite/adapter/enumerable/AggregateLambdaFactory.html" title="type parameter in AggregateLambdaFactory">TOrigAccumulate</a>,&#8203;<a href="o [...]
 <th class="colLast" scope="row">
 <div class="block">Generates lambda functions used in <a href="org/apache/calcite/adapter/enumerable/EnumerableAggregate.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableAggregate</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i47">
+<tr class="rowColor" id="i49">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateMergeRule.html" title="class in org.apache.calcite.rel.rules">AggregateMergeRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that matches an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> on a <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
@@ -408,132 +421,132 @@ loadScripts(document, 'script');</script>
  convert into a single aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i48">
+<tr class="altColor" id="i50">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateMergeRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateMergeRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i49">
+<tr class="rowColor" id="i51">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.html" title="class in org.apache.calcite.interpreter">AggregateNode</a></td>
 <th class="colLast" scope="row">
 <div class="block">Interpreter node that implements an
  <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i50">
+<tr class="altColor" id="i52">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.BigDecimalSum.html" title="class in org.apache.calcite.interpreter">AggregateNode.BigDecimalSum</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>SUM</code> over BigDecimal values as a user-defined
  aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i51">
+<tr class="rowColor" id="i53">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.DoubleSum.html" title="class in org.apache.calcite.interpreter">AggregateNode.DoubleSum</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>SUM</code> over DOUBLE values as a user-defined
  aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i52">
+<tr class="altColor" id="i54">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.IntSum.html" title="class in org.apache.calcite.interpreter">AggregateNode.IntSum</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>SUM</code> over INTEGER values as a user-defined
  aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i53">
+<tr class="rowColor" id="i55">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.LongSum.html" title="class in org.apache.calcite.interpreter">AggregateNode.LongSum</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>SUM</code> over BIGINT values as a user-defined
  aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i54">
+<tr class="altColor" id="i56">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MaxBigDecimal.html" title="class in org.apache.calcite.interpreter">AggregateNode.MaxBigDecimal</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MAX</code> function to calculate the maximum of
  <code>BigDecimal</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i55">
+<tr class="rowColor" id="i57">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MaxDouble.html" title="class in org.apache.calcite.interpreter">AggregateNode.MaxDouble</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MAX</code> function to calculate the maximum of
  <code>double</code> and <code>real</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i56">
+<tr class="altColor" id="i58">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MaxFloat.html" title="class in org.apache.calcite.interpreter">AggregateNode.MaxFloat</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MAX</code> function to calculate the maximum of
  <code>float</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i57">
+<tr class="rowColor" id="i59">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MaxInt.html" title="class in org.apache.calcite.interpreter">AggregateNode.MaxInt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MAX</code> function to calculate the maximum of
  <code>integer</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i58">
+<tr class="altColor" id="i60">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MaxLong.html" title="class in org.apache.calcite.interpreter">AggregateNode.MaxLong</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MAX</code> function to calculate the maximum of
  <code>long</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i59">
+<tr class="rowColor" id="i61">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MinBigDecimal.html" title="class in org.apache.calcite.interpreter">AggregateNode.MinBigDecimal</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MIN</code> function to calculate the minimum of
  <code>BigDecimal</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i60">
+<tr class="altColor" id="i62">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MinBoolean.html" title="class in org.apache.calcite.interpreter">AggregateNode.MinBoolean</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MIN</code> function to calculate the minimum of
  <code>boolean</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i61">
+<tr class="rowColor" id="i63">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MinDouble.html" title="class in org.apache.calcite.interpreter">AggregateNode.MinDouble</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MIN</code> function to calculate the minimum of
  <code>double</code> and <code>real</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i62">
+<tr class="altColor" id="i64">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MinFloat.html" title="class in org.apache.calcite.interpreter">AggregateNode.MinFloat</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MIN</code> function to calculate the minimum of
  <code>float</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i63">
+<tr class="rowColor" id="i65">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MinInt.html" title="class in org.apache.calcite.interpreter">AggregateNode.MinInt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MIN</code> function to calculate the minimum of
  <code>integer</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i64">
+<tr class="altColor" id="i66">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.MinLong.html" title="class in org.apache.calcite.interpreter">AggregateNode.MinLong</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>MIN</code> function to calculate the minimum of
  <code>long</code> values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i65">
+<tr class="rowColor" id="i67">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/AggregateNode.NumericComparison.html" title="class in org.apache.calcite.interpreter">AggregateNode.NumericComparison</a>&lt;<a href="org/apache/calcite/interpreter/AggregateNode.NumericComparison.html" title="type parameter in AggregateNode.NumericComparison">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Common implementation of comparison aggregate methods over numeric
  values as a user-defined aggregate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i66">
+<tr class="altColor" id="i68">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateProjectMergeRule.html" title="class in org.apache.calcite.rel.rules">AggregateProjectMergeRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that recognizes a <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
@@ -541,26 +554,26 @@ loadScripts(document, 'script');</script>
  aggregate through the project or removes the project.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i67">
+<tr class="rowColor" id="i69">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateProjectMergeRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateProjectMergeRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i68">
+<tr class="altColor" id="i70">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.html" title="class in org.apache.calcite.rel.rules">AggregateProjectPullUpConstantsRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that removes constant keys from an
  <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i69">
+<tr class="rowColor" id="i71">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateProjectPullUpConstantsRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateProjectPullUpConstantsRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i70">
+<tr class="altColor" id="i72">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateProjectStarTableRule.html" title="class in org.apache.calcite.rel.rules">AggregateProjectStarTableRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Variant of <a href="org/apache/calcite/rel/rules/AggregateStarTableRule.html" title="class in org.apache.calcite.rel.rules"><code>AggregateStarTableRule</code></a> that accepts a <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
@@ -568,26 +581,26 @@ loadScripts(document, 'script');</script>
  input.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i71">
+<tr class="rowColor" id="i73">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateProjectStarTableRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateProjectStarTableRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i72">
+<tr class="altColor" id="i74">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.html" title="class in org.apache.calcite.rel.rules">AggregateReduceFunctionsRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that reduces aggregate functions in
  <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>s to simpler forms.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i73">
+<tr class="rowColor" id="i75">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateReduceFunctionsRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateReduceFunctionsRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i74">
+<tr class="altColor" id="i76">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateRemoveRule.html" title="class in org.apache.calcite.rel.rules">AggregateRemoveRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that removes
@@ -598,26 +611,26 @@ loadScripts(document, 'script');</script>
  and the underlying relational expression is already distinct.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i75">
+<tr class="rowColor" id="i77">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateRemoveRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateRemoveRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i76">
+<tr class="altColor" id="i78">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateStarTableRule.html" title="class in org.apache.calcite.rel.rules">AggregateStarTableRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that matches an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> on
  top of a <a href="org/apache/calcite/schema/impl/StarTable.StarTableScan.html" title="class in org.apache.calcite.schema.impl"><code>StarTable.StarTableScan</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i77">
+<tr class="rowColor" id="i79">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateStarTableRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateStarTableRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i78">
+<tr class="altColor" id="i80">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateUnionAggregateRule.html" title="class in org.apache.calcite.rel.rules">AggregateUnionAggregateRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that matches
@@ -627,13 +640,13 @@ loadScripts(document, 'script');</script>
  <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> removes duplicates.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i79">
+<tr class="rowColor" id="i81">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateUnionAggregateRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateUnionAggregateRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i80">
+<tr class="altColor" id="i82">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateUnionTransposeRule.html" title="class in org.apache.calcite.rel.rules">AggregateUnionTransposeRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that pushes an
@@ -641,105 +654,105 @@ loadScripts(document, 'script');</script>
  past a non-distinct <a href="org/apache/calcite/rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i81">
+<tr class="rowColor" id="i83">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateUnionTransposeRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateUnionTransposeRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i82">
+<tr class="altColor" id="i84">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateValuesRule.html" title="class in org.apache.calcite.rel.rules">AggregateValuesRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule that applies <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> to a <a href="org/apache/calcite/rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> (currently just an
  empty <code>Value</code>s).</div>
 </th>
 </tr>
-<tr class="rowColor" id="i83">
+<tr class="rowColor" id="i85">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/AggregateValuesRule.Config.html" title="interface in org.apache.calcite.rel.rules">AggregateValuesRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i84">
+<tr class="altColor" id="i86">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/AggregatingScope.html" title="interface in org.apache.calcite.sql.validate">AggregatingScope</a></td>
 <th class="colLast" scope="row">
 <div class="block">An extension to the <a href="org/apache/calcite/sql/validate/SqlValidatorScope.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorScope</code></a> interface which indicates that
  the scope is aggregating.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i85">
+<tr class="rowColor" id="i87">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/AggregatingSelectScope.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope</a></td>
 <th class="colLast" scope="row">
 <div class="block">Scope for resolving identifiers within a SELECT statement that has a
  GROUP BY clause.</div>
 </th>
 </tr>
-<tr class="altColor" id="i86">
+<tr class="altColor" id="i88">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/AggregatingSelectScope.Resolved.html" title="class in org.apache.calcite.sql.validate">AggregatingSelectScope.Resolved</a></td>
 <th class="colLast" scope="row">
 <div class="block">Information about an aggregating scope that can only be determined
  after validation has occurred.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i87">
+<tr class="rowColor" id="i89">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/AggResetContext.html" title="interface in org.apache.calcite.adapter.enumerable">AggResetContext</a></td>
 <th class="colLast" scope="row">
 <div class="block">Information for a call to
  <a href="org/apache/calcite/adapter/enumerable/AggImplementor.html#implementReset(org.apache.calcite.adapter.enumerable.AggContext,org.apache.calcite.adapter.enumerable.AggResetContext)"><code>AggImplementor.implementReset(AggContext, AggResetContext)</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i88">
+<tr class="altColor" id="i90">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/impl/AggResetContextImpl.html" title="class in org.apache.calcite.adapter.enumerable.impl">AggResetContextImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of
  <a href="org/apache/calcite/adapter/enumerable/AggResetContext.html" title="interface in org.apache.calcite.adapter.enumerable"><code>AggResetContext</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i89">
+<tr class="rowColor" id="i91">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/AggResultContext.html" title="interface in org.apache.calcite.adapter.enumerable">AggResultContext</a></td>
 <th class="colLast" scope="row">
 <div class="block">Information for a call to
  <a href="org/apache/calcite/adapter/enumerable/AggImplementor.html#implementResult(org.apache.calcite.adapter.enumerable.AggContext,org.apache.calcite.adapter.enumerable.AggResultContext)"><code>AggImplementor.implementResult(AggContext, AggResultContext)</code></a></div>
 </th>
 </tr>
-<tr class="altColor" id="i90">
+<tr class="altColor" id="i92">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/impl/AggResultContextImpl.html" title="class in org.apache.calcite.adapter.enumerable.impl">AggResultContextImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of
  <a href="org/apache/calcite/adapter/enumerable/AggResultContext.html" title="interface in org.apache.calcite.adapter.enumerable"><code>AggResultContext</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i91">
+<tr class="rowColor" id="i93">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/AliasNamespace.html" title="class in org.apache.calcite.sql.validate">AliasNamespace</a></td>
 <th class="colLast" scope="row">
 <div class="block">Namespace for an <code>AS t(c1, c2, ...)</code> clause.</div>
 </th>
 </tr>
-<tr class="altColor" id="i92">
+<tr class="altColor" id="i94">
 <td class="colFirst"><a href="org/apache/calcite/sql/dialect/AnsiSqlDialect.html" title="class in org.apache.calcite.sql.dialect">AnsiSqlDialect</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <code>SqlDialect</code> implementation for an unknown ANSI compatible database.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i93">
+<tr class="rowColor" id="i95">
 <td class="colFirst"><a href="org/apache/calcite/adapter/java/Array.html" title="annotation in org.apache.calcite.adapter.java">Array</a></td>
 <th class="colLast" scope="row">
 <div class="block">Annotation that indicates that a field is an array type.</div>
 </th>
 </tr>
-<tr class="altColor" id="i94">
+<tr class="altColor" id="i96">
 <td class="colFirst"><a href="org/apache/calcite/runtime/ArrayBindable.html" title="interface in org.apache.calcite.runtime">ArrayBindable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Extension to <a href="org/apache/calcite/runtime/Bindable.html" title="interface in org.apache.calcite.runtime"><code>Bindable</code></a> that returns rows that are arrays of objects.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i95">
+<tr class="rowColor" id="i97">
 <td class="colFirst"><a href="org/apache/calcite/runtime/ArrayComparator.html" title="class in org.apache.calcite.runtime">ArrayComparator</a></td>
 <th class="colLast" scope="row">
 <div class="block">Compares arrays.</div>
 </th>
 </tr>
-<tr class="altColor" id="i96">
+<tr class="altColor" id="i98">
 <td class="colFirst"><a href="org/apache/calcite/runtime/ArrayEnumeratorCursor.html" title="class in org.apache.calcite.runtime">ArrayEnumeratorCursor</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>Cursor</code> on top of an
@@ -747,19 +760,19 @@ loadScripts(document, 'script');</script>
  returns an array of <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Object</code></a> for each row.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i97">
+<tr class="rowColor" id="i99">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ArrayLengthRecordField.html" title="class in org.apache.calcite.linq4j.tree">ArrayLengthRecordField</a></td>
 <th class="colLast" scope="row">
 <div class="block">Length field of a RecordType.</div>
 </th>
 </tr>
-<tr class="altColor" id="i98">
+<tr class="altColor" id="i100">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/ArraySqlType.html" title="class in org.apache.calcite.sql.type">ArraySqlType</a></td>
 <th class="colLast" scope="row">
 <div class="block">SQL array type.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i99">
+<tr class="rowColor" id="i101">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/AssignableOperandTypeChecker.html" title="class in org.apache.calcite.sql.type">AssignableOperandTypeChecker</a></td>
 <th class="colLast" scope="row">
 <div class="block">AssignableOperandTypeChecker implements <a href="org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="interface in org.apache.calcite.sql.type"><code>SqlOperandTypeChecker</code></a> by
@@ -767,735 +780,735 @@ loadScripts(document, 'script');</script>
  parameter types (under the SQL definition of "assignable").</div>
 </th>
 </tr>
-<tr class="altColor" id="i100">
+<tr class="altColor" id="i102">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.html" title="class in org.apache.calcite.piglet">Ast</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract syntax tree.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i101">
+<tr class="rowColor" id="i103">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Assignment.html" title="class in org.apache.calcite.piglet">Ast.Assignment</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract base class for statements that assign to a named relation.</div>
 </th>
 </tr>
-<tr class="altColor" id="i102">
+<tr class="altColor" id="i104">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Assignment1.html" title="class in org.apache.calcite.piglet">Ast.Assignment1</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract base class for an assignment with one source relation.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i103">
+<tr class="rowColor" id="i105">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.BagType.html" title="class in org.apache.calcite.piglet">Ast.BagType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree for a bag type.</div>
 </th>
 </tr>
-<tr class="altColor" id="i104">
+<tr class="altColor" id="i106">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Call.html" title="class in org.apache.calcite.piglet">Ast.Call</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for a call to a function or operator.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i105">
+<tr class="rowColor" id="i107">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.DescribeStmt.html" title="class in org.apache.calcite.piglet">Ast.DescribeStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for DESCRIBE statement.</div>
 </th>
 </tr>
-<tr class="altColor" id="i106">
+<tr class="altColor" id="i108">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Direction.html" title="enum in org.apache.calcite.piglet">Ast.Direction</a></td>
 <th class="colLast" scope="row">
 <div class="block">Sort direction.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i107">
+<tr class="rowColor" id="i109">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.DistinctStmt.html" title="class in org.apache.calcite.piglet">Ast.DistinctStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for DISTINCT statement.</div>
 </th>
 </tr>
-<tr class="altColor" id="i108">
+<tr class="altColor" id="i110">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.DumpStmt.html" title="class in org.apache.calcite.piglet">Ast.DumpStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for DUMP statement.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i109">
+<tr class="rowColor" id="i111">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.FieldSchema.html" title="class in org.apache.calcite.piglet">Ast.FieldSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree for field schema.</div>
 </th>
 </tr>
-<tr class="altColor" id="i110">
+<tr class="altColor" id="i112">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.FilterStmt.html" title="class in org.apache.calcite.piglet">Ast.FilterStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for FILTER statement.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i111">
+<tr class="rowColor" id="i113">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.ForeachNestedStmt.html" title="class in org.apache.calcite.piglet">Ast.ForeachNestedStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for FOREACH statement (nested).</div>
 </th>
 </tr>
-<tr class="altColor" id="i112">
+<tr class="altColor" id="i114">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.ForeachStmt.html" title="class in org.apache.calcite.piglet">Ast.ForeachStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for FOREACH statement (non-nested).</div>
 </th>
 </tr>
-<tr class="rowColor" id="i113">
+<tr class="rowColor" id="i115">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.GroupStmt.html" title="class in org.apache.calcite.piglet">Ast.GroupStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for GROUP statement.</div>
 </th>
 </tr>
-<tr class="altColor" id="i114">
+<tr class="altColor" id="i116">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Identifier.html" title="class in org.apache.calcite.piglet">Ast.Identifier</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for Identifier.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i115">
+<tr class="rowColor" id="i117">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.LimitStmt.html" title="class in org.apache.calcite.piglet">Ast.LimitStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for LIMIT statement.</div>
 </th>
 </tr>
-<tr class="altColor" id="i116">
+<tr class="altColor" id="i118">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Literal.html" title="class in org.apache.calcite.piglet">Ast.Literal</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for Literal.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i117">
+<tr class="rowColor" id="i119">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.LoadStmt.html" title="class in org.apache.calcite.piglet">Ast.LoadStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for LOAD statement.</div>
 </th>
 </tr>
-<tr class="altColor" id="i118">
+<tr class="altColor" id="i120">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.MapType.html" title="class in org.apache.calcite.piglet">Ast.MapType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree for a map type.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i119">
+<tr class="rowColor" id="i121">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Node.html" title="class in org.apache.calcite.piglet">Ast.Node</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract base class for parse tree node.</div>
 </th>
 </tr>
-<tr class="altColor" id="i120">
+<tr class="altColor" id="i122">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.NumericLiteral.html" title="class in org.apache.calcite.piglet">Ast.NumericLiteral</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for NumericLiteral.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i121">
+<tr class="rowColor" id="i123">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Op.html" title="enum in org.apache.calcite.piglet">Ast.Op</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node type.</div>
 </th>
 </tr>
-<tr class="altColor" id="i122">
+<tr class="altColor" id="i124">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.OrderStmt.html" title="class in org.apache.calcite.piglet">Ast.OrderStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for ORDER statement.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i123">
+<tr class="rowColor" id="i125">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Program.html" title="class in org.apache.calcite.piglet">Ast.Program</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for a program.</div>
 </th>
 </tr>
-<tr class="altColor" id="i124">
+<tr class="altColor" id="i126">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.ScalarType.html" title="class in org.apache.calcite.piglet">Ast.ScalarType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree for scalar type such as <code>int</code>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i125">
+<tr class="rowColor" id="i127">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Schema.html" title="class in org.apache.calcite.piglet">Ast.Schema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree for schema.</div>
 </th>
 </tr>
-<tr class="altColor" id="i126">
+<tr class="altColor" id="i128">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.SpecialIdentifier.html" title="class in org.apache.calcite.piglet">Ast.SpecialIdentifier</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for "*", a special kind of identifier.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i127">
+<tr class="rowColor" id="i129">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Stmt.html" title="class in org.apache.calcite.piglet">Ast.Stmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract base class for parse tree node representing a statement.</div>
 </th>
 </tr>
-<tr class="altColor" id="i128">
+<tr class="altColor" id="i130">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.TupleType.html" title="class in org.apache.calcite.piglet">Ast.TupleType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree for a tuple type.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i129">
+<tr class="rowColor" id="i131">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.Type.html" title="class in org.apache.calcite.piglet">Ast.Type</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree for type.</div>
 </th>
 </tr>
-<tr class="altColor" id="i130">
+<tr class="altColor" id="i132">
 <td class="colFirst"><a href="org/apache/calcite/piglet/Ast.ValuesStmt.html" title="class in org.apache.calcite.piglet">Ast.ValuesStmt</a></td>
 <th class="colLast" scope="row">
 <div class="block">Parse tree node for VALUES statement.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i131">
+<tr class="rowColor" id="i133">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/AttributedDirectedGraph.html" title="class in org.apache.calcite.util.graph">AttributedDirectedGraph</a>&lt;<a href="org/apache/calcite/util/graph/AttributedDirectedGraph.html" title="type parameter in AttributedDirectedGraph">V</a>,&#8203;<a href="org/apache/calcite/util/graph/AttributedDirectedGraph.html" title="type parameter in AttributedDirectedGraph">E</a> extends <a href="org/apache/calcite/util/graph/DefaultEdge.html" ti [...]
 <th class="colLast" scope="row">
 <div class="block">Directed graph where edges have attributes and allows multiple edges between
  any two vertices provided that their attributes are different.</div>
 </th>
 </tr>
-<tr class="altColor" id="i132">
+<tr class="altColor" id="i134">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/AttributedDirectedGraph.AttributedEdgeFactory.html" title="interface in org.apache.calcite.util.graph">AttributedDirectedGraph.AttributedEdgeFactory</a>&lt;<a href="org/apache/calcite/util/graph/AttributedDirectedGraph.AttributedEdgeFactory.html" title="type parameter in AttributedDirectedGraph.AttributedEdgeFactory">V</a>,&#8203;<a href="org/apache/calcite/util/graph/AttributedDirectedGraph.AttributedEdgeFactory.html" title="ty [...]
 <th class="colLast" scope="row">
 <div class="block">Factory for edges that have attributes.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i133">
+<tr class="rowColor" id="i135">
 <td class="colFirst"><a href="org/apache/calcite/runtime/Automaton.html" title="class in org.apache.calcite.runtime">Automaton</a></td>
 <th class="colLast" scope="row">
 <div class="block">A nondeterministic finite-state automaton (NFA).</div>
 </th>
 </tr>
-<tr class="altColor" id="i134">
+<tr class="altColor" id="i136">
 <td class="colFirst"><a href="org/apache/calcite/runtime/AutomatonBuilder.html" title="class in org.apache.calcite.runtime">AutomatonBuilder</a></td>
 <th class="colLast" scope="row">
 <div class="block">Builds a state-transition graph for deterministic finite automaton.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i135">
+<tr class="rowColor" id="i137">
 <td class="colFirst"><a href="org/apache/calcite/sql2rel/AuxiliaryConverter.html" title="interface in org.apache.calcite.sql2rel">AuxiliaryConverter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Converts an expression for a group window function (e.g.</div>
 </th>
 </tr>
-<tr class="altColor" id="i136">
+<tr class="altColor" id="i138">
 <td class="colFirst"><a href="org/apache/calcite/sql2rel/AuxiliaryConverter.Impl.html" title="class in org.apache.calcite.sql2rel">AuxiliaryConverter.Impl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Simple implementation of <a href="org/apache/calcite/sql2rel/AuxiliaryConverter.html" title="interface in org.apache.calcite.sql2rel"><code>AuxiliaryConverter</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i137">
+<tr class="rowColor" id="i139">
 <td class="colFirst"><a href="org/apache/calcite/util/BarfingInvocationHandler.html" title="class in org.apache.calcite.util">BarfingInvocationHandler</a></td>
 <th class="colLast" scope="row">
 <div class="block">A class derived from <code>BarfingInvocationHandler</code> handles a method
  call by looking for a method in itself with identical parameters.</div>
 </th>
 </tr>
-<tr class="altColor" id="i138">
+<tr class="altColor" id="i140">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/BaseQueryable.html" title="class in org.apache.calcite.linq4j">BaseQueryable</a>&lt;<a href="org/apache/calcite/linq4j/BaseQueryable.html" title="type parameter in BaseQueryable">TSource</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Skeleton implementation of <a href="org/apache/calcite/linq4j/Queryable.html" title="interface in org.apache.calcite.linq4j"><code>Queryable</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i139">
+<tr class="rowColor" id="i141">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/BasicAggregateLambdaFactory.html" title="class in org.apache.calcite.adapter.enumerable">BasicAggregateLambdaFactory</a>&lt;<a href="org/apache/calcite/adapter/enumerable/BasicAggregateLambdaFactory.html" title="type parameter in BasicAggregateLambdaFactory">TSource</a>,&#8203;<a href="org/apache/calcite/adapter/enumerable/BasicAggregateLambdaFactory.html" title="type parameter in BasicAggregateLambdaFactory">TAccumulate [...]
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/adapter/enumerable/AggregateLambdaFactory.html" title="interface in org.apache.calcite.adapter.enumerable"><code>AggregateLambdaFactory</code></a> that applies a sequence of
  accumulator adders to input source.</div>
 </th>
 </tr>
-<tr class="altColor" id="i140">
+<tr class="altColor" id="i142">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/BasicLazyAccumulator.html" title="class in org.apache.calcite.adapter.enumerable">BasicLazyAccumulator</a>&lt;<a href="org/apache/calcite/adapter/enumerable/BasicLazyAccumulator.html" title="type parameter in BasicLazyAccumulator">TAccumulate</a>,&#8203;<a href="org/apache/calcite/adapter/enumerable/BasicLazyAccumulator.html" title="type parameter in BasicLazyAccumulator">TSource</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Performs accumulation against a pre-collected list of input sources,
  used with <a href="org/apache/calcite/adapter/enumerable/LazyAggregateLambdaFactory.html" title="class in org.apache.calcite.adapter.enumerable"><code>LazyAggregateLambdaFactory</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i141">
+<tr class="rowColor" id="i143">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/BasicSqlType.html" title="class in org.apache.calcite.sql.type">BasicSqlType</a></td>
 <th class="colLast" scope="row">
 <div class="block">BasicSqlType represents a standard atomic SQL type (excluding interval
  types).</div>
 </th>
 </tr>
-<tr class="altColor" id="i142">
+<tr class="altColor" id="i144">
 <td class="colFirst"><a href="org/apache/calcite/util/Benchmark.html" title="class in org.apache.calcite.util">Benchmark</a></td>
 <th class="colLast" scope="row">
 <div class="block">Helps to run benchmarks by running the same task repeatedly and averaging
  the running times.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i143">
+<tr class="rowColor" id="i145">
 <td class="colFirst"><a href="org/apache/calcite/util/Benchmark.Statistician.html" title="class in org.apache.calcite.util">Benchmark.Statistician</a></td>
 <th class="colLast" scope="row">
 <div class="block">Collects statistics for a test that is run multiple times.</div>
 </th>
 </tr>
-<tr class="altColor" id="i144">
+<tr class="altColor" id="i146">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/function/BigDecimalFunction1.html" title="interface in org.apache.calcite.linq4j.function">BigDecimalFunction1</a>&lt;<a href="org/apache/calcite/linq4j/function/BigDecimalFunction1.html" title="type parameter in BigDecimalFunction1">T0</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Function that takes one parameter and returns a <a href="https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html?is-external=true" title="class or interface in java.math" class="externalLink"><code>BigDecimal</code></a> value.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i145">
+<tr class="rowColor" id="i147">
 <td class="colFirst"><a href="org/apache/calcite/sql/dialect/BigQuerySqlDialect.html" title="class in org.apache.calcite.sql.dialect">BigQuerySqlDialect</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <code>SqlDialect</code> implementation for Google BigQuery's "Standard SQL"
  dialect.</div>
 </th>
 </tr>
-<tr class="altColor" id="i146">
+<tr class="altColor" id="i148">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/BinaryExpression.html" title="class in org.apache.calcite.linq4j.tree">BinaryExpression</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents an expression that has a binary operator.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i147">
+<tr class="rowColor" id="i149">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/BinaryOperatorConversion.html" title="class in org.apache.calcite.adapter.druid">BinaryOperatorConversion</a></td>
 <th class="colLast" scope="row">
 <div class="block">Binary operator conversion utility class; used to convert expressions like
  <code>exp1 Operator exp2</code>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i148">
+<tr class="altColor" id="i150">
 <td class="colFirst"><a href="org/apache/calcite/runtime/BinarySearch.html" title="class in org.apache.calcite.runtime">BinarySearch</a></td>
 <th class="colLast" scope="row">
 <div class="block">Binary search for the implementation of
  RANGE BETWEEN XXX PRECEDING/FOLLOWING clause.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i149">
+<tr class="rowColor" id="i151">
 <td class="colFirst"><a href="org/apache/calcite/runtime/Bindable.html" title="interface in org.apache.calcite.runtime">Bindable</a>&lt;<a href="org/apache/calcite/runtime/Bindable.html" title="type parameter in Bindable">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Statement that can be bound to a <a href="org/apache/calcite/DataContext.html" title="interface in org.apache.calcite"><code>DataContext</code></a> and then executed.</div>
 </th>
 </tr>
-<tr class="altColor" id="i150">
+<tr class="altColor" id="i152">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/BindableConvention.html" title="enum in org.apache.calcite.interpreter">BindableConvention</a></td>
 <th class="colLast" scope="row">
 <div class="block">Calling convention that returns results as an
  <a href="org/apache/calcite/linq4j/Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a> of object arrays.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i151">
+<tr class="rowColor" id="i153">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/BindableRel.html" title="interface in org.apache.calcite.interpreter">BindableRel</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression that can implement itself in Bindable
  convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i152">
+<tr class="altColor" id="i154">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.html" title="class in org.apache.calcite.interpreter">Bindables</a></td>
 <th class="colLast" scope="row">
 <div class="block">Utilities pertaining to <a href="org/apache/calcite/interpreter/BindableRel.html" title="interface in org.apache.calcite.interpreter"><code>BindableRel</code></a> and <a href="org/apache/calcite/interpreter/BindableConvention.html" title="enum in org.apache.calcite.interpreter"><code>BindableConvention</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i153">
+<tr class="rowColor" id="i155">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableAggregate.html" title="class in org.apache.calcite.interpreter">Bindables.BindableAggregate</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
  in bindable calling convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i154">
+<tr class="altColor" id="i156">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableAggregateRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableAggregateRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule that converts an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> to bindable convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i155">
+<tr class="rowColor" id="i157">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableFilter.html" title="class in org.apache.calcite.interpreter">Bindables.BindableFilter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
  in bindable convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i156">
+<tr class="altColor" id="i158">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableFilterRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableFilterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule that converts a <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> to bindable convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i157">
+<tr class="rowColor" id="i159">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableIntersect.html" title="class in org.apache.calcite.interpreter">Bindables.BindableIntersect</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Intersect.html" title="class in org.apache.calcite.rel.core"><code>Intersect</code></a> in
  bindable calling convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i158">
+<tr class="altColor" id="i160">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableJoin.html" title="class in org.apache.calcite.interpreter">Bindables.BindableJoin</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Join.html" title="class in org.apache.calcite.rel.core"><code>Join</code></a> in
  bindable calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i159">
+<tr class="rowColor" id="i161">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableJoinRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableJoinRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a <a href="org/apache/calcite/rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a>
  to a <a href="org/apache/calcite/interpreter/Bindables.BindableJoin.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableJoin</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i160">
+<tr class="altColor" id="i162">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableMatch.html" title="class in org.apache.calcite.interpreter">Bindables.BindableMatch</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Match.html" title="class in org.apache.calcite.rel.core"><code>Match</code></a>
  in bindable convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i161">
+<tr class="rowColor" id="i163">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableMatchRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableMatchRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a <a href="org/apache/calcite/rel/logical/LogicalMatch.html" title="class in org.apache.calcite.rel.logical"><code>LogicalMatch</code></a>
  to a <a href="org/apache/calcite/interpreter/Bindables.BindableMatch.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableMatch</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i162">
+<tr class="altColor" id="i164">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableMinus.html" title="class in org.apache.calcite.interpreter">Bindables.BindableMinus</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Minus.html" title="class in org.apache.calcite.rel.core"><code>Minus</code></a> in
  bindable calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i163">
+<tr class="rowColor" id="i165">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableProject.html" title="class in org.apache.calcite.interpreter">Bindables.BindableProject</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> in
  bindable calling convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i164">
+<tr class="altColor" id="i166">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableProjectRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableProjectRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a <a href="org/apache/calcite/rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
  to a <a href="org/apache/calcite/interpreter/Bindables.BindableProject.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableProject</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i165">
+<tr class="rowColor" id="i167">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableSetOpRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableSetOpRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert an <a href="org/apache/calcite/rel/core/SetOp.html" title="class in org.apache.calcite.rel.core"><code>SetOp</code></a> to a <a href="org/apache/calcite/interpreter/Bindables.BindableUnion.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableUnion</code></a>
  or <a href="org/apache/calcite/interpreter/Bindables.BindableIntersect.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableIntersect</code></a> or <a href="org/apache/calcite/interpreter/Bindables.BindableMinus.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableMinus</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i166">
+<tr class="altColor" id="i168">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableSort.html" title="class in org.apache.calcite.interpreter">Bindables.BindableSort</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
  bindable calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i167">
+<tr class="rowColor" id="i169">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableSortRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableSortRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert an <a href="org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to a
  <a href="org/apache/calcite/interpreter/Bindables.BindableSort.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableSort</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i168">
+<tr class="altColor" id="i170">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableTableScan.html" title="class in org.apache.calcite.interpreter">Bindables.BindableTableScan</a></td>
 <th class="colLast" scope="row">
 <div class="block">Scan of a table that implements <a href="org/apache/calcite/schema/ScannableTable.html" title="interface in org.apache.calcite.schema"><code>ScannableTable</code></a> and therefore can
  be converted into an <a href="org/apache/calcite/linq4j/Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i169">
+<tr class="rowColor" id="i171">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableTableScanRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableTableScanRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule that converts a <a href="org/apache/calcite/rel/core/TableScan.html" title="class in org.apache.calcite.rel.core"><code>TableScan</code></a>
  to bindable convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i170">
+<tr class="altColor" id="i172">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableTableScanRule.Config.html" title="interface in org.apache.calcite.interpreter">Bindables.BindableTableScanRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i171">
+<tr class="rowColor" id="i173">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableUnion.html" title="class in org.apache.calcite.interpreter">Bindables.BindableUnion</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Union.html" title="class in org.apache.calcite.rel.core"><code>Union</code></a> in
  bindable calling convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i172">
+<tr class="altColor" id="i174">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableValues.html" title="class in org.apache.calcite.interpreter">Bindables.BindableValues</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a>
  in bindable calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i173">
+<tr class="rowColor" id="i175">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableValuesRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableValuesRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule that converts a <a href="org/apache/calcite/rel/core/Values.html" title="class in org.apache.calcite.rel.core"><code>Values</code></a> to bindable convention.</div>
 </th>
 </tr>
-<tr class="altColor" id="i174">
+<tr class="altColor" id="i176">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableWindow.html" title="class in org.apache.calcite.interpreter">Bindables.BindableWindow</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Window.html" title="class in org.apache.calcite.rel.core"><code>Window</code></a>
  in bindable convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i175">
+<tr class="rowColor" id="i177">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Bindables.BindableWindowRule.html" title="class in org.apache.calcite.interpreter">Bindables.BindableWindowRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a <a href="org/apache/calcite/rel/logical/LogicalWindow.html" title="class in org.apache.calcite.rel.logical"><code>LogicalWindow</code></a>
  to a <a href="org/apache/calcite/interpreter/Bindables.BindableWindow.html" title="class in org.apache.calcite.interpreter"><code>Bindables.BindableWindow</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i176">
+<tr class="altColor" id="i178">
 <td class="colFirst"><a href="org/apache/calcite/rel/BiRel.html" title="class in org.apache.calcite.rel">BiRel</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract base class for relational expressions with a two inputs.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i177">
+<tr class="rowColor" id="i179">
 <td class="colFirst"><a href="org/apache/calcite/util/BitSets.html" title="class in org.apache.calcite.util">BitSets</a></td>
 <th class="colLast" scope="row">
 <div class="block">Utility functions for <a href="https://docs.oracle.com/javase/9/docs/api/java/util/BitSet.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>BitSet</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i178">
+<tr class="altColor" id="i180">
 <td class="colFirst"><a href="org/apache/calcite/util/BitString.html" title="class in org.apache.calcite.util">BitString</a></td>
 <th class="colLast" scope="row">
 <div class="block">String of bits.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i179">
+<tr class="rowColor" id="i181">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/BlockBuilder.html" title="class in org.apache.calcite.linq4j.tree">BlockBuilder</a></td>
 <th class="colLast" scope="row">
 <div class="block">Builder for <a href="org/apache/calcite/linq4j/tree/BlockStatement.html" title="class in org.apache.calcite.linq4j.tree"><code>BlockStatement</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i180">
+<tr class="altColor" id="i182">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/Blocks.html" title="class in org.apache.calcite.linq4j.tree">Blocks</a></td>
 <th class="colLast" scope="row">
 <div class="block">Helper methods concerning <a href="org/apache/calcite/linq4j/tree/BlockStatement.html" title="class in org.apache.calcite.linq4j.tree"><code>BlockStatement</code></a>s.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i181">
+<tr class="rowColor" id="i183">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/BlockStatement.html" title="class in org.apache.calcite.linq4j.tree">BlockStatement</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents a block that contains a sequence of expressions where variables
  can be defined.</div>
 </th>
 </tr>
-<tr class="altColor" id="i182">
+<tr class="altColor" id="i184">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/BreadthFirstIterator.html" title="class in org.apache.calcite.util.graph">BreadthFirstIterator</a>&lt;<a href="org/apache/calcite/util/graph/BreadthFirstIterator.html" title="type parameter in BreadthFirstIterator">V</a>,&#8203;<a href="org/apache/calcite/util/graph/BreadthFirstIterator.html" title="type parameter in BreadthFirstIterator">E</a> extends <a href="org/apache/calcite/util/graph/DefaultEdge.html" title="class in org. [...]
 <th class="colLast" scope="row">
 <div class="block">Iterates over the vertices in a directed graph in breadth-first order.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i183">
+<tr class="rowColor" id="i185">
 <td class="colFirst"><a href="org/apache/calcite/util/Bug.html" title="class in org.apache.calcite.util">Bug</a></td>
 <th class="colLast" scope="row">
 <div class="block">Holder for a list of constants describing which bugs which have not been
  fixed.</div>
 </th>
 </tr>
-<tr class="altColor" id="i184">
+<tr class="altColor" id="i186">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.html" title="class in org.apache.calcite.rel.metadata">BuiltInMetadata</a></td>
 <th class="colLast" scope="row">
 <div class="block">Contains the interfaces for several common forms of metadata.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i185">
+<tr class="rowColor" id="i187">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.AllPredicates.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.AllPredicates</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the predicates that hold in the rows emitted from a
  relational expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i186">
+<tr class="altColor" id="i188">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.AllPredicates.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.AllPredicates.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i187">
+<tr class="rowColor" id="i189">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Collation.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Collation</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about which columns are sorted.</div>
 </th>
 </tr>
-<tr class="altColor" id="i188">
+<tr class="altColor" id="i190">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Collation.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Collation.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i189">
+<tr class="rowColor" id="i191">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnOrigin.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnOrigin</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the origins of columns.</div>
 </th>
 </tr>
-<tr class="altColor" id="i190">
+<tr class="altColor" id="i192">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnOrigin.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnOrigin.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i191">
+<tr class="rowColor" id="i193">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnUniqueness.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnUniqueness</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about whether a set of columns uniquely identifies a row.</div>
 </th>
 </tr>
-<tr class="altColor" id="i192">
+<tr class="altColor" id="i194">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ColumnUniqueness.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ColumnUniqueness.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i193">
+<tr class="rowColor" id="i195">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.CumulativeCost.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.CumulativeCost</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the cost of evaluating a relational expression, including
  all of its inputs.</div>
 </th>
 </tr>
-<tr class="altColor" id="i194">
+<tr class="altColor" id="i196">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.CumulativeCost.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.CumulativeCost.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i195">
+<tr class="rowColor" id="i197">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.DistinctRowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.DistinctRowCount</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the number of distinct rows returned by a set of columns
  in a relational expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i196">
+<tr class="altColor" id="i198">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.DistinctRowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.DistinctRowCount.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i197">
+<tr class="rowColor" id="i199">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Distribution.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Distribution</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about how a relational expression is distributed.</div>
 </th>
 </tr>
-<tr class="altColor" id="i198">
+<tr class="altColor" id="i200">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Distribution.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Distribution.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i199">
+<tr class="rowColor" id="i201">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ExplainVisibility.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExplainVisibility</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about whether a relational expression should appear in a plan.</div>
 </th>
 </tr>
-<tr class="altColor" id="i200">
+<tr class="altColor" id="i202">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ExplainVisibility.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExplainVisibility.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i201">
+<tr class="rowColor" id="i203">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ExpressionLineage.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExpressionLineage</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the origins of expressions.</div>
 </th>
 </tr>
-<tr class="altColor" id="i202">
+<tr class="altColor" id="i204">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.ExpressionLineage.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.ExpressionLineage.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i203">
+<tr class="rowColor" id="i205">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.LowerBoundCost.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.LowerBoundCost</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata to get the lower bound cost of a RelNode.</div>
 </th>
 </tr>
-<tr class="altColor" id="i204">
+<tr class="altColor" id="i206">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.LowerBoundCost.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.LowerBoundCost.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i205">
+<tr class="rowColor" id="i207">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.MaxRowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MaxRowCount</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the maximum number of rows returned by a relational
  expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i206">
+<tr class="altColor" id="i208">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.MaxRowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MaxRowCount.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i207">
+<tr class="rowColor" id="i209">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Memory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the memory use of an operator.</div>
 </th>
 </tr>
-<tr class="altColor" id="i208">
+<tr class="altColor" id="i210">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Memory.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Memory.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i209">
+<tr class="rowColor" id="i211">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.MinRowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MinRowCount</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the minimum number of rows returned by a relational
  expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i210">
+<tr class="altColor" id="i212">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.MinRowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.MinRowCount.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i211">
+<tr class="rowColor" id="i213">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.NodeTypes.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NodeTypes</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the node types in a relational expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i212">
+<tr class="altColor" id="i214">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.NodeTypes.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NodeTypes.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i213">
+<tr class="rowColor" id="i215">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.NonCumulativeCost.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NonCumulativeCost</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the cost of evaluating a relational expression, not
  including its inputs.</div>
 </th>
 </tr>
-<tr class="altColor" id="i214">
+<tr class="altColor" id="i216">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.NonCumulativeCost.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.NonCumulativeCost.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i215">
+<tr class="rowColor" id="i217">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Parallelism.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Parallelism</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the degree of parallelism of a relational expression, and
@@ -1503,139 +1516,139 @@ loadScripts(document, 'script');</script>
  pools.</div>
 </th>
 </tr>
-<tr class="altColor" id="i216">
+<tr class="altColor" id="i218">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Parallelism.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Parallelism.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i217">
+<tr class="rowColor" id="i219">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.PercentageOriginalRows.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PercentageOriginalRows</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the proportion of original rows that remain in a relational
  expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i218">
+<tr class="altColor" id="i220">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.PercentageOriginalRows.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PercentageOriginalRows.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i219">
+<tr class="rowColor" id="i221">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.PopulationSize.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PopulationSize</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the number of distinct values in the original source of a
  column or set of columns.</div>
 </th>
 </tr>
-<tr class="altColor" id="i220">
+<tr class="altColor" id="i222">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.PopulationSize.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.PopulationSize.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i221">
+<tr class="rowColor" id="i223">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Predicates.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Predicates</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the predicates that hold in the rows emitted from a
  relational expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i222">
+<tr class="altColor" id="i224">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Predicates.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Predicates.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i223">
+<tr class="rowColor" id="i225">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.RowCount.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.RowCount</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the number of rows returned by a relational expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i224">
+<tr class="altColor" id="i226">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.RowCount.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.RowCount.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i225">
+<tr class="rowColor" id="i227">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Selectivity.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Selectivity</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the selectivity of a predicate.</div>
 </th>
 </tr>
-<tr class="altColor" id="i226">
+<tr class="altColor" id="i228">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Selectivity.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Selectivity.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i227">
+<tr class="rowColor" id="i229">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Size.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Size</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about the size of rows and columns.</div>
 </th>
 </tr>
-<tr class="altColor" id="i228">
+<tr class="altColor" id="i230">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.Size.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.Size.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i229">
+<tr class="rowColor" id="i231">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.TableReferences.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.TableReferences</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata to obtain references to tables used by a given expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i230">
+<tr class="altColor" id="i232">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.TableReferences.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.TableReferences.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i231">
+<tr class="rowColor" id="i233">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.UniqueKeys.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.UniqueKeys</a></td>
 <th class="colLast" scope="row">
 <div class="block">Metadata about which combinations of columns are unique identifiers.</div>
 </th>
 </tr>
-<tr class="altColor" id="i232">
+<tr class="altColor" id="i234">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/BuiltInMetadata.UniqueKeys.Handler.html" title="interface in org.apache.calcite.rel.metadata">BuiltInMetadata.UniqueKeys.Handler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Handler API.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i233">
+<tr class="rowColor" id="i235">
 <td class="colFirst"><a href="org/apache/calcite/util/BuiltInMethod.html" title="enum in org.apache.calcite.util">BuiltInMethod</a></td>
 <th class="colLast" scope="row">
 <div class="block">Built-in methods.</div>
 </th>
 </tr>
-<tr class="altColor" id="i234">
+<tr class="altColor" id="i236">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/CachingRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">CachingRelMetadataProvider</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of the <a href="org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a>
  interface that caches results from an underlying provider.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i235">
+<tr class="rowColor" id="i237">
 <td class="colFirst"><a href="org/apache/calcite/statistic/CachingSqlStatisticProvider.html" title="class in org.apache.calcite.statistic">CachingSqlStatisticProvider</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/materialize/SqlStatisticProvider.html" title="interface in org.apache.calcite.materialize"><code>SqlStatisticProvider</code></a> that reads and writes a
  cache.</div>
 </th>
 </tr>
-<tr class="altColor" id="i236">
+<tr class="altColor" id="i238">
 <td class="colFirst"><a href="org/apache/calcite/rel/core/Calc.html" title="class in org.apache.calcite.rel.core">Calc</a></td>
 <th class="colLast" scope="row">
 <div class="block"><code>Calc</code> is an abstract base class for implementations of
  <a href="org/apache/calcite/rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i237">
+<tr class="rowColor" id="i239">
 <td class="colFirst"><a href="org/apache/calcite/prepare/CalciteCatalogReader.html" title="class in org.apache.calcite.prepare">CalciteCatalogReader</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/prepare/Prepare.CatalogReader.html" title="interface in org.apache.calcite.prepare"><code>Prepare.CatalogReader</code></a>
@@ -1643,7 +1656,7 @@ loadScripts(document, 'script');</script>
  functions defined schemas.</div>
 </th>
 </tr>
-<tr class="altColor" id="i238">
+<tr class="altColor" id="i240">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteConnection.html" title="interface in org.apache.calcite.jdbc">CalciteConnection</a></td>
 <th class="colLast" scope="row">
 <div class="block">Extension to Calcite's implementation of
@@ -1651,71 +1664,71 @@ loadScripts(document, 'script');</script>
  dynamically.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i239">
+<tr class="rowColor" id="i241">
 <td class="colFirst"><a href="org/apache/calcite/config/CalciteConnectionConfig.html" title="interface in org.apache.calcite.config">CalciteConnectionConfig</a></td>
 <th class="colLast" scope="row">
 <div class="block">Interface for reading connection properties within Calcite code.</div>
 </th>
 </tr>
-<tr class="altColor" id="i240">
+<tr class="altColor" id="i242">
 <td class="colFirst"><a href="org/apache/calcite/config/CalciteConnectionConfigImpl.html" title="class in org.apache.calcite.config">CalciteConnectionConfigImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/config/CalciteConnectionConfig.html" title="interface in org.apache.calcite.config"><code>CalciteConnectionConfig</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i241">
+<tr class="rowColor" id="i243">
 <td class="colFirst"><a href="org/apache/calcite/config/CalciteConnectionProperty.html" title="enum in org.apache.calcite.config">CalciteConnectionProperty</a></td>
 <th class="colLast" scope="row">
 <div class="block">Properties that may be specified on the JDBC connect string.</div>
 </th>
 </tr>
-<tr class="altColor" id="i242">
+<tr class="altColor" id="i244">
 <td class="colFirst"><a href="org/apache/calcite/chinook/CalciteConnectionProvider.html" title="class in org.apache.calcite.chinook">CalciteConnectionProvider</a></td>
 <th class="colLast" scope="row">
 <div class="block">Provider of calcite connections for end-to-end tests.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i243">
+<tr class="rowColor" id="i245">
 <td class="colFirst"><a href="org/apache/calcite/runtime/CalciteContextException.html" title="class in org.apache.calcite.runtime">CalciteContextException</a></td>
 <th class="colLast" scope="row">
 <div class="block">Exception which contains information about the textual context of the causing
  exception.</div>
 </th>
 </tr>
-<tr class="altColor" id="i244">
+<tr class="altColor" id="i246">
 <td class="colFirst"><a href="org/apache/calcite/runtime/CalciteException.html" title="class in org.apache.calcite.runtime">CalciteException</a></td>
 <th class="colLast" scope="row">
 <div class="block">Base class for all exceptions originating from Farrago.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i245">
+<tr class="rowColor" id="i247">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteFactory.html" title="class in org.apache.calcite.jdbc">CalciteFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Extension of <code>AvaticaFactory</code>
  for Calcite.</div>
 </th>
 </tr>
-<tr class="altColor" id="i246">
+<tr class="altColor" id="i248">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteJdbc41Factory.html" title="class in org.apache.calcite.jdbc">CalciteJdbc41Factory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <code>AvaticaFactory</code>
  for Calcite and JDBC 4.1 (corresponds to JDK 1.7).</div>
 </th>
 </tr>
-<tr class="rowColor" id="i247">
+<tr class="rowColor" id="i249">
 <td class="colFirst"><a href="org/apache/calcite/util/trace/CalciteLogger.html" title="class in org.apache.calcite.util.trace">CalciteLogger</a></td>
 <th class="colLast" scope="row">
 <div class="block">Small extension to <code>Logger</code> with some performance improvements.</div>
 </th>
 </tr>
-<tr class="altColor" id="i248">
+<tr class="altColor" id="i250">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteMetaImpl.html" title="class in org.apache.calcite.jdbc">CalciteMetaImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Helper for implementing the <code>getXxx</code> methods such as
  <code>AvaticaDatabaseMetaData.getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[])</code>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i249">
+<tr class="rowColor" id="i251">
 <td class="colFirst"><a href="org/apache/calcite/util/CalciteParserException.html" title="interface in org.apache.calcite.util">CalciteParserException</a></td>
 <th class="colLast" scope="row">
 <div class="block">Tagging interface to allow a
@@ -1724,203 +1737,203 @@ loadScripts(document, 'script');</script>
  dependency on it from client-side code.</div>
 </th>
 </tr>
-<tr class="altColor" id="i250">
+<tr class="altColor" id="i252">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.html" title="interface in org.apache.calcite.jdbc">CalcitePrepare</a></td>
 <th class="colLast" scope="row">
 <div class="block">API for a service that prepares statements for execution.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i251">
+<tr class="rowColor" id="i253">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.AnalyzeViewResult.html" title="class in org.apache.calcite.jdbc">CalcitePrepare.AnalyzeViewResult</a></td>
 <th class="colLast" scope="row">
 <div class="block">The result of analyzing a view.</div>
 </th>
 </tr>
-<tr class="altColor" id="i252">
+<tr class="altColor" id="i254">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.CalciteSignature.html" title="class in org.apache.calcite.jdbc">CalcitePrepare.CalciteSignature</a>&lt;<a href="org/apache/calcite/jdbc/CalcitePrepare.CalciteSignature.html" title="type parameter in CalcitePrepare.CalciteSignature">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">The result of preparing a query.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i253">
+<tr class="rowColor" id="i255">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.Context.html" title="interface in org.apache.calcite.jdbc">CalcitePrepare.Context</a></td>
 <th class="colLast" scope="row">
 <div class="block">Context for preparing a statement.</div>
 </th>
 </tr>
-<tr class="altColor" id="i254">
+<tr class="altColor" id="i256">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.ConvertResult.html" title="class in org.apache.calcite.jdbc">CalcitePrepare.ConvertResult</a></td>
 <th class="colLast" scope="row">
 <div class="block">The result of parsing and validating a SQL query and converting it to
  relational algebra.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i255">
+<tr class="rowColor" id="i257">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.Dummy.html" title="class in org.apache.calcite.jdbc">CalcitePrepare.Dummy</a></td>
 <th class="colLast" scope="row">
 <div class="block">Namespace that allows us to define non-abstract methods inside an
  interface.</div>
 </th>
 </tr>
-<tr class="altColor" id="i256">
+<tr class="altColor" id="i258">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.ParseResult.html" title="class in org.apache.calcite.jdbc">CalcitePrepare.ParseResult</a></td>
 <th class="colLast" scope="row">
 <div class="block">The result of parsing and validating a SQL query.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i257">
+<tr class="rowColor" id="i259">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.Query.html" title="class in org.apache.calcite.jdbc">CalcitePrepare.Query</a>&lt;<a href="org/apache/calcite/jdbc/CalcitePrepare.Query.html" title="type parameter in CalcitePrepare.Query">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">A union type of the three possible ways of expressing a query: as a SQL
  string, a <a href="org/apache/calcite/linq4j/Queryable.html" title="interface in org.apache.calcite.linq4j"><code>Queryable</code></a> or a <a href="org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i258">
+<tr class="altColor" id="i260">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.SparkHandler.html" title="interface in org.apache.calcite.jdbc">CalcitePrepare.SparkHandler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Callback to register Spark as the main engine.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i259">
+<tr class="rowColor" id="i261">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalcitePrepare.SparkHandler.RuleSetBuilder.html" title="interface in org.apache.calcite.jdbc">CalcitePrepare.SparkHandler.RuleSetBuilder</a></td>
 <th class="colLast" scope="row">
 <div class="block">Allows Spark to declare the rules it needs.</div>
 </th>
 </tr>
-<tr class="altColor" id="i260">
+<tr class="altColor" id="i262">
 <td class="colFirst"><a href="org/apache/calcite/prepare/CalcitePrepareImpl.html" title="class in org.apache.calcite.prepare">CalcitePrepareImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Shit just got real.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i261">
+<tr class="rowColor" id="i263">
 <td class="colFirst"><a href="org/apache/calcite/runtime/CalciteResource.html" title="interface in org.apache.calcite.runtime">CalciteResource</a></td>
 <th class="colLast" scope="row">
 <div class="block">Compiler-checked resources for the Calcite project.</div>
 </th>
 </tr>
-<tr class="altColor" id="i262">
+<tr class="altColor" id="i264">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteResultSet.html" title="class in org.apache.calcite.jdbc">CalciteResultSet</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="https://docs.oracle.com/javase/9/docs/api/java/sql/ResultSet.html?is-external=true" title="class or interface in java.sql" class="externalLink"><code>ResultSet</code></a>
  for the Calcite engine.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i263">
+<tr class="rowColor" id="i265">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteRootSchema.html" title="class in org.apache.calcite.jdbc">CalciteRootSchema</a></td>
 <th class="colLast" scope="row">Deprecated.</th>
 </tr>
-<tr class="altColor" id="i264">
+<tr class="altColor" id="i266">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.html" title="class in org.apache.calcite.jdbc">CalciteSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Schema.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i265">
+<tr class="rowColor" id="i267">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.Entry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.Entry</a></td>
 <th class="colLast" scope="row">
 <div class="block">Entry in a schema, such as a table or sub-schema.</div>
 </th>
 </tr>
-<tr class="altColor" id="i266">
+<tr class="altColor" id="i268">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.FunctionEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.FunctionEntry</a></td>
 <th class="colLast" scope="row">
 <div class="block">Membership of a function in a schema.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i267">
+<tr class="rowColor" id="i269">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.FunctionEntryImpl.html" title="class in org.apache.calcite.jdbc">CalciteSchema.FunctionEntryImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/jdbc/CalciteSchema.FunctionEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.FunctionEntry</code></a>
  where all properties are held in fields.</div>
 </th>
 </tr>
-<tr class="altColor" id="i268">
+<tr class="altColor" id="i270">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.LatticeEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.LatticeEntry</a></td>
 <th class="colLast" scope="row">
 <div class="block">Membership of a lattice in a schema.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i269">
+<tr class="rowColor" id="i271">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.LatticeEntryImpl.html" title="class in org.apache.calcite.jdbc">CalciteSchema.LatticeEntryImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/jdbc/CalciteSchema.LatticeEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.LatticeEntry</code></a>
  where all properties are held in fields.</div>
 </th>
 </tr>
-<tr class="altColor" id="i270">
+<tr class="altColor" id="i272">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TableEntry</a></td>
 <th class="colLast" scope="row">
 <div class="block">Membership of a table in a schema.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i271">
+<tr class="rowColor" id="i273">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.TableEntryImpl.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TableEntryImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/jdbc/CalciteSchema.TableEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.TableEntry</code></a>
  where all properties are held in fields.</div>
 </th>
 </tr>
-<tr class="altColor" id="i272">
+<tr class="altColor" id="i274">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.TypeEntry.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TypeEntry</a></td>
 <th class="colLast" scope="row">
 <div class="block">Membership of a type in a schema.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i273">
+<tr class="rowColor" id="i275">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteSchema.TypeEntryImpl.html" title="class in org.apache.calcite.jdbc">CalciteSchema.TypeEntryImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/jdbc/CalciteSchema.TypeEntry.html" title="class in org.apache.calcite.jdbc"><code>CalciteSchema.TypeEntry</code></a>
  where all properties are held in fields.</div>
 </th>
 </tr>
-<tr class="altColor" id="i274">
+<tr class="altColor" id="i276">
 <td class="colFirst"><a href="org/apache/calcite/server/CalciteServer.html" title="interface in org.apache.calcite.server">CalciteServer</a></td>
 <th class="colLast" scope="row">
 <div class="block">Server.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i275">
+<tr class="rowColor" id="i277">
 <td class="colFirst"><a href="org/apache/calcite/server/CalciteServerStatement.html" title="interface in org.apache.calcite.server">CalciteServerStatement</a></td>
 <th class="colLast" scope="row">
 <div class="block">Statement within a Calcite server.</div>
 </th>
 </tr>
-<tr class="altColor" id="i276">
+<tr class="altColor" id="i278">
 <td class="colFirst"><a href="org/apache/calcite/sql/dialect/CalciteSqlDialect.html" title="class in org.apache.calcite.sql.dialect">CalciteSqlDialect</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <code>SqlDialect</code> implementation that produces SQL that can be parsed
  by Apache Calcite.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i277">
+<tr class="rowColor" id="i279">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/CalciteStatement.html" title="class in org.apache.calcite.jdbc">CalciteStatement</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="https://docs.oracle.com/javase/9/docs/api/java/sql/Statement.html?is-external=true" title="class or interface in java.sql" class="externalLink"><code>Statement</code></a>
  for the Calcite engine.</div>
 </th>
 </tr>
-<tr class="altColor" id="i278">
+<tr class="altColor" id="i280">
 <td class="colFirst"><a href="org/apache/calcite/config/CalciteSystemProperty.html" title="class in org.apache.calcite.config">CalciteSystemProperty</a>&lt;<a href="org/apache/calcite/config/CalciteSystemProperty.html" title="type parameter in CalciteSystemProperty">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">A Calcite specific system property that is used to configure various aspects of the framework.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i279">
+<tr class="rowColor" id="i281">
 <td class="colFirst"><a href="org/apache/calcite/util/trace/CalciteTimingTracer.html" title="class in org.apache.calcite.util.trace">CalciteTimingTracer</a></td>
 <th class="colLast" scope="row">
 <div class="block">CalciteTimingTracer provides a mechanism for tracing the timing of a call
  sequence at nanosecond resolution.</div>
 </th>
 </tr>
-<tr class="altColor" id="i280">
+<tr class="altColor" id="i282">
 <td class="colFirst"><a href="org/apache/calcite/util/trace/CalciteTrace.html" title="class in org.apache.calcite.util.trace">CalciteTrace</a></td>
 <th class="colLast" scope="row">
 <div class="block">Contains all of the <code>tracers</code> used within
  org.apache.calcite class libraries.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i281">
+<tr class="rowColor" id="i283">
 <td class="colFirst"><a href="org/apache/calcite/util/CalciteValidatorException.html" title="interface in org.apache.calcite.util">CalciteValidatorException</a></td>
 <th class="colLast" scope="row">
 <div class="block">Tagging interface to allow a
@@ -1929,7 +1942,7 @@ loadScripts(document, 'script');</script>
  adding a dependency on it from client-side code.</div>
 </th>
 </tr>
-<tr class="altColor" id="i282">
+<tr class="altColor" id="i284">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcMergeRule.html" title="class in org.apache.calcite.rel.rules">CalcMergeRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that merges a
@@ -1937,13 +1950,13 @@ loadScripts(document, 'script');</script>
  <a href="org/apache/calcite/rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i283">
+<tr class="rowColor" id="i285">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcMergeRule.Config.html" title="interface in org.apache.calcite.rel.rules">CalcMergeRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i284">
+<tr class="altColor" id="i286">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcRelSplitter.html" title="class in org.apache.calcite.rel.rules">CalcRelSplitter</a></td>
 <th class="colLast" scope="row">
 <div class="block">CalcRelSplitter operates on a
@@ -1952,26 +1965,26 @@ loadScripts(document, 'script');</script>
  <a href="org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i285">
+<tr class="rowColor" id="i287">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcRelSplitter.RelType.html" title="class in org.apache.calcite.rel.rules">CalcRelSplitter.RelType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Type of relational expression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i286">
+<tr class="altColor" id="i288">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcRemoveRule.html" title="class in org.apache.calcite.rel.rules">CalcRemoveRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that removes a trivial
  <a href="org/apache/calcite/rel/logical/LogicalCalc.html" title="class in org.apache.calcite.rel.logical"><code>LogicalCalc</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i287">
+<tr class="rowColor" id="i289">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcRemoveRule.Config.html" title="interface in org.apache.calcite.rel.rules">CalcRemoveRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i288">
+<tr class="altColor" id="i290">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcSplitRule.html" title="class in org.apache.calcite.rel.rules">CalcSplitRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that converts a <a href="org/apache/calcite/rel/core/Calc.html" title="class in org.apache.calcite.rel.core"><code>Calc</code></a>
@@ -1979,77 +1992,77 @@ loadScripts(document, 'script');</script>
  and <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i289">
+<tr class="rowColor" id="i291">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CalcSplitRule.Config.html" title="interface in org.apache.calcite.rel.rules">CalcSplitRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i290">
+<tr class="altColor" id="i292">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/CallImplementor.html" title="interface in org.apache.calcite.adapter.enumerable">CallImplementor</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implements a call via given translator.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i291">
+<tr class="rowColor" id="i293">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/CallSiteBinder.html" title="interface in org.apache.calcite.linq4j.tree">CallSiteBinder</a></td>
 <th class="colLast" scope="row">
 <div class="block">Creates a <a href="org/apache/calcite/linq4j/tree/DynamicExpression.html" title="class in org.apache.calcite.linq4j.tree"><code>DynamicExpression</code></a> that represents a dynamic operation bound
  by the provided <code>CallSiteBinder</code>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i292">
+<tr class="altColor" id="i294">
 <td class="colFirst"><a href="org/apache/calcite/util/CancelFlag.html" title="class in org.apache.calcite.util">CancelFlag</a></td>
 <th class="colLast" scope="row">
 <div class="block">CancelFlag is used to post and check cancellation requests.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i293">
+<tr class="rowColor" id="i295">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/CartesianProductEnumerator.html" title="class in org.apache.calcite.linq4j">CartesianProductEnumerator</a>&lt;<a href="org/apache/calcite/linq4j/CartesianProductEnumerator.html" title="type parameter in CartesianProductEnumerator">T</a>,&#8203;<a href="org/apache/calcite/linq4j/CartesianProductEnumerator.html" title="type parameter in CartesianProductEnumerator">E</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Enumerator over the cartesian product of enumerators.</div>
 </th>
 </tr>
-<tr class="altColor" id="i294">
+<tr class="altColor" id="i296">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraFilter.html" title="class in org.apache.calcite.adapter.cassandra">CassandraFilter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of a <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
  relational expression in Cassandra.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i295">
+<tr class="rowColor" id="i297">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraLimit.html" title="class in org.apache.calcite.adapter.cassandra">CassandraLimit</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of limits in Cassandra.</div>
 </th>
 </tr>
-<tr class="altColor" id="i296">
+<tr class="altColor" id="i298">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraMethod.html" title="enum in org.apache.calcite.adapter.cassandra">CassandraMethod</a></td>
 <th class="colLast" scope="row">
 <div class="block">Builtin methods in the Cassandra adapter.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i297">
+<tr class="rowColor" id="i299">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraProject.html" title="class in org.apache.calcite.adapter.cassandra">CassandraProject</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
  relational expression in Cassandra.</div>
 </th>
 </tr>
-<tr class="altColor" id="i298">
+<tr class="altColor" id="i300">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRel.html" title="interface in org.apache.calcite.adapter.cassandra">CassandraRel</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression that uses Cassandra calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i299">
+<tr class="rowColor" id="i301">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRel.Implementor.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRel.Implementor</a></td>
 <th class="colLast" scope="row">
 <div class="block">Callback for the implementation process that converts a tree of
  <a href="org/apache/calcite/adapter/cassandra/CassandraRel.html" title="interface in org.apache.calcite.adapter.cassandra"><code>CassandraRel</code></a> nodes into a CQL query.</div>
 </th>
 </tr>
-<tr class="altColor" id="i300">
+<tr class="altColor" id="i302">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rules and relational operators for
@@ -2057,20 +2070,20 @@ loadScripts(document, 'script');</script>
  calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i301">
+<tr class="rowColor" id="i303">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.CassandraFilterRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraFilterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a <a href="org/apache/calcite/rel/logical/LogicalFilter.html" title="class in org.apache.calcite.rel.logical"><code>LogicalFilter</code></a> to a
  <a href="org/apache/calcite/adapter/cassandra/CassandraFilter.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraFilter</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i302">
+<tr class="altColor" id="i304">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.CassandraFilterRule.Config.html" title="interface in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraFilterRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i303">
+<tr class="rowColor" id="i305">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.CassandraLimitRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraLimitRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a
@@ -2078,103 +2091,103 @@ loadScripts(document, 'script');</script>
  <a href="org/apache/calcite/adapter/cassandra/CassandraLimit.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraLimit</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i304">
+<tr class="altColor" id="i306">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.CassandraLimitRule.Config.html" title="interface in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraLimitRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i305">
+<tr class="rowColor" id="i307">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.CassandraProjectRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraProjectRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a <a href="org/apache/calcite/rel/logical/LogicalProject.html" title="class in org.apache.calcite.rel.logical"><code>LogicalProject</code></a>
  to a <a href="org/apache/calcite/adapter/cassandra/CassandraProject.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraProject</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i306">
+<tr class="altColor" id="i308">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.CassandraSortRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraSortRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a <a href="org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a> to a
  <a href="org/apache/calcite/adapter/cassandra/CassandraSort.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraSort</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i307">
+<tr class="rowColor" id="i309">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraRules.CassandraSortRule.Config.html" title="interface in org.apache.calcite.adapter.cassandra">CassandraRules.CassandraSortRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i308">
+<tr class="altColor" id="i310">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraSchema.html" title="class in org.apache.calcite.adapter.cassandra">CassandraSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Schema mapped onto a Cassandra column family.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i309">
+<tr class="rowColor" id="i311">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraSchemaFactory.html" title="class in org.apache.calcite.adapter.cassandra">CassandraSchemaFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory that creates a <a href="org/apache/calcite/adapter/cassandra/CassandraSchema.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraSchema</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i310">
+<tr class="altColor" id="i312">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraSort.html" title="class in org.apache.calcite.adapter.cassandra">CassandraSort</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
  relational expression in Cassandra.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i311">
+<tr class="rowColor" id="i313">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraTable.html" title="class in org.apache.calcite.adapter.cassandra">CassandraTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table based on a Cassandra column family.</div>
 </th>
 </tr>
-<tr class="altColor" id="i312">
+<tr class="altColor" id="i314">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraTable.CassandraQueryable.html" title="class in org.apache.calcite.adapter.cassandra">CassandraTable.CassandraQueryable</a>&lt;<a href="org/apache/calcite/adapter/cassandra/CassandraTable.CassandraQueryable.html" title="type parameter in CassandraTable.CassandraQueryable">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/linq4j/Queryable.html" title="interface in org.apache.calcite.linq4j"><code>Queryable</code></a> based on
  a <a href="org/apache/calcite/adapter/cassandra/CassandraTable.html" title="class in org.apache.calcite.adapter.cassandra"><code>CassandraTable</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i313">
+<tr class="rowColor" id="i315">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraTableScan.html" title="class in org.apache.calcite.adapter.cassandra">CassandraTableScan</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression representing a scan of a Cassandra collection.</div>
 </th>
 </tr>
-<tr class="altColor" id="i314">
+<tr class="altColor" id="i316">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverter.html" title="class in org.apache.calcite.adapter.cassandra">CassandraToEnumerableConverter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression representing a scan of a table in a Cassandra data source.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i315">
+<tr class="rowColor" id="i317">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CassandraToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.cassandra">CassandraToEnumerableConverterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a relational expression from
  <a href="org/apache/calcite/adapter/cassandra/CassandraRel.html#CONVENTION"><code>CassandraRel.CONVENTION</code></a> to <a href="org/apache/calcite/adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i316">
+<tr class="altColor" id="i318">
 <td class="colFirst"><a href="org/apache/calcite/util/CastingList.html" title="class in org.apache.calcite.util">CastingList</a>&lt;<a href="org/apache/calcite/util/CastingList.html" title="type parameter in CastingList">E</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Converts a list whose members are automatically down-cast to a given type.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i317">
+<tr class="rowColor" id="i319">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/CatchBlock.html" title="class in org.apache.calcite.linq4j.tree">CatchBlock</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents a catch statement in a try block.</div>
 </th>
 </tr>
-<tr class="altColor" id="i318">
+<tr class="altColor" id="i320">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/CeilOperatorConversion.html" title="class in org.apache.calcite.adapter.druid">CeilOperatorConversion</a></td>
 <th class="colLast" scope="row">
 <div class="block">DruidSqlOperatorConverter implementation that handles Ceil operations
  conversions.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i319">
+<tr class="rowColor" id="i321">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/ChainedRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">ChainedRelMetadataProvider</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of the <a href="org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a>
@@ -2182,140 +2195,147 @@ loadScripts(document, 'script');</script>
  <a href="org/apache/calcite/util/Glossary.html#CHAIN_OF_RESPONSIBILITY_PATTERN"><code>Glossary.CHAIN_OF_RESPONSIBILITY_PATTERN</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i320">
+<tr class="altColor" id="i322">
 <td class="colFirst"><a href="org/apache/calcite/sql/util/ChainedSqlOperatorTable.html" title="class in org.apache.calcite.sql.util">ChainedSqlOperatorTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">ChainedSqlOperatorTable implements the <a href="org/apache/calcite/sql/SqlOperatorTable.html" title="interface in org.apache.calcite.sql"><code>SqlOperatorTable</code></a> interface by
  chaining together any number of underlying operator table instances.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i321">
+<tr class="rowColor" id="i323">
 <td class="colFirst"><a href="org/apache/calcite/config/CharLiteralStyle.html" title="enum in org.apache.calcite.config">CharLiteralStyle</a></td>
 <th class="colLast" scope="row">
 <div class="block">Styles of character literal.</div>
 </th>
 </tr>
-<tr class="altColor" id="i322">
+<tr class="altColor" id="i324">
 <td class="colFirst"><a href="org/apache/calcite/rel/stream/Chi.html" title="class in org.apache.calcite.rel.stream">Chi</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational operator that converts a stream to a relation.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i323">
+<tr class="rowColor" id="i325">
 <td class="colFirst"><a href="org/apache/calcite/chinook/ChinookAvaticaServer.html" title="class in org.apache.calcite.chinook">ChinookAvaticaServer</a></td>
 <th class="colLast" scope="row">
 <div class="block">Wrapping Calcite engine with Avatica tansport for testing JDBC capabilities
  between Avatica JDBC transport and Calcite.</div>
 </th>
 </tr>
-<tr class="altColor" id="i324">
+<tr class="altColor" id="i326">
 <td class="colFirst"><a href="org/apache/calcite/chinook/ChinookAvaticaServer.CalciteChinookMetaFactory.html" title="class in org.apache.calcite.chinook">ChinookAvaticaServer.CalciteChinookMetaFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory for Chinook Calcite database wrapped in meta for Avatica.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i325">
+<tr class="rowColor" id="i327">
 <td class="colFirst"><a href="org/apache/calcite/chinook/ChinookAvaticaServer.RawChinookMetaFactory.html" title="class in org.apache.calcite.chinook">ChinookAvaticaServer.RawChinookMetaFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory for Chinook Calcite database wrapped in meta for Avatica.</div>
 </th>
 </tr>
-<tr class="altColor" id="i326">
+<tr class="altColor" id="i328">
 <td class="colFirst"><a href="org/apache/calcite/chinook/ChosenCustomerEmail.html" title="class in org.apache.calcite.chinook">ChosenCustomerEmail</a></td>
 <th class="colLast" scope="row">
 <div class="block">Example UDF for WHERE clause to check pushing to JDBC.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i327">
+<tr class="rowColor" id="i329">
 <td class="colFirst"><a href="org/apache/calcite/util/ChunkList.html" title="class in org.apache.calcite.util">ChunkList</a>&lt;<a href="org/apache/calcite/util/ChunkList.html" title="type parameter in ChunkList">E</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of list similar to <a href="https://docs.oracle.com/javase/9/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>LinkedList</code></a>, but stores elements
  in chunks of 32 elements.</div>
 </th>
 </tr>
-<tr class="altColor" id="i328">
+<tr class="altColor" id="i330">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ClassDeclaration.html" title="class in org.apache.calcite.linq4j.tree">ClassDeclaration</a></td>
 <th class="colLast" scope="row">
 <div class="block">Declaration of a class.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i329">
+<tr class="rowColor" id="i331">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ClassDeclarationFinder.html" title="class in org.apache.calcite.linq4j.tree">ClassDeclarationFinder</a></td>
 <th class="colLast" scope="row">
 <div class="block">Entry point for optimizers that factor out deterministic expressions to
  final static fields.</div>
 </th>
 </tr>
-<tr class="altColor" id="i330">
+<tr class="altColor" id="i332">
 <td class="colFirst"><a href="org/apache/calcite/sql/dialect/ClickHouseSqlDialect.html" title="class in org.apache.calcite.sql.dialect">ClickHouseSqlDialect</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <code>SqlDialect</code> implementation for the ClickHouse database.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i331">
+<tr class="rowColor" id="i333">
 <td class="colFirst"><a href="org/apache/calcite/adapter/clone/CloneSchema.html" title="class in org.apache.calcite.adapter.clone">CloneSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Schema that contains in-memory copies of tables from a JDBC schema.</div>
 </th>
 </tr>
-<tr class="altColor" id="i332">
+<tr class="altColor" id="i334">
 <td class="colFirst"><a href="org/apache/calcite/adapter/clone/CloneSchema.Factory.html" title="class in org.apache.calcite.adapter.clone">CloneSchema.Factory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Schema factory that creates a
  <a href="org/apache/calcite/adapter/clone/CloneSchema.html" title="class in org.apache.calcite.adapter.clone"><code>CloneSchema</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i333">
+<tr class="rowColor" id="i335">
 <td class="colFirst"><a href="org/apache/calcite/util/Closer.html" title="class in org.apache.calcite.util">Closer</a></td>
 <th class="colLast" scope="row">
 <div class="block">Helper that holds onto <a href="https://docs.oracle.com/javase/9/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>AutoCloseable</code></a> resources and releases them
  when its <code>#close</code> method is called.</div>
 </th>
 </tr>
-<tr class="altColor" id="i334">
+<tr class="altColor" id="i336">
 <td class="colFirst"><a href="org/apache/calcite/chinook/CodesFunction.html" title="class in org.apache.calcite.chinook">CodesFunction</a></td>
 <th class="colLast" scope="row">
 <div class="block">Example Table Function for lateral join checks.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i335">
+<tr class="rowColor" id="i337">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CoerceInputsRule.html" title="class in org.apache.calcite.rel.rules">CoerceInputsRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">CoerceInputsRule pre-casts inputs to a particular type.</div>
 </th>
 </tr>
-<tr class="altColor" id="i336">
+<tr class="altColor" id="i338">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CoerceInputsRule.Config.html" title="interface in org.apache.calcite.rel.rules">CoerceInputsRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i337">
+<tr class="rowColor" id="i339">
 <td class="colFirst"><a href="org/apache/calcite/rel/core/Collect.html" title="class in org.apache.calcite.rel.core">Collect</a></td>
 <th class="colLast" scope="row">
 <div class="block">A relational expression that collapses multiple rows into one.</div>
 </th>
 </tr>
-<tr class="altColor" id="i338">
+<tr class="altColor" id="i340">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/CollectNamespace.html" title="class in org.apache.calcite.sql.validate">CollectNamespace</a></td>
 <th class="colLast" scope="row">
 <div class="block">Namespace for COLLECT and TABLE constructs.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i339">
+<tr class="rowColor" id="i341">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/CollectNode.html" title="class in org.apache.calcite.interpreter">CollectNode</a></td>
 <th class="colLast" scope="row">
 <div class="block">Interpreter node that implements a
  <a href="org/apache/calcite/rel/core/Collect.html" title="class in org.apache.calcite.rel.core"><code>Collect</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i340">
+<tr class="altColor" id="i342">
 <td class="colFirst"><a href="org/apache/calcite/schema/ColumnStrategy.html" title="enum in org.apache.calcite.schema">ColumnStrategy</a></td>
 <th class="colLast" scope="row">
 <div class="block">Describes how a column gets populated.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i341">
+<tr class="rowColor" id="i343">
+<td class="colFirst"><a href="org/apache/calcite/adapter/innodb/ColumnTypeToSqlTypeConversionRules.html" title="class in org.apache.calcite.adapter.innodb">ColumnTypeToSqlTypeConversionRules</a></td>
+<th class="colLast" scope="row">
+<div class="block">Mappings from <code>innodb-java-reader</code> column types
+ to corresponding SQL types.</div>
+</th>
+</tr>
+<tr class="altColor" id="i344">
 <td class="colFirst"><a href="org/apache/calcite/plan/CommonRelSubExprRule.html" title="class in org.apache.calcite.plan">CommonRelSubExprRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <code>CommonRelSubExprRule</code> is an abstract base class for rules
@@ -2323,83 +2343,83 @@ loadScripts(document, 'script');</script>
  in a query tree.</div>
 </th>
 </tr>
-<tr class="altColor" id="i342">
+<tr class="rowColor" id="i345">
 <td class="colFirst"><a href="org/apache/calcite/plan/CommonRelSubExprRule.Config.html" title="interface in org.apache.calcite.plan">CommonRelSubExprRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i343">
+<tr class="altColor" id="i346">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/ComparableOperandTypeChecker.html" title="class in org.apache.calcite.sql.type">ComparableOperandTypeChecker</a></td>
 <th class="colLast" scope="row">
 <div class="block">Type checking strategy which verifies that types have the required attributes
  to be used as arguments to comparison operators.</div>
 </th>
 </tr>
-<tr class="altColor" id="i344">
+<tr class="rowColor" id="i347">
 <td class="colFirst"><a href="org/apache/calcite/util/Compatible.html" title="interface in org.apache.calcite.util">Compatible</a></td>
 <th class="colLast" scope="row">
 <div class="block">Compatibility layer.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i345">
+<tr class="altColor" id="i348">
 <td class="colFirst"><a href="org/apache/calcite/util/Compatible.Factory.html" title="class in org.apache.calcite.util">Compatible.Factory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Creates the implementation of Compatible suitable for the
  current environment.</div>
 </th>
 </tr>
-<tr class="altColor" id="i346">
+<tr class="rowColor" id="i349">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Compiler.html" title="interface in org.apache.calcite.interpreter">Compiler</a></td>
 <th class="colLast" scope="row">
 <div class="block">Context while converting a tree of <a href="org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a> to a program
  that can be run by an <a href="org/apache/calcite/interpreter/Interpreter.html" title="class in org.apache.calcite.interpreter"><code>Interpreter</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i347">
+<tr class="altColor" id="i350">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/ComplexMetric.html" title="class in org.apache.calcite.adapter.druid">ComplexMetric</a></td>
 <th class="colLast" scope="row">
 <div class="block">Stores information about available complex metrics in the Druid Adapter.</div>
 </th>
 </tr>
-<tr class="altColor" id="i348">
+<tr class="rowColor" id="i351">
 <td class="colFirst"><a href="org/apache/calcite/rel/hint/CompositeHintPredicate.html" title="class in org.apache.calcite.rel.hint">CompositeHintPredicate</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <a href="org/apache/calcite/rel/hint/HintPredicate.html" title="interface in org.apache.calcite.rel.hint"><code>HintPredicate</code></a> to combine multiple hint predicates into one.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i349">
+<tr class="altColor" id="i352">
 <td class="colFirst"><a href="org/apache/calcite/rel/hint/CompositeHintPredicate.Composition.html" title="enum in org.apache.calcite.rel.hint">CompositeHintPredicate.Composition</a></td>
 <th class="colLast" scope="row">
 <div class="block">How hint predicates are composed.</div>
 </th>
 </tr>
-<tr class="altColor" id="i350">
+<tr class="rowColor" id="i353">
 <td class="colFirst"><a href="org/apache/calcite/util/CompositeList.html" title="class in org.apache.calcite.util">CompositeList</a>&lt;<a href="org/apache/calcite/util/CompositeList.html" title="type parameter in CompositeList">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Read-only list that is the concatenation of sub-lists.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i351">
+<tr class="altColor" id="i354">
 <td class="colFirst"><a href="org/apache/calcite/util/CompositeMap.html" title="class in org.apache.calcite.util">CompositeMap</a>&lt;<a href="org/apache/calcite/util/CompositeMap.html" title="type parameter in CompositeMap">K</a>,&#8203;<a href="org/apache/calcite/util/CompositeMap.html" title="type parameter in CompositeMap">V</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Unmodifiable view onto multiple backing maps.</div>
 </th>
 </tr>
-<tr class="altColor" id="i352">
+<tr class="rowColor" id="i355">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/CompositeOperandTypeChecker.html" title="class in org.apache.calcite.sql.type">CompositeOperandTypeChecker</a></td>
 <th class="colLast" scope="row">
 <div class="block">This class allows multiple existing <a href="org/apache/calcite/sql/type/SqlOperandTypeChecker.html" title="interface in org.apache.calcite.sql.type"><code>SqlOperandTypeChecker</code></a> rules to be
  combined into one rule.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i353">
+<tr class="altColor" id="i356">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/CompositeOperandTypeChecker.Composition.html" title="enum in org.apache.calcite.sql.type">CompositeOperandTypeChecker.Composition</a></td>
 <th class="colLast" scope="row">
 <div class="block">How operands are composed.</div>
 </th>
 </tr>
-<tr class="altColor" id="i354">
+<tr class="rowColor" id="i357">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/CompositeSingleOperandTypeChecker.html" title="class in org.apache.calcite.sql.type">CompositeSingleOperandTypeChecker</a></td>
 <th class="colLast" scope="row">
 <div class="block">Allows multiple
@@ -2407,49 +2427,49 @@ loadScripts(document, 'script');</script>
  combined into one rule.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i355">
+<tr class="altColor" id="i358">
 <td class="colFirst"><a href="org/apache/calcite/runtime/CompressionFunctions.html" title="class in org.apache.calcite.runtime">CompressionFunctions</a></td>
 <th class="colLast" scope="row">
 <div class="block">A collection of functions used in compression and decompression.</div>
 </th>
 </tr>
-<tr class="altColor" id="i356">
+<tr class="rowColor" id="i359">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ConditionalExpression.html" title="class in org.apache.calcite.linq4j.tree">ConditionalExpression</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents an expression that has a conditional operator.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i357">
+<tr class="altColor" id="i360">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ConditionalStatement.html" title="class in org.apache.calcite.linq4j.tree">ConditionalStatement</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents an expression that has a conditional operator.</div>
 </th>
 </tr>
-<tr class="altColor" id="i358">
+<tr class="rowColor" id="i361">
 <td class="colFirst"><a href="org/apache/calcite/chinook/ConnectionFactory.html" title="class in org.apache.calcite.chinook">ConnectionFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Wrapping connection factory for Quidem.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i359">
+<tr class="altColor" id="i362">
 <td class="colFirst"><a href="org/apache/calcite/chinook/ConnectionFactory.DatabaseWrapper.html" title="enum in org.apache.calcite.chinook">ConnectionFactory.DatabaseWrapper</a></td>
 <th class="colLast" scope="row">
 <div class="block">Wrapping with Fairy environmental decoration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i360">
+<tr class="rowColor" id="i363">
 <td class="colFirst"><a href="org/apache/calcite/runtime/ConsList.html" title="class in org.apache.calcite.runtime">ConsList</a>&lt;<a href="org/apache/calcite/runtime/ConsList.html" title="type parameter in ConsList">E</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">List that consists of a head element and an immutable non-empty list.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i361">
+<tr class="altColor" id="i364">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ConstantExpression.html" title="class in org.apache.calcite.linq4j.tree">ConstantExpression</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents an expression that has a constant value.</div>
 </th>
 </tr>
-<tr class="altColor" id="i362">
+<tr class="rowColor" id="i365">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ConstantUntypedNull.html" title="class in org.apache.calcite.linq4j.tree">ConstantUntypedNull</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents a constant null of unknown type
@@ -2457,70 +2477,70 @@ loadScripts(document, 'script');</script>
  replaced to (Object)null and vise versa.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i363">
+<tr class="altColor" id="i366">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ConstructorDeclaration.html" title="class in org.apache.calcite.linq4j.tree">ConstructorDeclaration</a></td>
 <th class="colLast" scope="row">
 <div class="block">Declaration of a constructor.</div>
 </th>
 </tr>
-<tr class="altColor" id="i364">
+<tr class="rowColor" id="i367">
 <td class="colFirst"><a href="org/apache/calcite/interpreter/Context.html" title="class in org.apache.calcite.interpreter">Context</a></td>
 <th class="colLast" scope="row">
 <div class="block">Context for executing a scalar expression in an interpreter.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i365">
+<tr class="altColor" id="i368">
 <td class="colFirst"><a href="org/apache/calcite/plan/Context.html" title="interface in org.apache.calcite.plan">Context</a></td>
 <th class="colLast" scope="row">
 <div class="block">Provides library users a way to store data within the planner session and
  access it within rules.</div>
 </th>
 </tr>
-<tr class="altColor" id="i366">
+<tr class="rowColor" id="i369">
 <td class="colFirst"><a href="org/apache/calcite/plan/Contexts.html" title="class in org.apache.calcite.plan">Contexts</a></td>
 <th class="colLast" scope="row">
 <div class="block">Utilities for <a href="org/apache/calcite/plan/Context.html" title="interface in org.apache.calcite.plan"><code>Context</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i367">
+<tr class="altColor" id="i370">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/ContextSqlValidator.html" title="class in org.apache.calcite.jdbc">ContextSqlValidator</a></td>
 <th class="colLast" scope="row">
 <div class="block">A SqlValidator with schema and type factory of the given
  <a href="org/apache/calcite/jdbc/CalcitePrepare.Context.html" title="interface in org.apache.calcite.jdbc"><code>CalcitePrepare.Context</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i368">
+<tr class="rowColor" id="i371">
 <td class="colFirst"><a href="org/apache/calcite/util/ControlFlowException.html" title="class in org.apache.calcite.util">ControlFlowException</a></td>
 <th class="colLast" scope="row">
 <div class="block">Exception intended to be used for control flow, as opposed to the usual
  use of exceptions which is to signal an error condition.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i369">
+<tr class="altColor" id="i372">
 <td class="colFirst"><a href="org/apache/calcite/plan/Convention.html" title="interface in org.apache.calcite.plan">Convention</a></td>
 <th class="colLast" scope="row">
 <div class="block">Calling convention trait.</div>
 </th>
 </tr>
-<tr class="altColor" id="i370">
+<tr class="rowColor" id="i373">
 <td class="colFirst"><a href="org/apache/calcite/plan/Convention.Impl.html" title="class in org.apache.calcite.plan">Convention.Impl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Default implementation.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i371">
+<tr class="altColor" id="i374">
 <td class="colFirst"><a href="org/apache/calcite/plan/ConventionTraitDef.html" title="class in org.apache.calcite.plan">ConventionTraitDef</a></td>
 <th class="colLast" scope="row">
 <div class="block">Definition of the convention trait.</div>
 </th>
 </tr>
-<tr class="altColor" id="i372">
+<tr class="rowColor" id="i375">
 <td class="colFirst"><a href="org/apache/calcite/util/ConversionUtil.html" title="class in org.apache.calcite.util">ConversionUtil</a></td>
 <th class="colLast" scope="row">
 <div class="block">Utility functions for converting from one type to another.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i373">
+<tr class="altColor" id="i376">
 <td class="colFirst"><a href="org/apache/calcite/rel/convert/Converter.html" title="interface in org.apache.calcite.rel.convert">Converter</a></td>
 <th class="colLast" scope="row">
 <div class="block">A relational expression implements the interface <code>Converter</code> to
@@ -2529,245 +2549,259 @@ loadScripts(document, 'script');</script>
  from one value to another.</div>
 </th>
 </tr>
-<tr class="altColor" id="i374">
+<tr class="rowColor" id="i377">
 <td class="colFirst"><a href="org/apache/calcite/rel/convert/ConverterImpl.html" title="class in org.apache.calcite.rel.convert">ConverterImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract implementation of <a href="org/apache/calcite/rel/convert/Converter.html" title="interface in org.apache.calcite.rel.convert"><code>Converter</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i375">
+<tr class="altColor" id="i378">
 <td class="colFirst"><a href="org/apache/calcite/rel/convert/ConverterRule.html" title="class in org.apache.calcite.rel.convert">ConverterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract base class for a rule which converts from one calling convention to
  another without changing semantics.</div>
 </th>
 </tr>
-<tr class="altColor" id="i376">
+<tr class="rowColor" id="i379">
 <td class="colFirst"><a href="org/apache/calcite/rel/convert/ConverterRule.Config.html" title="interface in org.apache.calcite.rel.convert">ConverterRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i377">
+<tr class="altColor" id="i380">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/CoreRules.html" title="class in org.apache.calcite.rel.rules">CoreRules</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rules that perform logical transformations on relational expressions.</div>
 </th>
 </tr>
-<tr class="altColor" id="i378">
+<tr class="rowColor" id="i381">
 <td class="colFirst"><a href="org/apache/calcite/rel/core/Correlate.html" title="class in org.apache.calcite.rel.core">Correlate</a></td>
 <th class="colLast" scope="row">
 <div class="block">A relational operator that performs nested-loop joins.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i379">
+<tr class="altColor" id="i382">
+<td class="colFirst"><a href="org/apache/calcite/sql2rel/CorrelateProjectExtractor.html" title="class in org.apache.calcite.sql2rel">CorrelateProjectExtractor</a></td>
+<th class="colLast" scope="row">
+<div class="block">A visitor for relational expressions that extracts a <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>, with a "simple"
+ computation over the correlated variables, from the right side of a correlation
+ (<a href="org/apache/calcite/rel/core/Correlate.html" title="class in org.apache.calcite.rel.core"><code>Correlate</code></a>) and places it on the left side.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i383">
 <td class="colFirst"><a href="org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core">CorrelationId</a></td>
 <th class="colLast" scope="row">
 <div class="block">Describes the necessary parameters for an implementation in order to
  identify and set dynamic variables.</div>
 </th>
 </tr>
-<tr class="altColor" id="i380">
+<tr class="altColor" id="i384">
 <td class="colFirst"><a href="org/apache/calcite/sql2rel/CorrelationReferenceFinder.html" title="class in org.apache.calcite.sql2rel">CorrelationReferenceFinder</a></td>
 <th class="colLast" scope="row">
 <div class="block">Shuttle that finds references to a given <a href="org/apache/calcite/rel/core/CorrelationId.html" title="class in org.apache.calcite.rel.core"><code>CorrelationId</code></a> within a tree
  of <a href="org/apache/calcite/rel/RelNode.html" title="interface in org.apache.calcite.rel"><code>RelNode</code></a>s.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i381">
+<tr class="rowColor" id="i385">
 <td class="colFirst"><a href="org/apache/calcite/adapter/cassandra/CqlToSqlTypeConversionRules.html" title="class in org.apache.calcite.adapter.cassandra">CqlToSqlTypeConversionRules</a></td>
 <th class="colLast" scope="row">
 <div class="block">CqlToSqlTypeConversionRules defines mappings from CQL types to
  corresponding SQL types.</div>
 </th>
 </tr>
-<tr class="altColor" id="i382">
+<tr class="altColor" id="i386">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvEnumerator.html" title="class in org.apache.calcite.adapter.file">CsvEnumerator</a>&lt;<a href="org/apache/calcite/adapter/file/CsvEnumerator.html" title="type parameter in CsvEnumerator">E</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Enumerator that reads from a CSV file.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i383">
+<tr class="rowColor" id="i387">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvFieldType.html" title="enum in org.apache.calcite.adapter.file">CsvFieldType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Type of a field in a CSV file.</div>
 </th>
 </tr>
-<tr class="altColor" id="i384">
+<tr class="altColor" id="i388">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvFilterableTable.html" title="class in org.apache.calcite.adapter.csv">CsvFilterableTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table based on a CSV file that can implement simple filtering.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i385">
+<tr class="rowColor" id="i389">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvProjectTableScanRule.html" title="class in org.apache.calcite.adapter.csv">CsvProjectTableScanRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that projects from a <a href="org/apache/calcite/adapter/csv/CsvTableScan.html" title="class in org.apache.calcite.adapter.csv"><code>CsvTableScan</code></a> scan just the columns
  needed to satisfy a projection.</div>
 </th>
 </tr>
-<tr class="altColor" id="i386">
+<tr class="altColor" id="i390">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvProjectTableScanRule.html" title="class in org.apache.calcite.adapter.file">CsvProjectTableScanRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rule that projects from a <a href="org/apache/calcite/adapter/file/CsvTableScan.html" title="class in org.apache.calcite.adapter.file"><code>CsvTableScan</code></a> scan just the columns
  needed to satisfy a projection.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i387">
+<tr class="rowColor" id="i391">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvProjectTableScanRule.Config.html" title="interface in org.apache.calcite.adapter.csv">CsvProjectTableScanRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i388">
+<tr class="altColor" id="i392">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvProjectTableScanRule.Config.html" title="interface in org.apache.calcite.adapter.file">CsvProjectTableScanRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i389">
+<tr class="rowColor" id="i393">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvRules.html" title="class in org.apache.calcite.adapter.csv">CsvRules</a></td>
 <th class="colLast" scope="row">
 <div class="block">Planner rules relating to the CSV adapter.</div>
 </th>
 </tr>
-<tr class="altColor" id="i390">
+<tr class="altColor" id="i394">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvScannableTable.html" title="class in org.apache.calcite.adapter.csv">CsvScannableTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table based on a CSV file.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i391">
+<tr class="rowColor" id="i395">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvSchema.html" title="class in org.apache.calcite.adapter.csv">CsvSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Schema mapped onto a directory of CSV files.</div>
 </th>
 </tr>
-<tr class="altColor" id="i392">
+<tr class="altColor" id="i396">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvSchemaFactory.html" title="class in org.apache.calcite.adapter.csv">CsvSchemaFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory that creates a <a href="org/apache/calcite/adapter/csv/CsvSchema.html" title="class in org.apache.calcite.adapter.csv"><code>CsvSchema</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i393">
+<tr class="rowColor" id="i397">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvStreamScannableTable.html" title="class in org.apache.calcite.adapter.csv">CsvStreamScannableTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table based on a CSV file.</div>
 </th>
 </tr>
-<tr class="altColor" id="i394">
+<tr class="altColor" id="i398">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvStreamTableFactory.html" title="class in org.apache.calcite.adapter.csv">CsvStreamTableFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory that creates a <a href="org/apache/calcite/adapter/csv/CsvTranslatableTable.html" title="class in org.apache.calcite.adapter.csv"><code>CsvTranslatableTable</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i395">
+<tr class="rowColor" id="i399">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvTable.html" title="class in org.apache.calcite.adapter.csv">CsvTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Base class for table that reads CSV files.</div>
 </th>
 </tr>
-<tr class="altColor" id="i396">
+<tr class="altColor" id="i400">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvTable.html" title="class in org.apache.calcite.adapter.file">CsvTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Base class for table that reads CSV files.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i397">
+<tr class="rowColor" id="i401">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvTable.Flavor.html" title="enum in org.apache.calcite.adapter.csv">CsvTable.Flavor</a></td>
 <th class="colLast" scope="row">
 <div class="block">Various degrees of table "intelligence".</div>
 </th>
 </tr>
-<tr class="altColor" id="i398">
+<tr class="altColor" id="i402">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvTable.Flavor.html" title="enum in org.apache.calcite.adapter.file">CsvTable.Flavor</a></td>
 <th class="colLast" scope="row">
 <div class="block">Various degrees of table "intelligence".</div>
 </th>
 </tr>
-<tr class="rowColor" id="i399">
+<tr class="rowColor" id="i403">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvTableFactory.html" title="class in org.apache.calcite.adapter.csv">CsvTableFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory that creates a <a href="org/apache/calcite/adapter/csv/CsvTranslatableTable.html" title="class in org.apache.calcite.adapter.csv"><code>CsvTranslatableTable</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i400">
+<tr class="altColor" id="i404">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvTableFactory.html" title="class in org.apache.calcite.adapter.file">CsvTableFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory that creates a <a href="org/apache/calcite/adapter/file/CsvTranslatableTable.html" title="class in org.apache.calcite.adapter.file"><code>CsvTranslatableTable</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i401">
+<tr class="rowColor" id="i405">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvTableScan.html" title="class in org.apache.calcite.adapter.csv">CsvTableScan</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression representing a scan of a CSV file.</div>
 </th>
 </tr>
-<tr class="altColor" id="i402">
+<tr class="altColor" id="i406">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvTableScan.html" title="class in org.apache.calcite.adapter.file">CsvTableScan</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression representing a scan of a CSV file.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i403">
+<tr class="rowColor" id="i407">
 <td class="colFirst"><a href="org/apache/calcite/adapter/csv/CsvTranslatableTable.html" title="class in org.apache.calcite.adapter.csv">CsvTranslatableTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table based on a CSV file.</div>
 </th>
 </tr>
-<tr class="altColor" id="i404">
+<tr class="altColor" id="i408">
 <td class="colFirst"><a href="org/apache/calcite/adapter/file/CsvTranslatableTable.html" title="class in org.apache.calcite.adapter.file">CsvTranslatableTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table based on a CSV file.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i405">
+<tr class="rowColor" id="i409">
 <td class="colFirst"><a href="org/apache/calcite/sql/type/CursorReturnTypeInference.html" title="class in org.apache.calcite.sql.type">CursorReturnTypeInference</a></td>
 <th class="colLast" scope="row">
 <div class="block">Returns the rowtype of a cursor of the operand at a particular 0-based
  ordinal position.</div>
 </th>
 </tr>
-<tr class="altColor" id="i406">
+<tr class="altColor" id="i410">
 <td class="colFirst"><a href="org/apache/calcite/schema/CustomColumnResolvingTable.html" title="interface in org.apache.calcite.schema">CustomColumnResolvingTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Extension to <a href="org/apache/calcite/schema/Table.html" title="interface in org.apache.calcite.schema"><code>Table</code></a> that specifies a custom way to resolve column
  names.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i407">
+<tr class="rowColor" id="i411">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/CycleDetector.html" title="class in org.apache.calcite.util.graph">CycleDetector</a>&lt;<a href="org/apache/calcite/util/graph/CycleDetector.html" title="type parameter in CycleDetector">V</a>,&#8203;<a href="org/apache/calcite/util/graph/CycleDetector.html" title="type parameter in CycleDetector">E</a> extends <a href="org/apache/calcite/util/graph/DefaultEdge.html" title="class in org.apache.calcite.util.graph">DefaultEdge</a> [...]
 <th class="colLast" scope="row">
 <div class="block">Detects cycles in directed graphs.</div>
 </th>
 </tr>
-<tr class="altColor" id="i408">
+<tr class="altColor" id="i412">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/CyclicDefinitionException.html" title="class in org.apache.calcite.sql.validate">CyclicDefinitionException</a></td>
 <th class="colLast" scope="row">
 <div class="block">Thrown when an object, such as a view, is found to have a cylic
  definition.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i409">
+<tr class="rowColor" id="i413">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/CyclicMetadataException.html" title="class in org.apache.calcite.rel.metadata">CyclicMetadataException</a></td>
 <th class="colLast" scope="row">
 <div class="block">Exception that indicates that a cycle has been detected while
  computing metadata.</div>
 </th>
 </tr>
-<tr class="altColor" id="i410">
+<tr class="altColor" id="i414">
 <td class="colFirst"><a href="org/apache/calcite/DataContext.html" title="interface in org.apache.calcite">DataContext</a></td>
 <th class="colLast" scope="row">
 <div class="block">Runtime context allowing access to the tables in a database.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i411">
+<tr class="rowColor" id="i415">
 <td class="colFirst"><a href="org/apache/calcite/DataContext.Variable.html" title="enum in org.apache.calcite">DataContext.Variable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Variable that may be asked for in a call to <a href="org/apache/calcite/DataContext.html#get(java.lang.String)"><code>DataContext.get(java.lang.String)</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i412">
+<tr class="altColor" id="i416">
+<td class="colFirst"><a href="org/apache/calcite/DataContexts.html" title="class in org.apache.calcite">DataContexts</a></td>
+<th class="colLast" scope="row">
+<div class="block">Utilities for <a href="org/apache/calcite/DataContext.html" title="interface in org.apache.calcite"><code>DataContext</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i417">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/DateRangeRules.html" title="class in org.apache.calcite.rel.rules">DateRangeRules</a></td>
 <th class="colLast" scope="row">
 <div class="block">Collection of planner rules that convert
@@ -2777,81 +2811,81 @@ loadScripts(document, 'script');</script>
  <code>dateTime BETWEEN lower AND upper</code>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i413">
+<tr class="altColor" id="i418">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/DateRangeRules.FilterDateRangeRule.html" title="class in org.apache.calcite.rel.rules">DateRangeRules.FilterDateRangeRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule that converts EXTRACT, FLOOR and CEIL in a <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> into a date
  range.</div>
 </th>
 </tr>
-<tr class="altColor" id="i414">
+<tr class="rowColor" id="i419">
 <td class="colFirst"><a href="org/apache/calcite/rel/rules/DateRangeRules.FilterDateRangeRule.Config.html" title="interface in org.apache.calcite.rel.rules">DateRangeRules.FilterDateRangeRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i415">
+<tr class="altColor" id="i420">
 <td class="colFirst"><a href="org/apache/calcite/util/DateString.html" title="class in org.apache.calcite.util">DateString</a></td>
 <th class="colLast" scope="row">
 <div class="block">Date literal.</div>
 </th>
 </tr>
-<tr class="altColor" id="i416">
+<tr class="rowColor" id="i421">
 <td class="colFirst"><a href="org/apache/calcite/util/DateTimeStringUtils.html" title="class in org.apache.calcite.util">DateTimeStringUtils</a></td>
 <th class="colLast" scope="row">
 <div class="block">Utility methods to manipulate String representation of DateTime values.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i417">
+<tr class="altColor" id="i422">
 <td class="colFirst"><a href="org/apache/calcite/sql/dialect/Db2SqlDialect.html" title="class in org.apache.calcite.sql.dialect">Db2SqlDialect</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <code>SqlDialect</code> implementation for the IBM DB2 database.</div>
 </th>
 </tr>
-<tr class="altColor" id="i418">
+<tr class="rowColor" id="i423">
 <td class="colFirst"><a href="org/apache/calcite/server/DdlExecutor.html" title="interface in org.apache.calcite.server">DdlExecutor</a></td>
 <th class="colLast" scope="row">
 <div class="block">Executes DDL commands.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i419">
+<tr class="altColor" id="i424">
 <td class="colFirst"><a href="org/apache/calcite/server/DdlExecutorImpl.html" title="class in org.apache.calcite.server">DdlExecutorImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Abstract implementation of <a href="org/apache/calcite/server/DdlExecutor.html" title="interface in org.apache.calcite.server"><code>DdlExecutor</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i420">
+<tr class="rowColor" id="i425">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/DeclarationStatement.html" title="class in org.apache.calcite.linq4j.tree">DeclarationStatement</a></td>
 <th class="colLast" scope="row">
 <div class="block">Expression that declares and optionally initializes a variable.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i421">
+<tr class="altColor" id="i426">
 <td class="colFirst"><a href="org/apache/calcite/sql2rel/DeduplicateCorrelateVariables.html" title="class in org.apache.calcite.sql2rel">DeduplicateCorrelateVariables</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rewrites relations to ensure the same correlation is referenced by the same
  correlation variable.</div>
 </th>
 </tr>
-<tr class="altColor" id="i422">
+<tr class="rowColor" id="i427">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DefaultDimensionSpec.html" title="class in org.apache.calcite.adapter.druid">DefaultDimensionSpec</a></td>
 <th class="colLast" scope="row">
 <div class="block">Default implementation of DimensionSpec.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i423">
+<tr class="altColor" id="i428">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/DefaultDirectedGraph.html" title="class in org.apache.calcite.util.graph">DefaultDirectedGraph</a>&lt;<a href="org/apache/calcite/util/graph/DefaultDirectedGraph.html" title="type parameter in DefaultDirectedGraph">V</a>,&#8203;<a href="org/apache/calcite/util/graph/DefaultDirectedGraph.html" title="type parameter in DefaultDirectedGraph">E</a> extends <a href="org/apache/calcite/util/graph/DefaultEdge.html" title="class in org. [...]
 <th class="colLast" scope="row">
 <div class="block">Default implementation of <a href="org/apache/calcite/util/graph/DirectedGraph.html" title="interface in org.apache.calcite.util.graph"><code>DirectedGraph</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i424">
+<tr class="rowColor" id="i429">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/DefaultEdge.html" title="class in org.apache.calcite.util.graph">DefaultEdge</a></td>
 <th class="colLast" scope="row">
 <div class="block">Default implementation of Edge.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i425">
+<tr class="altColor" id="i430">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/DefaultEnumerable.html" title="class in org.apache.calcite.linq4j">DefaultEnumerable</a>&lt;<a href="org/apache/calcite/linq4j/DefaultEnumerable.html" title="type parameter in DefaultEnumerable">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of the <a href="org/apache/calcite/linq4j/Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a> interface
@@ -2859,60 +2893,60 @@ loadScripts(document, 'script');</script>
  class.</div>
 </th>
 </tr>
-<tr class="altColor" id="i426">
+<tr class="rowColor" id="i431">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/DefaultExpression.html" title="class in org.apache.calcite.linq4j.tree">DefaultExpression</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents the default value of a type or an empty expression.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i427">
+<tr class="altColor" id="i432">
 <td class="colFirst"><a href="org/apache/calcite/rel/metadata/DefaultRelMetadataProvider.html" title="class in org.apache.calcite.rel.metadata">DefaultRelMetadataProvider</a></td>
 <th class="colLast" scope="row">
 <div class="block">DefaultRelMetadataProvider supplies a default implementation of the
  <a href="org/apache/calcite/rel/metadata/RelMetadataProvider.html" title="interface in org.apache.calcite.rel.metadata"><code>RelMetadataProvider</code></a> interface.</div>
 </th>
 </tr>
-<tr class="altColor" id="i428">
+<tr class="rowColor" id="i433">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/DelegatingEnumerator.html" title="class in org.apache.calcite.linq4j">DelegatingEnumerator</a>&lt;<a href="org/apache/calcite/linq4j/DelegatingEnumerator.html" title="type parameter in DelegatingEnumerator">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Simple enumerator that just delegates all calls to the passed enumerator.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i429">
+<tr class="altColor" id="i434">
 <td class="colFirst"><a href="org/apache/calcite/util/DelegatingInvocationHandler.html" title="class in org.apache.calcite.util">DelegatingInvocationHandler</a></td>
 <th class="colLast" scope="row">
 <div class="block">A class derived from <code>DelegatingInvocationHandler</code> handles a
  method call by looking for a method in itself with identical parameters.</div>
 </th>
 </tr>
-<tr class="altColor" id="i430">
+<tr class="rowColor" id="i435">
 <td class="colFirst"><a href="org/apache/calcite/materialize/DelegatingLatticeStatisticProvider.html" title="class in org.apache.calcite.materialize">DelegatingLatticeStatisticProvider</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/materialize/LatticeStatisticProvider.html" title="interface in org.apache.calcite.materialize"><code>LatticeStatisticProvider</code></a> that delegates
  to an underlying provider.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i431">
+<tr class="altColor" id="i436">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/DelegatingNamespace.html" title="class in org.apache.calcite.sql.validate">DelegatingNamespace</a></td>
 <th class="colLast" scope="row">
 <div class="block">An implementation of <a href="org/apache/calcite/sql/validate/SqlValidatorNamespace.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorNamespace</code></a> that delegates all methods
  to an underlying object.</div>
 </th>
 </tr>
-<tr class="altColor" id="i432">
+<tr class="rowColor" id="i437">
 <td class="colFirst"><a href="org/apache/calcite/schema/impl/DelegatingSchema.html" title="class in org.apache.calcite.schema.impl">DelegatingSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/schema/Schema.html" title="interface in org.apache.calcite.schema"><code>Schema</code></a> that delegates to
  an underlying schema.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i433">
+<tr class="altColor" id="i438">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/DelegatingScope.html" title="class in org.apache.calcite.sql.validate">DelegatingScope</a></td>
 <th class="colLast" scope="row">
 <div class="block">A scope which delegates all requests to its parent scope.</div>
 </th>
 </tr>
-<tr class="altColor" id="i434">
+<tr class="rowColor" id="i439">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/DelegatingSqlValidatorCatalogReader.html" title="class in org.apache.calcite.sql.validate">DelegatingSqlValidatorCatalogReader</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of
@@ -2920,320 +2954,320 @@ loadScripts(document, 'script');</script>
  all calls to a parent catalog reader.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i435">
+<tr class="altColor" id="i440">
 <td class="colFirst"><a href="org/apache/calcite/sql/validate/DelegatingSqlValidatorTable.html" title="class in org.apache.calcite.sql.validate">DelegatingSqlValidatorTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implements <a href="org/apache/calcite/sql/validate/SqlValidatorTable.html" title="interface in org.apache.calcite.sql.validate"><code>SqlValidatorTable</code></a> by
  delegating to a parent table.</div>
 </th>
 </tr>
-<tr class="altColor" id="i436">
+<tr class="rowColor" id="i441">
 <td class="colFirst"><a href="org/apache/calcite/rel/type/DelegatingTypeSystem.html" title="class in org.apache.calcite.rel.type">DelegatingTypeSystem</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/type/RelDataTypeSystem.html" title="interface in org.apache.calcite.rel.type"><code>RelDataTypeSystem</code></a>
  that sends all methods to an underlying object.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i437">
+<tr class="altColor" id="i442">
 <td class="colFirst"><a href="org/apache/calcite/rel/stream/Delta.html" title="class in org.apache.calcite.rel.stream">Delta</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational operator that converts a relation to a stream.</div>
 </th>
 </tr>
-<tr class="altColor" id="i438">
+<tr class="rowColor" id="i443">
 <td class="colFirst"><a href="org/apache/calcite/Demo.html" title="class in org.apache.calcite">Demo</a></td>
 <th class="colLast" scope="row">
 <div class="block">Demo.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i439">
+<tr class="altColor" id="i444">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/DepthFirstIterator.html" title="class in org.apache.calcite.util.graph">DepthFirstIterator</a>&lt;<a href="org/apache/calcite/util/graph/DepthFirstIterator.html" title="type parameter in DepthFirstIterator">V</a>,&#8203;<a href="org/apache/calcite/util/graph/DepthFirstIterator.html" title="type parameter in DepthFirstIterator">E</a> extends <a href="org/apache/calcite/util/graph/DefaultEdge.html" title="class in org.apache.calci [...]
 <th class="colLast" scope="row">
 <div class="block">Iterates over the vertices in a directed graph in depth-first order.</div>
 </th>
 </tr>
-<tr class="altColor" id="i440">
+<tr class="rowColor" id="i445">
 <td class="colFirst"><a href="org/apache/calcite/sql/dialect/DerbySqlDialect.html" title="class in org.apache.calcite.sql.dialect">DerbySqlDialect</a></td>
 <th class="colLast" scope="row">
 <div class="block">A <code>SqlDialect</code> implementation for the Apache Derby database.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i441">
+<tr class="altColor" id="i446">
 <td class="colFirst"><a href="org/apache/calcite/plan/DeriveMode.html" title="enum in org.apache.calcite.plan">DeriveMode</a></td>
 <th class="colLast" scope="row">
 <div class="block">The mode of trait derivation.</div>
 </th>
 </tr>
-<tr class="altColor" id="i442">
+<tr class="rowColor" id="i447">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/function/Deterministic.html" title="annotation in org.apache.calcite.linq4j.function">Deterministic</a></td>
 <th class="colLast" scope="row">
 <div class="block">Specifies that function is deterministic (i.e.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i443">
+<tr class="altColor" id="i448">
 <td class="colFirst"><a href="org/apache/calcite/runtime/DeterministicAutomaton.html" title="class in org.apache.calcite.runtime">DeterministicAutomaton</a></td>
 <th class="colLast" scope="row">
 <div class="block">A deterministic finite automaton (DFA).</div>
 </th>
 </tr>
-<tr class="altColor" id="i444">
+<tr class="rowColor" id="i449">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/DeterministicCodeOptimizer.html" title="class in org.apache.calcite.linq4j.tree">DeterministicCodeOptimizer</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factors out deterministic expressions to final static fields.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i445">
+<tr class="altColor" id="i450">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DimensionSpec.html" title="interface in org.apache.calcite.adapter.druid">DimensionSpec</a></td>
 <th class="colLast" scope="row">
 <div class="block">Interface for Druid DimensionSpec.</div>
 </th>
 </tr>
-<tr class="altColor" id="i446">
+<tr class="rowColor" id="i451">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/DirectedGraph.html" title="interface in org.apache.calcite.util.graph">DirectedGraph</a>&lt;<a href="org/apache/calcite/util/graph/DirectedGraph.html" title="type parameter in DirectedGraph">V</a>,&#8203;<a href="org/apache/calcite/util/graph/DirectedGraph.html" title="type parameter in DirectedGraph">E</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Directed graph.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i447">
+<tr class="altColor" id="i452">
 <td class="colFirst"><a href="org/apache/calcite/util/graph/DirectedGraph.EdgeFactory.html" title="interface in org.apache.calcite.util.graph">DirectedGraph.EdgeFactory</a>&lt;<a href="org/apache/calcite/util/graph/DirectedGraph.EdgeFactory.html" title="type parameter in DirectedGraph.EdgeFactory">V</a>,&#8203;<a href="org/apache/calcite/util/graph/DirectedGraph.EdgeFactory.html" title="type parameter in DirectedGraph.EdgeFactory">E</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Factory for edges.</div>
 </th>
 </tr>
-<tr class="altColor" id="i448">
+<tr class="rowColor" id="i453">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DirectOperatorConversion.html" title="class in org.apache.calcite.adapter.druid">DirectOperatorConversion</a></td>
 <th class="colLast" scope="row">
 <div class="block">Direct operator conversion for expression like Function(exp_1,...exp_n)</div>
 </th>
 </tr>
-<tr class="rowColor" id="i449">
+<tr class="altColor" id="i454">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/function/DoubleFunction1.html" title="interface in org.apache.calcite.linq4j.function">DoubleFunction1</a>&lt;<a href="org/apache/calcite/linq4j/function/DoubleFunction1.html" title="type parameter in DoubleFunction1">T0</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Function that takes one parameter and returns a native <code>double</code> value.</div>
 </th>
 </tr>
-<tr class="altColor" id="i450">
+<tr class="rowColor" id="i455">
 <td class="colFirst"><a href="org/apache/calcite/jdbc/Driver.html" title="class in org.apache.calcite.jdbc">Driver</a></td>
 <th class="colLast" scope="row">
 <div class="block">Calcite JDBC driver.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i451">
+<tr class="altColor" id="i456">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidConnection.html" title="interface in org.apache.calcite.adapter.druid">DruidConnection</a></td>
 <th class="colLast" scope="row">
 <div class="block">Connection to Druid.</div>
 </th>
 </tr>
-<tr class="altColor" id="i452">
+<tr class="rowColor" id="i457">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidDateTimeUtils.html" title="class in org.apache.calcite.adapter.druid">DruidDateTimeUtils</a></td>
 <th class="colLast" scope="row">
 <div class="block">Utilities for generating intervals from RexNode.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i453">
+<tr class="altColor" id="i458">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidExpressions.html" title="class in org.apache.calcite.adapter.druid">DruidExpressions</a></td>
 <th class="colLast" scope="row">
 <div class="block">Expression utility class to transform Calcite expressions to Druid expressions when possible.</div>
 </th>
 </tr>
-<tr class="altColor" id="i454">
+<tr class="rowColor" id="i459">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidJson.html" title="interface in org.apache.calcite.adapter.druid">DruidJson</a></td>
 <th class="colLast" scope="row">
 <div class="block">Object that knows how to write itself to a
  <code>JsonGenerator</code>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i455">
+<tr class="altColor" id="i460">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid">DruidQuery</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression representing a scan of a Druid data set.</div>
 </th>
 </tr>
-<tr class="altColor" id="i456">
+<tr class="rowColor" id="i461">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidQuery.JsonPostAggregation.html" title="class in org.apache.calcite.adapter.druid">DruidQuery.JsonPostAggregation</a></td>
 <th class="colLast" scope="row">
 <div class="block">Post-aggregator abstract writer.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i457">
+<tr class="altColor" id="i462">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidQuery.QuerySpec.html" title="class in org.apache.calcite.adapter.druid">DruidQuery.QuerySpec</a></td>
 <th class="colLast" scope="row">
 <div class="block">Druid query specification.</div>
 </th>
 </tr>
-<tr class="altColor" id="i458">
+<tr class="rowColor" id="i463">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.html" title="class in org.apache.calcite.adapter.druid">DruidRules</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rules and relational operators for <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i459">
+<tr class="altColor" id="i464">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidAggregateProjectRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateProjectRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to push an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> and
  <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> into a <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i460">
+<tr class="rowColor" id="i465">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidAggregateProjectRule.Config.html" title="interface in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateProjectRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i461">
+<tr class="altColor" id="i466">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidAggregateRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to push an <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a>
  into a <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i462">
+<tr class="rowColor" id="i467">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidAggregateRule.Config.html" title="interface in org.apache.calcite.adapter.druid">DruidRules.DruidAggregateRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i463">
+<tr class="altColor" id="i468">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidFilterRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidFilterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to push a <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> into a
  <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i464">
+<tr class="rowColor" id="i469">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidFilterRule.Config.html" title="interface in org.apache.calcite.adapter.druid">DruidRules.DruidFilterRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i465">
+<tr class="altColor" id="i470">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidHavingFilterRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidHavingFilterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to Push a Having <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a> into a <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i466">
+<tr class="rowColor" id="i471">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidHavingFilterRule.Config.html" title="interface in org.apache.calcite.adapter.druid">DruidRules.DruidHavingFilterRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i467">
+<tr class="altColor" id="i472">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidPostAggregationProjectRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidPostAggregationProjectRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to push a <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> into a
  <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a> as a Post aggregator.</div>
 </th>
 </tr>
-<tr class="altColor" id="i468">
+<tr class="rowColor" id="i473">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidPostAggregationProjectRule.Config.html" title="interface in org.apache.calcite.adapter.druid">DruidRules.DruidPostAggregationProjectRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i469">
+<tr class="altColor" id="i474">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidProjectRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidProjectRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to push a <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a> into a
  <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i470">
+<tr class="rowColor" id="i475">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidProjectRule.Config.html" title="interface in org.apache.calcite.adapter.druid">DruidRules.DruidProjectRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i471">
+<tr class="altColor" id="i476">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidSortRule.html" title="class in org.apache.calcite.adapter.druid">DruidRules.DruidSortRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to push a <a href="org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
  into a <a href="org/apache/calcite/adapter/druid/DruidQuery.html" title="class in org.apache.calcite.adapter.druid"><code>DruidQuery</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i472">
+<tr class="rowColor" id="i477">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidRules.DruidSortRule.Config.html" title="interface in org.apache.calcite.adapter.druid">DruidRules.DruidSortRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i473">
+<tr class="altColor" id="i478">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidSchema.html" title="class in org.apache.calcite.adapter.druid">DruidSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Schema mapped onto a Druid instance.</div>
 </th>
 </tr>
-<tr class="altColor" id="i474">
+<tr class="rowColor" id="i479">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidSchemaFactory.html" title="class in org.apache.calcite.adapter.druid">DruidSchemaFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Schema factory that creates Druid schemas.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i475">
+<tr class="altColor" id="i480">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidSqlCastConverter.html" title="class in org.apache.calcite.adapter.druid">DruidSqlCastConverter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Druid cast converter operator; used to translates Calcite casts to Druid
  expression casts.</div>
 </th>
 </tr>
-<tr class="altColor" id="i476">
+<tr class="rowColor" id="i481">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidSqlOperatorConverter.html" title="interface in org.apache.calcite.adapter.druid">DruidSqlOperatorConverter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Defines how to convert a <a href="org/apache/calcite/rex/RexNode.html" title="class in org.apache.calcite.rex"><code>RexNode</code></a> with a given Calcite SQL operator to
  a Druid expression.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i477">
+<tr class="altColor" id="i482">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidTable.html" title="class in org.apache.calcite.adapter.druid">DruidTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table mapped onto a Druid table.</div>
 </th>
 </tr>
-<tr class="altColor" id="i478">
+<tr class="rowColor" id="i483">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidTableFactory.html" title="class in org.apache.calcite.adapter.druid">DruidTableFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/schema/TableFactory.html" title="interface in org.apache.calcite.schema"><code>TableFactory</code></a> for Druid.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i479">
+<tr class="altColor" id="i484">
 <td class="colFirst"><a href="org/apache/calcite/adapter/druid/DruidType.html" title="enum in org.apache.calcite.adapter.druid">DruidType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Druid type.</div>
 </th>
 </tr>
-<tr class="altColor" id="i480">
+<tr class="rowColor" id="i485">
 <td class="colFirst"><a href="org/apache/calcite/adapter/os/DuTableFunction.html" title="class in org.apache.calcite.adapter.os">DuTableFunction</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table function that executes the OS "du" ("disk usage") command
  to compute file sizes.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i481">
+<tr class="altColor" id="i486">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/DynamicExpression.html" title="class in org.apache.calcite.linq4j.tree">DynamicExpression</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents a dynamic operation.</div>
 </th>
 </tr>
-<tr class="altColor" id="i482">
+<tr class="rowColor" id="i487">
 <td class="colFirst"><a href="org/apache/calcite/rel/type/DynamicRecordType.html" title="class in org.apache.calcite.rel.type">DynamicRecordType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Specific type of RelRecordType that corresponds to a dynamic table,
  where columns are created as they are requested.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i483">
+<tr class="altColor" id="i488">
 <td class="colFirst"><a href="org/apache/calcite/rel/type/DynamicRecordTypeImpl.html" title="class in org.apache.calcite.rel.type">DynamicRecordTypeImpl</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/type/RelDataType.html" title="interface in org.apache.calcite.rel.type"><code>RelDataType</code></a> for a dynamic table.</div>
 </th>
 </tr>
-<tr class="altColor" id="i484">
+<tr class="rowColor" id="i489">
 <td class="colFirst"><a href="org/apache/calcite/piglet/DynamicTupleRecordType.html" title="class in org.apache.calcite.piglet">DynamicTupleRecordType</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents Pig Tuples with unknown fields.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i485">
+<tr class="altColor" id="i490">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchAggregate.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchAggregate</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of
@@ -3241,243 +3275,241 @@ loadScripts(document, 'script');</script>
  for ElasticSearch.</div>
 </th>
 </tr>
-<tr class="altColor" id="i486">
+<tr class="rowColor" id="i491">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchFilter.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchFilter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of a <a href="org/apache/calcite/rel/core/Filter.html" title="class in org.apache.calcite.rel.core"><code>Filter</code></a>
  relational expression in Elasticsearch.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i487">
+<tr class="altColor" id="i492">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchProject.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchProject</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Project.html" title="class in org.apache.calcite.rel.core"><code>Project</code></a>
  relational expression in Elasticsearch.</div>
 </th>
 </tr>
-<tr class="altColor" id="i488">
+<tr class="rowColor" id="i493">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchRel.html" title="interface in org.apache.calcite.adapter.elasticsearch">ElasticsearchRel</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression that uses Elasticsearch calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i489">
+<tr class="altColor" id="i494">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchRel.Implementor.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchRel.Implementor</a></td>
 <th class="colLast" scope="row">
 <div class="block">Callback for the implementation process that converts a tree of
  <a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchRel.html" title="interface in org.apache.calcite.adapter.elasticsearch"><code>ElasticsearchRel</code></a> nodes into an Elasticsearch query.</div>
 </th>
 </tr>
-<tr class="altColor" id="i490">
+<tr class="rowColor" id="i495">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchSchema.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchSchema</a></td>
 <th class="colLast" scope="row">
 <div class="block">Each table in the schema is an ELASTICSEARCH index.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i491">
+<tr class="altColor" id="i496">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchSchemaFactory.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchSchemaFactory</a></td>
 <th class="colLast" scope="row">
 <div class="block">Factory that creates an <a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchSchema.html" title="class in org.apache.calcite.adapter.elasticsearch"><code>ElasticsearchSchema</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i492">
+<tr class="rowColor" id="i497">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchSearchResult.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchSearchResult</a></td>
 <th class="colLast" scope="row">
 <div class="block">Internal object used to parse elastic search result.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i493">
+<tr class="altColor" id="i498">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchSearchResult.SearchHit.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchSearchResult.SearchHit</a></td>
 <th class="colLast" scope="row">
 <div class="block">Concrete result record which matched the query.</div>
 </th>
 </tr>
-<tr class="altColor" id="i494">
+<tr class="rowColor" id="i499">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchSearchResult.SearchHits.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchSearchResult.SearchHits</a></td>
 <th class="colLast" scope="row">
 <div class="block">Similar to <code>SearchHits</code> in ES.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i495">
+<tr class="altColor" id="i500">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchSort.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchSort</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Sort.html" title="class in org.apache.calcite.rel.core"><code>Sort</code></a>
  relational expression in Elasticsearch.</div>
 </th>
 </tr>
-<tr class="altColor" id="i496">
+<tr class="rowColor" id="i501">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchTable.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchTable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Table based on an Elasticsearch index.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i497">
+<tr class="altColor" id="i502">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchTable.ElasticsearchQueryable.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchTable.ElasticsearchQueryable</a>&lt;<a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchTable.ElasticsearchQueryable.html" title="type parameter in ElasticsearchTable.ElasticsearchQueryable">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/linq4j/Queryable.html" title="interface in org.apache.calcite.linq4j"><code>Queryable</code></a> based on
  a <a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchTable.html" title="class in org.apache.calcite.adapter.elasticsearch"><code>ElasticsearchTable</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i498">
+<tr class="rowColor" id="i503">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchTableScan.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchTableScan</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression representing a scan of an Elasticsearch type.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i499">
+<tr class="altColor" id="i504">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchToEnumerableConverter.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchToEnumerableConverter</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression representing a scan of a table in an Elasticsearch data source.</div>
 </th>
 </tr>
-<tr class="altColor" id="i500">
+<tr class="rowColor" id="i505">
 <td class="colFirst"><a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchToEnumerableConverterRule.html" title="class in org.apache.calcite.adapter.elasticsearch">ElasticsearchToEnumerableConverterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule to convert a relational expression from
  <a href="org/apache/calcite/adapter/elasticsearch/ElasticsearchRel.html#CONVENTION"><code>ElasticsearchRel.CONVENTION</code></a> to <a href="org/apache/calcite/adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>EnumerableConvention</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i501">
+<tr class="altColor" id="i506">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/tree/ElementInit.html" title="class in org.apache.calcite.linq4j.tree">ElementInit</a></td>
 <th class="colLast" scope="row">
 <div class="block">Represents an initializer for a single element of an
  <a href="org/apache/calcite/linq4j/Enumerable.html" title="interface in org.apache.calcite.linq4j"><code>Enumerable</code></a> collection.</div>
 </th>
 </tr>
-<tr class="altColor" id="i502">
+<tr class="rowColor" id="i507">
 <td class="colFirst"><a href="org/apache/calcite/linq4j/Enumerable.html" title="interface in org.apache.calcite.linq4j">Enumerable</a>&lt;<a href="org/apache/calcite/linq4j/Enumerable.html" title="type parameter in Enumerable">T</a>&gt;</td>
 <th class="colLast" scope="row">
 <div class="block">Exposes the enumerator, which supports a simple iteration over a collection.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i503">
+<tr class="altColor" id="i508">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableAggregate.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableAggregate</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Aggregate.html" title="class in org.apache.calcite.rel.core"><code>Aggregate</code></a> in
  <a href="org/apache/calcite/adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i504">
+<tr class="rowColor" id="i509">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableAggregateBase.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableAggregateBase</a></td>
 <th class="colLast" scope="row">
 <div class="block">Base class for EnumerableAggregate and EnumerableSortedAggregate.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i505">
+<tr class="altColor" id="i510">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableBatchNestedLoopJoin.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBatchNestedLoopJoin</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of batch nested loop join in
  <a href="org/apache/calcite/adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
 </th>
 </tr>
-<tr class="altColor" id="i506">
+<tr class="rowColor" id="i511">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableBatchNestedLoopJoinRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBatchNestedLoopJoinRule</a></td>
 <th class="colLast" scope="row">
-<div class="block">Planner rule that converts a
- <a href="org/apache/calcite/rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a> into an
- <a href="org/apache/calcite/adapter/enumerable/EnumerableBatchNestedLoopJoin.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableBatchNestedLoopJoin</code></a>.</div>
+<div class="block">Rule to convert a <a href="org/apache/calcite/rel/logical/LogicalJoin.html" title="class in org.apache.calcite.rel.logical"><code>LogicalJoin</code></a> to an <a href="org/apache/calcite/adapter/enumerable/EnumerableBatchNestedLoopJoin.html" title="class in org.apache.calcite.adapter.enumerable"><code>EnumerableBatchNestedLoopJoin</code></a>.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i507">
+<tr class="altColor" id="i512">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableBatchNestedLoopJoinRule.Config.html" title="interface in org.apache.calcite.adapter.enumerable">EnumerableBatchNestedLoopJoinRule.Config</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule configuration.</div>
 </th>
 </tr>
-<tr class="altColor" id="i508">
+<tr class="rowColor" id="i513">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableBindable.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBindable</a></td>
 <th class="colLast" scope="row">
 <div class="block">Relational expression that converts an enumerable input to interpretable
  calling convention.</div>
 </th>
 </tr>
-<tr class="rowColor" id="i509">
+<tr class="altColor" id="i514">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableBindable.EnumerableToBindableConverterRule.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableBindable.EnumerableToBindableConverterRule</a></td>
 <th class="colLast" scope="row">
 <div class="block">Rule that converts any enumerable relational expression to bindable.</div>
 </th>
 </tr>
-<tr class="altColor" id="i510">
+<tr class="rowColor" id="i515">
 <td class="colFirst"><a href="org/apache/calcite/adapter/enumerable/EnumerableCalc.html" title="class in org.apache.calcite.adapter.enumerable">EnumerableCalc</a></td>
 <th class="colLast" scope="row">
 <div class="block">Implementation of <a href="org/apache/calcite/rel/core/Calc.html" title="class in org.apache.calcite.rel.core"><code>Calc</code></a> in
  <a href="org/apache/calcite/adapter/enumerable/EnumerableConvention.html" title="enum in org.apache.calcite.adapter.enumerable"><code>enumerable calling convention</code></a>.</div>
 </th>
 </tr>
... 163399 lines suppressed ...