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.

Reply via email to