[
https://issues.apache.org/jira/browse/IOTDB-5785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
yang caiyin reassigned IOTDB-5785:
----------------------------------
Assignee: yang caiyin
> NPE in TransformOperator when input column is expression
> --------------------------------------------------------
>
> Key: IOTDB-5785
> URL: https://issues.apache.org/jira/browse/IOTDB-5785
> Project: Apache IoTDB
> Issue Type: Bug
> Reporter: yang caiyin
> Assignee: yang caiyin
> Priority: Major
> Attachments: image-2023-04-18-15-22-43-955.png,
> image-2023-04-18-15-23-34-326.png
>
>
> 使用分支代码[https://github.com/ycycse/iotdb/tree/orderByTransformError]
> 启动1C1D,写入以下数据
> {code:java}
> CREATE DATABASE root.sg;
> CREATE TIMESERIES root.sg.d.num WITH DATATYPE=INT32, ENCODING=RLE;
> CREATE TIMESERIES root.sg.d.bigNum WITH DATATYPE=INT64, ENCODING=RLE;
> CREATE TIMESERIES root.sg.d.floatNum WITH DATATYPE=DOUBLE, ENCODING=RLE,
> 'MAX_POINT_NUMBER'='4';
> CREATE TIMESERIES root.sg.d.str WITH DATATYPE=TEXT, ENCODING=PLAIN;
> CREATE TIMESERIES root.sg.d.bool WITH DATATYPE=BOOLEAN, ENCODING=PLAIN;
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(0,3,2947483648,231.2121,"coconut",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(20,2,2147483648,434.12,"pineapple",TRUE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(40,1,2247483648,12.123,"apricot",TRUE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(80,9,2147483646,43.12,"apple",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(100,8,2147483964,4654.231,"papaya",TRUE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(31536000000,6,2147483650,1231.21,"banana",TRUE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(31536000100,10,3147483648,231.55,"pumelo",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(31536000500,4,2147493648,213.1,"peach",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(31536001000,5,2149783648,56.32,"orange",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(31536010000,7,2147983648,213.112,"lemon",TRUE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(31536100000,11,2147468648,54.121,"pitaya",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(41536000000,12,2146483648,45.231,"strawberry",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(41536000020,14,2907483648,231.34,"cherry",FALSE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(41536900000,13,2107483648,54.12,"lychee",TRUE);
> insert into root.sg.d(timestamp,num,bigNum,floatNum,str,bool)
> values(51536000000,15,3147483648,235.213,"watermelon",TRUE);{code}
> 使用带表达式的查询
>
> {code:java}
> select num+bigNum from root.sg.d order by num+floatNum{code}
> 获得如下报错信息
>
> !image-2023-04-18-15-22-43-955.png!
> 查询计划如下所示
> !image-2023-04-18-15-23-34-326.png!
> 原因应是第二个TransformNode的输入为表达式,在OperatorTreeGenerator阶段解析错误。
> 类似
> {code:java}
> select avg(num)+sum(floatNum) from root.sg.d group by session(10000ms) order
> by sum(num);
> select num+bigNum,floatNum from root.sg.d order by str;{code}
> 等需要先进行一次转换再投影的查询,都有类似的问题(order by 后面的表达式不出现在select中时)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)