You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2022/06/23 07:39:21 UTC
[doris] 02/04: [fix][vectorized] Fix bug the of window function result not match plan nullable (#10340)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch dev-1.0.1
in repository https://gitbox.apache.org/repos/asf/doris.git
commit 9c8510b99ae419e9ab5aa9a37de9edbcf7e62e7b
Author: HappenLee <ha...@hotmail.com>
AuthorDate: Thu Jun 23 08:40:12 2022 +0800
[fix][vectorized] Fix bug the of window function result not match plan nullable (#10340)
Co-authored-by: lihaopeng <li...@baidu.com>
---
.../org/apache/doris/analysis/AggregateInfoBase.java | 2 +-
.../java/org/apache/doris/analysis/AnalyticInfo.java | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfoBase.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfoBase.java
index ed016ef3f0..ad4dedd591 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfoBase.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfoBase.java
@@ -115,7 +115,7 @@ public abstract class AggregateInfoBase {
* Also updates the appropriate substitution map, and creates and registers auxiliary
* equality predicates between the grouping slots and the grouping exprs.
*/
- private TupleDescriptor createTupleDesc(Analyzer analyzer, boolean isOutputTuple) {
+ protected TupleDescriptor createTupleDesc(Analyzer analyzer, boolean isOutputTuple) {
TupleDescriptor result =
analyzer.getDescTbl().createTupleDescriptor(
tupleDebugName() + (isOutputTuple ? "-out" : "-intermed"));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticInfo.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticInfo.java
index d1bf918576..ab3765ad29 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticInfo.java
@@ -105,6 +105,24 @@ public final class AnalyticInfo extends AggregateInfoBase {
return result;
}
+ /**
+ * Creates the intermediate and output tuple descriptors. If no agg expr has an
+ * intermediate type different from its output type, then only the output tuple
+ * descriptor is created and the intermediate tuple is set to the output tuple.
+ * TODO: Rethink we really need to use Analyticinfo be subclass of AggregateInfoBase,
+ * it seems only use the aggregateExprs
+ */
+ protected void createTupleDescs(Analyzer analyzer) {
+ // Create the intermediate tuple desc first, so that the tuple ids are increasing
+ // from bottom to top in the plan tree.
+ intermediateTupleDesc_ = createTupleDesc(analyzer, false);
+ if (requiresIntermediateTuple(aggregateExprs_, false)) {
+ outputTupleDesc_ = createTupleDesc(analyzer, true);
+ } else {
+ outputTupleDesc_ = intermediateTupleDesc_;
+ }
+ }
+
/**
* Returns the intersection of the partition exprs of all the
* analytic functions.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org