This is an automated email from the ASF dual-hosted git repository. jhyde pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/calcite.git
from e981e217d1 Site: Add Tanner Clary as committer new 6324646db7 In ImmutableBitSet, specialize forEach, and add forEachInt, anyMatch, allMatch new b42c181a60 Refactor: RelBuilder.variable(Holder) becomes variable(Supplier) new 7fc3e1b007 Refactor: Add RelNode.stripped new b2f59d7b90 [CALCITE-5697] RelBuilder.convert does not match nullability if top of stack is a Project new ddb4200f8f Refactor: Add fields AggregateCall.rexList and RelBuilder.AggCall.preOperands new de4631f62c [CALCITE-4334] LITERAL_AGG, an internal aggregate function that returns a constant value new 379f41d3be [CALCITE-5717] RelBuilder.project of literals on a single-row Aggregate should create a Values The 7 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../adapter/enumerable/AggResultContext.java | 5 + .../enumerable/EnumerableSortedAggregate.java | 3 +- .../calcite/adapter/enumerable/PhysType.java | 4 + .../calcite/adapter/enumerable/PhysTypeImpl.java | 4 + .../calcite/adapter/enumerable/RexImpTable.java | 25 ++ .../enumerable/impl/AggResultContextImpl.java | 8 + .../java/org/apache/calcite/plan/RelOptUtil.java | 4 +- .../apache/calcite/plan/SubstitutionVisitor.java | 5 +- .../org/apache/calcite/plan/hep/HepPlanner.java | 3 + .../calcite/plan/hep/HepRelMetadataProvider.java | 3 +- .../org/apache/calcite/plan/hep/HepRelVertex.java | 15 +- .../plan/visualizer/RuleMatchVisualizer.java | 14 +- .../org/apache/calcite/plan/volcano/RelSubset.java | 6 + .../main/java/org/apache/calcite/rel/RelNode.java | 5 + .../org/apache/calcite/rel/core/Aggregate.java | 48 ++- .../org/apache/calcite/rel/core/AggregateCall.java | 136 +++++--- .../java/org/apache/calcite/rel/core/Project.java | 19 ++ .../java/org/apache/calcite/rel/core/Window.java | 3 +- .../calcite/rel/externalize/RelDotWriter.java | 13 +- .../calcite/rel/externalize/RelJsonReader.java | 3 +- .../calcite/rel/metadata/RelMdAllPredicates.java | 8 +- .../calcite/rel/metadata/RelMdCollation.java | 2 +- .../calcite/rel/metadata/RelMdPredicates.java | 48 ++- .../apache/calcite/rel/metadata/RelMdRowCount.java | 2 +- .../apache/calcite/rel/mutable/MutableRels.java | 13 +- .../calcite/rel/rel2sql/RelToSqlConverter.java | 17 +- .../apache/calcite/rel/rel2sql/SqlImplementor.java | 49 ++- .../rel/rules/AggregateCaseToFilterRule.java | 34 +- .../AggregateExpandDistinctAggregatesRule.java | 24 +- .../rel/rules/AggregateFilterTransposeRule.java | 2 +- .../calcite/rel/rules/AggregateMergeRule.java | 2 +- .../rel/rules/AggregateReduceFunctionsRule.java | 14 +- .../calcite/rel/rules/AggregateRemoveRule.java | 51 ++- .../calcite/rel/rules/AggregateStarTableRule.java | 26 +- .../rel/rules/AggregateUnionTransposeRule.java | 2 +- .../rel/rules/ProjectAggregateMergeRule.java | 4 +- .../rel/rules/ProjectCorrelateTransposeRule.java | 14 +- .../apache/calcite/rel/rules/PruneEmptyRules.java | 2 +- .../calcite/rel/rules/SubQueryRemoveRule.java | 5 +- .../main/java/org/apache/calcite/rex/RexUtil.java | 2 +- .../main/java/org/apache/calcite/sql/SqlKind.java | 8 + .../org/apache/calcite/sql/SqlOperatorBinding.java | 9 +- .../calcite/sql/SqlSingletonAggFunction.java | 50 +++ .../calcite/sql/SqlSplittableAggFunction.java | 47 +-- .../apache/calcite/sql/SqlStaticAggFunction.java | 49 +++ .../main/java/org/apache/calcite/sql/SqlUtil.java | 46 +++ .../calcite/sql/fun/SqlAnyValueAggFunction.java | 2 +- .../calcite/sql/fun/SqlBasicAggFunction.java | 45 ++- .../calcite/sql/fun/SqlBitOpAggFunction.java | 2 +- .../calcite/sql/fun/SqlCountAggFunction.java | 2 +- .../calcite/sql/fun/SqlGroupingFunction.java | 47 +++ .../calcite/sql/fun/SqlInternalOperators.java | 5 + .../calcite/sql/fun/SqlLiteralAggFunction.java | 68 ++++ .../calcite/sql/fun/SqlMinMaxAggFunction.java | 2 +- .../calcite/sql/fun/SqlSingleValueAggFunction.java | 2 +- .../apache/calcite/sql/fun/SqlSumAggFunction.java | 2 +- .../sql/fun/SqlSumEmptyIsZeroAggFunction.java | 2 +- .../apache/calcite/sql2rel/RelDecorrelator.java | 30 +- .../apache/calcite/sql2rel/SqlToRelConverter.java | 37 +- .../java/org/apache/calcite/tools/RelBuilder.java | 376 +++++++++++++++------ .../org/apache/calcite/util/ImmutableBitSet.java | 74 +++- .../org/apache/calcite/util/ImmutableIntList.java | 17 + .../apache/calcite/util/mapping/MappingType.java | 2 +- .../materialize/NormalizationTrimFieldTest.java | 2 +- .../org/apache/calcite/plan/RelWriterTest.java | 8 +- .../calcite/plan/volcano/TraitPropagationTest.java | 3 +- .../rel/logical/ToLogicalConverterTest.java | 2 +- .../calcite/rel/rel2sql/RelToSqlConverterTest.java | 60 +++- .../sql2rel/CorrelateProjectExtractorTest.java | 22 +- .../calcite/sql2rel/RelDecorrelatorTest.java | 2 +- .../org/apache/calcite/test/RelBuilderTest.java | 101 ++++-- .../org/apache/calcite/test/RelMetadataTest.java | 47 ++- .../org/apache/calcite/test/RelOptRulesTest.java | 12 +- .../apache/calcite/test/SqlToRelConverterTest.java | 9 + .../apache/calcite/util/ImmutableBitSetTest.java | 136 +++++++- .../java/org/apache/calcite/util/UtilTest.java | 31 ++ .../org/apache/calcite/test/RelOptRulesTest.xml | 37 +- .../apache/calcite/test/SqlToRelConverterTest.xml | 10 + core/src/test/resources/sql/agg.iq | 115 +++++++ core/src/test/resources/sql/blank.iq | 7 +- core/src/test/resources/sql/sub-query.iq | 4 +- site/_docs/algebra.md | 5 +- 82 files changed, 1635 insertions(+), 549 deletions(-) create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlSingletonAggFunction.java create mode 100644 core/src/main/java/org/apache/calcite/sql/SqlStaticAggFunction.java create mode 100644 core/src/main/java/org/apache/calcite/sql/fun/SqlLiteralAggFunction.java