Hi, +1 for reopen it. The error messages should be consistent in these 4 cases.
-- Jialin Qiao School of Software, Tsinghua University 乔嘉林 清华大学 软件学院 > -----原始邮件----- > 发件人: "Lei Rui" <[email protected]> > 发送时间: 2019-10-09 18:31:21 (星期三) > 收件人: "[email protected]" <[email protected]> > 抄送: > 主题: Re: [DISCUSS] (IOTDB-240) query problem for iotdb filter > > Hi, > > > Even settled with response 1, I don't think this issue of inconsistent error > messages is solved. > > > case 1: select ZT1 from root.demo > case 2: select ZT1,ZT31 from root.demo > case 3: select ZT1,ZT31 from root.demo where ZT1>0 > In the above cases, "root.demo.ZT31" exists and "root.demo.ZT1" doesn't exist. > The merged pr#423 for this issue checks the existence of every path extracted > from the SELECT & FROM clause. > Therefore, the iotdb-client in case 1&2&3 will now respond with a consistent > error message - "Msg: Execute statement error: Path: "root.demo.ZT1" not > corresponding any known time series". > > > But consider case 4: "select ZT31 from root.demo where ZT1>0" and the path > "root.demo.ZT1" in the filter expression doesn't exist. > The iotdb-client will respond with the original error message - "Msg: Execute > statement error: Index: 0, Size: 0" , which is still inconsistent with case > 1&2&3. > > > So, I suggest this issue be reopened. > > > Lei Rui > On 10/9/2019 09:34,Jialin Qiao<[email protected]> wrote: > Hi, > > I prefer Response 1. > > When users query some paths that do not exist, it means there are logical > errors and we'd better reject the request to let users fix it. > > -- > Jialin Qiao > School of Software, Tsinghua University > > 乔嘉林 > 清华大学 软件学院 > > -----原始邮件----- > 发件人: suyue <[email protected]> > 发送时间: 2019-10-08 20:54:59 (星期二) > 收件人: [email protected] > 抄送: > 主题: Re: [DISCUSS] (IOTDB-240) query problem for iotdb filter > > Hi, all. > > I tried to make the following queries in MySQL:(There is a ‘projectID' column > in the 'CONFIG' table but no xx column.) > select projectID, xx from CONFIG; > Then, I got :[Code: 1054, SQL State: 42S22] Unknown column 'xx' in 'field > list’ > > So, I prefer to report errors directly when there are non-existent columns in > the query statement, which is Response 1. > > > > > > 在 2019年10月8日,下午7:14,Lei Rui <[email protected]> 写道: > > Hi all, > I want to have more discussions on the responses of selecting non-existent > timeseries. > Let's focus on the condition 2 - "select ZT1,ZT31 from root.demo" where > root.demo.ZT1 doesn't exist. > There can be 3 responses as follows. > Response 1: reject service and return an error message. > Response 2: provide service by neglecting "ZT1" and directly return the > result table of "select ZT31 from root.demo". > Response 3: provide service by returning the result table with fields under > the column "root.demo.ZT1" being null. > From my side, I definitely disapprove response 3 because of the possible > confusion raised about the schema. > My question is which one do you prefer, response 1 or response 2? > I myself prefer response 2 to response 1, because response 2 not only conveys > clearly the message that "root.demo.ZT1" doesn't exist, but also returns > existent data. > Sincerely, > Lei Rui > > > On 9/26/2019 14:52,南京大学软件学院薛恺丰<[email protected]> wrote: > Hi~ I'm working on this issue and I think "both condition 2 and 3 should > respond with error message" is better > > > > > ------------------ 原始邮件 ------------------ > 发件人: "Yuan Tian (Jira)"<[email protected]>; > 发送时间: 2019年9月25日(星期三) 晚上9:56 > 收件人: "dev"<[email protected]>; > > 主题: [jira] [Created] (IOTDB-240) query problem for iotdb filter > > > > EJTTianyu created IOTDB-240: > ------------------------------- > > Summary: query problem for iotdb filter > Key: IOTDB-240 > URL: https://issues.apache.org/jira/browse/IOTDB-240 > Project: Apache IoTDB > Issue Type: Bug > Reporter: EJTTianyu > > > When querying a timeseries that does not exist, iotdb shows different > behavior for SQL with or without filter. > After starting a new iotdb instance, The following steps in iotdb-client > below could reproduce the problem. > Step 1: set storage group to root.demo > Step 2: CREATE TIMESERIES root.demo.ZT31 WITH DATATYPE=INT64, ENCODING=RLE > Step 3:insert into root.demo(timestamp,ZT31) values(1,1) > when using sql: > 1.select ZT1 from root.demo > iotdb-client responds with message "Msg: Execute statement error: do not > select any existing series" > 2.select ZT1,ZT31 from root.demo > iotdb-client responds with > +-----------------------------------+--------------+ > | Time|root.demo.ZT31| > +-----------------------------------+--------------+ > | 1970-01-01T08:00:00.001+08:00| 1| > +-----------------------------------+--------------+ > 3.select ZT1,ZT31 from root.demo where ZT1>0 > iotdb-client responds with message "Msg: Execute statement error: Index: 0, > Size: 0" > > Timeseries ZT1 does not exist in condition 2 and condition 3. However, > without using ZT1 as filter to query multiple sensors(at least one exists), > iotdb could respond with datapoints. When using ZT1 as filter, the returned > msg confused users. > > In my opinion, both condition 2 and 3 should respond with message "Msg: > Execute statement error: do not select any existing series". Or condition 2 > responds with datapoints, condition 3 responds with "Msg: Execute statement > error: do not select any existing series". > > > > > -- > This message was sent by Atlassian Jira > (v8.3.4#803005) >
