This is an automated email from the ASF dual-hosted git repository.
englefly pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 35c0697a60f [fix](planner)SelectStmt's constructor should initialize
originSelectList member (#24755)
35c0697a60f is described below
commit 35c0697a60fd93c1509d4abf921e9cea73c44658
Author: starocean999 <[email protected]>
AuthorDate: Fri Sep 22 19:31:29 2023 +0800
[fix](planner)SelectStmt's constructor should initialize originSelectList
member (#24755)
resetSelectList method will use originSelectList to recover the origin
select list. If the originSelectList is lost in constructor, the
resetSelectList will fail to recover and make the analyze process fail.
---
.../java/org/apache/doris/analysis/SelectStmt.java | 1 +
.../test_inlineview_with_window_function.out | 4 ++
.../test_inlineview_with_window_function.groovy | 81 ++++++++++++++++++++++
3 files changed, 86 insertions(+)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
index 10e54da3d22..797237dba51 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java
@@ -182,6 +182,7 @@ public class SelectStmt extends QueryStmt {
this.id = other.id;
selectList = other.selectList.clone();
fromClause = other.fromClause.clone();
+ originSelectList = other.originSelectList != null ?
other.originSelectList.clone() : null;
whereClause = (other.whereClause != null) ? other.whereClause.clone()
: null;
originalWhereClause = (other.originalWhereClause != null) ?
other.originalWhereClause.clone() : null;
groupByClause = (other.groupByClause != null) ?
other.groupByClause.clone() : null;
diff --git
a/regression-test/data/correctness_p0/test_inlineview_with_window_function.out
b/regression-test/data/correctness_p0/test_inlineview_with_window_function.out
new file mode 100644
index 00000000000..281bf5dd1b2
--- /dev/null
+++
b/regression-test/data/correctness_p0/test_inlineview_with_window_function.out
@@ -0,0 +1,4 @@
+-- This file is automatically generated. You should know what you did if you
want to edit this
+-- !order --
+2023-06-10 cib2205045_1_1s 0.0000 168939.0 0.0000 0.0 0.0000
0.0 0.0000 day
+
diff --git
a/regression-test/suites/correctness_p0/test_inlineview_with_window_function.groovy
b/regression-test/suites/correctness_p0/test_inlineview_with_window_function.groovy
index 0da26ff8f37..cdeb65e9ec5 100644
---
a/regression-test/suites/correctness_p0/test_inlineview_with_window_function.groovy
+++
b/regression-test/suites/correctness_p0/test_inlineview_with_window_function.groovy
@@ -70,4 +70,85 @@ suite("test_inlineview_with_window_function") {
sql """
drop table if exists test_table_bb;
"""
+
+ sql """drop table if exists test_table_aaa;"""
+ sql """drop table if exists test_table_bbb;"""
+ sql """CREATE TABLE `test_table_aaa` (
+ `ordernum` varchar(65533) NOT NULL ,
+ `dnt` datetime NOT NULL ,
+ `data` json NULL
+ ) ENGINE=OLAP
+ DUPLICATE KEY(`ordernum`, `dnt`)
+ COMMENT 'OLAP'
+ DISTRIBUTED BY HASH(`ordernum`) BUCKETS 3
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ );"""
+
+ sql """CREATE TABLE `test_table_bbb` (
+ `dnt` varchar(200) NULL,
+ `ordernum` varchar(200) NULL,
+ `type` varchar(20) NULL,
+ `powers` double SUM NULL,
+ `p0` double REPLACE NULL,
+ `heatj` double SUM NULL,
+ `j0` double REPLACE NULL,
+ `heatg` double SUM NULL,
+ `g0` double REPLACE NULL,
+ `solar` double SUM NULL
+ ) ENGINE=OLAP
+ AGGREGATE KEY(`dnt`, `ordernum`, `type`)
+ COMMENT 'OLAP'
+ DISTRIBUTED BY HASH(`ordernum`) BUCKETS 1
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ ); """
+
+ sql """DROP MATERIALIZED VIEW IF EXISTS ods_zn_dnt_max1 ON
test_table_aaa;"""
+ sql """create materialized view ods_zn_dnt_max1 as
+ select ordernum,max(dnt) as dnt from test_table_aaa
+ group by ordernum
+ ORDER BY ordernum;"""
+
+ sql """insert into test_table_aaa values('cib2205045_1_1s','2023/6/10
3:55:33','{"DB1":168939,"DNT":"2023-06-10 03:55:33"}');"""
+ sql """insert into test_table_aaa values('cib2205045_1_1s','2023/6/10
3:56:33','{"DB1":168939,"DNT":"2023-06-10 03:56:33"}');"""
+ sql """insert into test_table_aaa values('cib2205045_1_1s','2023/6/10
3:57:33','{"DB1":168939,"DNT":"2023-06-10 03:57:33"}');"""
+ sql """insert into test_table_aaa values('cib2205045_1_1s','2023/6/10
3:58:33','{"DB1":168939,"DNT":"2023-06-10 03:58:33"}');"""
+
+ qt_order """select
+ '2023-06-10',
+ tmp.ordernum,
+ cast(nvl(if(tmp.p0-tmp1.p0>0,tmp.p0-tmp1.p0,tmp.p0-tmp.p1),0)
as decimal(10,4)),
+ nvl(tmp.p0,0),
+
cast(nvl(if(tmp.j0-tmp1.j0>0,tmp.j0-tmp1.j0,tmp.j0-tmp.j1)*277.78,0) as
decimal(10,4)),
+ nvl(tmp.j0,0),
+
cast(nvl(if(tmp.g0-tmp1.g0>0,tmp.g0-tmp1.g0,tmp.g0-tmp.g1)*277.78,0) as
decimal(10,4)),
+ nvl(tmp.g0,0),
+ cast(nvl(tmp.solar,0) as decimal(20,4)),
+ 'day'
+ from
+ (
+ select
+ ordernum,
+ max(ljrl1) g0,min(ljrl1) g1,
+ max(ljrl2) j0,min(ljrl2) j1,
+ max(db1) p0,min(db1) p1,
+ max(fzl)*1600*0.278 solar
+ from(
+ select ordernum,dnt,
+ cast(if(json_extract(data,'\$.LJRL1')=0 or
json_extract(data,'\$.LJRL1') like '%E%',null,json_extract(data,'\$.LJRL1')) as
double) ljrl1,
+ cast(if(json_extract(data,'\$.LJRL2')=0 or
json_extract(data,'\$.LJRL2') like '%E%',null,json_extract(data,'\$.LJRL2')) as
double) ljrl2,
+ first_value(cast(if(json_extract(data,'\$.FZL')=0
or json_extract(data,'\$.FZL') like '%E%',null,
+ json_extract(data,'\$.FZL')) as double)) over
(partition by ordernum order by dnt desc) fzl,
+ cast(if(json_extract(data,'\$.DB1')=0 or
json_extract(data,'\$.DB1') like '%E%',null,json_extract(data,'\$.DB1')) as
double) db1
+ from test_table_aaa
+ )a1
+ group by ordernum
+ )tmp left join (
+ select
+ ordernum,MAX(p0) p0,MAX(j0) j0,MAX(g0) g0
+ from test_table_bbb
+ group by ordernum
+ )tmp1
+ on tmp.ordernum=tmp1.ordernum;"""
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]