Hello everyone, in order to improve the readability of error messages when including expressions in group by/order by clauses and to better identify the causes of errors, we have made modifications to the existing error messages:
1. When mixing the clauses with align by device and expressions that is not measurement, the original error message would indicate that the expression does not exist. The modified message now indicates that it is a problem with expression hierarchy. Before modification: IOTDB> select count(status) from root.** group by count(root.ln.wt01.wf01.status,5) align by device Msg: 701: Expression in group by should indicate one value IOTDB> select status,temperature from root.** order by wt02.temperature align by device Msg: 701: wt02.temperature in order by clausse doesn't exist. After modification: IOTDB> select status,temperature from root.** order by wt02.temperature align by device Msg: 701: ALIGN BY DEVICE: the suffix paths can only be measurement or one-level wildcard IOTDB> select count(status) from root.** group by count(root.ln.wt01.wf01.status,5) align by device Msg: 701: ALIGN BY DEVICE: the suffix paths can only be measurement or one-level wildcard 2. When an expression in the clause does not exist, the error message now provides accurate information. Before modification (where s1 is a non-existent measurement): IOTDB> select count(soc) from root.** group by count(s1,5) align by device Msg: 701: Expression in group by should indicate one value IoTDB> select soc,vehicle_status from root.sg.beijing.car01 order by s1 Msg: 701: One sort item in order by should only indicate one value After modification (where s1 is a non-existent measurement): IOTDB> select count(soc) from root.** group by count(s1,5) align by device Msg: 701: s1 in group by clause doesn't exist. IoTDB> select soc,vehicle_status from root.sg.beijing.car01 order by s1 Msg: 701: root.sg.beijing.car01.s1 in order by clause doesn't exist. IOTDB> select count(soc) from root.** group by count(s1,5) Msg: 701: root.**.s1 in group by clause doesn't exist. 3. When a wildcard is used in the clause and it corresponds to multiple values, the error message for non-unique expressions has been optimized. Before modification: IoTDB> select soc,vehicle_status from root.** order by soc Msg: 701: One sort item in order by should only indicate one value IoTDB> select count(temperature) from root.** group by count(soc, 2) Msg: 701: Expression in group by should indicate one value After modification: IoTDB> select soc,vehicle_status from root.** order by soc Msg: 701: root.**.soc in order by clause shouldn't refer to more than one timeseries. IoTDB> select count(soc) from root.** group by count(soc, 2) Msg: 701: root.**.soc in group by clause shouldn't refer to more than one timeseries.