Hi,
I find the bug and the cause is that there is divergence between the server and the client in treating queries with duplicated columns. For example, I query "select s0,s0,s0,s1 from root.vehicle.d0", The server returns the result with duplicated fields as queried. [root.vehicle.d0.s0, root.vehicle.d0.s0, root.vehicle.d0.s0, root.vehicle.d0.s1] However, the client assumes that the returned result has been deduplicated, [root.vehicle.d0.s0, root.vehicle.d0.s1] thus using a structure called `columnInfoMap` in the `IoTDBQueryResultSet`. Before fixing this bug, we should decide who handles the duplication? The server returns a complete result and the client just need to take, or the server returns deduplicated result and the client do additional map task? Lei Rui On 9/27/2019 16:09,Lei Rui (Jira)<j...@apache.org> wrote: Lei Rui created IOTDB-244: ----------------------------- Summary: wrong duplicated columns query result Key: IOTDB-244 URL: https://issues.apache.org/jira/browse/IOTDB-244 Project: Apache IoTDB Issue Type: Bug Reporter: Lei Rui I use the following sql to insert data, {code:java} SET STORAGE GROUP TO root.vehicle.d0 SET STORAGE GROUP TO root.vehicle.d1 CREATE TIMESERIES root.vehicle.d0.s0 WITH DATATYPE=INT32, ENCODING=RLE CREATE TIMESERIES root.vehicle.d0.s1 WITH DATATYPE=INT64, ENCODING=RLE CREATE TIMESERIES root.vehicle.d0.s2 WITH DATATYPE=FLOAT, ENCODING=RLE CREATE TIMESERIES root.vehicle.d0.s3 WITH DATATYPE=TEXT, ENCODING=PLAIN CREATE TIMESERIES root.vehicle.d0.s4 WITH DATATYPE=BOOLEAN, ENCODING=PLAIN CREATE TIMESERIES root.vehicle.d1.s0 WITH DATATYPE=INT32, ENCODING=RLEinsert into root.vehicle.d0(timestamp,s0) values(1,101) insert into root.vehicle.d0(timestamp,s0) values(2,198) insert into root.vehicle.d0(timestamp,s0) values(100,99) insert into root.vehicle.d0(timestamp,s0) values(101,99) insert into root.vehicle.d0(timestamp,s0) values(102,80) insert into root.vehicle.d0(timestamp,s0) values(103,99) insert into root.vehicle.d0(timestamp,s0) values(104,90) insert into root.vehicle.d0(timestamp,s0) values(105,99) insert into root.vehicle.d0(timestamp,s0) values(106,99) insert into root.vehicle.d0(timestamp,s0) values(2,10000) insert into root.vehicle.d0(timestamp,s0) values(50,10000) insert into root.vehicle.d0(timestamp,s0) values(1000,22222)insert into root.vehicle.d0(timestamp,s1) values(1,1101) insert into root.vehicle.d0(timestamp,s1) values(2,198) insert into root.vehicle.d0(timestamp,s1) values(100,199) insert into root.vehicle.d0(timestamp,s1) values(101,199) insert into root.vehicle.d0(timestamp,s1) values(102,180) insert into root.vehicle.d0(timestamp,s1) values(103,199) insert into root.vehicle.d0(timestamp,s1) values(104,190) insert into root.vehicle.d0(timestamp,s1) values(105,199) insert into root.vehicle.d0(timestamp,s1) values(2,40000) insert into root.vehicle.d0(timestamp,s1) values(50,50000) insert into root.vehicle.d0(timestamp,s1) values(1000,55555)insert into root.vehicle.d0(timestamp,s2) values(1000,55555) insert into root.vehicle.d0(timestamp,s2) values(2,2.22) insert into root.vehicle.d0(timestamp,s2) values(3,3.33) insert into root.vehicle.d0(timestamp,s2) values(4,4.44) insert into root.vehicle.d0(timestamp,s2) values(102,10.00) insert into root.vehicle.d0(timestamp,s2) values(105,11.11) insert into root.vehicle.d0(timestamp,s2) values(1000,1000.11)insert into root.vehicle.d0(timestamp,s3) values(60,'aaaaa') insert into root.vehicle.d0(timestamp,s3) values(70,'bbbbb') insert into root.vehicle.d0(timestamp,s3) values(80,'ccccc') insert into root.vehicle.d0(timestamp,s3) values(101,'ddddd') insert into root.vehicle.d0(timestamp,s3) values(102,'fffff')insert into root.vehicle.d1(timestamp,s0) values(1,999) insert into root.vehicle.d1(timestamp,s0) values(1000,888)insert into root.vehicle.d0(timestamp,s1) values(2000-01-01T08:00:00+08:00, 100) insert into root.vehicle.d0(timestamp,s3) values(2000-01-01T08:00:00+08:00, 'good')insert into root.vehicle.d0(timestamp,s4) values(100, false) insert into root.vehicle.d0(timestamp,s4) values(100, true) {code} and then I query as follows: {code:java} IoTDB> select s0,s0,s0,s1 from root.vehicle.d0 +-----------------------------------+------------------+------------------+------------------+------------------+ | Time|root.vehicle.d0.s0|root.vehicle.d0.s0|root.vehicle.d0.s0|root.vehicle.d0.s1| +-----------------------------------+------------------+------------------+------------------+------------------+ | 1970-01-01T08:00:00.001+08:00| 101| 101| 101| 101| | 1970-01-01T08:00:00.002+08:00| 10000| 10000| 10000| 10000| | 1970-01-01T08:00:00.050+08:00| 10000| 10000| 10000| 10000| | 1970-01-01T08:00:00.100+08:00| 99| 99| 99| 99| | 1970-01-01T08:00:00.101+08:00| 99| 99| 99| 99| | 1970-01-01T08:00:00.102+08:00| 80| 80| 80| 80| | 1970-01-01T08:00:00.103+08:00| 99| 99| 99| 99| | 1970-01-01T08:00:00.104+08:00| 90| 90| 90| 90| | 1970-01-01T08:00:00.105+08:00| 99| 99| 99| 99| | 1970-01-01T08:00:00.106+08:00| 99| 99| 99| 99| | 1970-01-01T08:00:01.000+08:00| 22222| 22222| 22222| 22222| | 2000-01-01T08:00:00.000+08:00| null| null| null| null| +-----------------------------------+------------------+------------------+------------------+------------------+ Total line number = 12 It costs 0.026s IoTDB> select s0,s1 from root.vehicle.d0 +-----------------------------------+------------------+------------------+ | Time|root.vehicle.d0.s0|root.vehicle.d0.s1| +-----------------------------------+------------------+------------------+ | 1970-01-01T08:00:00.001+08:00| 101| 1101| | 1970-01-01T08:00:00.002+08:00| 10000| 40000| | 1970-01-01T08:00:00.050+08:00| 10000| 50000| | 1970-01-01T08:00:00.100+08:00| 99| 199| | 1970-01-01T08:00:00.101+08:00| 99| 199| | 1970-01-01T08:00:00.102+08:00| 80| 180| | 1970-01-01T08:00:00.103+08:00| 99| 199| | 1970-01-01T08:00:00.104+08:00| 90| 190| | 1970-01-01T08:00:00.105+08:00| 99| 199| | 1970-01-01T08:00:00.106+08:00| 99| null| | 1970-01-01T08:00:01.000+08:00| 22222| 55555| | 2000-01-01T08:00:00.000+08:00| null| 100| +-----------------------------------+------------------+------------------+ {code} The first query "select s0,s0,s0,s1 from root.vehicle.d0" returns wrong result as the root.vehicle.d0.s1 data is not correct. -- This message was sent by Atlassian Jira (v8.3.4#803005)