IoTDB 2.0.5 版本中,LIKE 后使用 CONCAT 函数和 || 会报错,直接使用字符串正常
- Lenguaje dominante
- Java
- Estrellas
- 6.4k
- Forks
- 1.2k
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 115
Descripción
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.
### Version
2.0.5
### Describe the bug and provide the minimal reproduce step
```
IoTDB:ykk> select * from quota_info where **alarmname = concat('正','常')**
+-----------------------------+--------+-------+---------+-----+-----+---------+------+--------------+-----+-----------+
| time|deviceid|quotaid|quotaname|alarm|level|alarmname| unit|referencevalue|value|stringvalue|
+-----------------------------+--------+-------+---------+-----+-----+---------+------+--------------+-----+-----------+
|2026-05-06T17:15:30.860+08:00| 003| 2| 湿度| 0| 0| 正常| %| 10-20| 50.0| 50.0|
|2026-05-06T17:15:44.337+08:00| 003| 2| 湿度| 0| 0| 正常| %| 10-20| 10.0| 10.0|
|2026-05-06T17:15:30.738+08:00| 003| 1| 温度| 0| 0| 正常|摄氏度| 1-5| 10.0| 10.0|
+-----------------------------+--------+-------+---------+-----+-----+---------+------+--------------+-----+-----------+
Total line number = 3
It costs 1.865s
IoTDB:ykk> select * from quota_info where **alarmname = concat('正','常','%')**
+----+--------+-------+---------+-----+-----+---------+----+--------------+-----+-----------+
|time|deviceid|quotaid|quotaname|alarm|level|alarmname|unit|referencevalue|value|stringvalue|
+----+--------+-------+---------+-----+-----+---------+----+--------------+-----+-----------+
+----+--------+-------+---------+-----+-----+---------+----+--------------+-----+-----------+
Empty set.
It costs 0.243s
IoTDB:ykk> select * from quota_info where alarmname **like concat('正','常','%')**
Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 305: [INTERNAL_SERVER_ERROR(305)] Exception occurred: "select * from quota_info where alarmname like concat('正','常','%')". executeStatement failed. Cannot invoke "org.apache.iotdb.commons.schema.filter.impl.singlechild.AbstractSingleChildFilter.getSchemaFilterType()" because "currentFilter" is null
IoTDB:ykk> select * from quota_info where alarmname **like concat('正','常')**
Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 305: [INTERNAL_SERVER_ERROR(305)] Exception occurred: "select * from quota_info where alarmname like concat('正','常')". executeStatement failed. Cannot invoke "org.apache.iotdb.commons.schema.filter.impl.singlechild.AbstractSingleChildFilter.getSchemaFilterType()" because "currentFilter" is null
IoTDB:ykk> select * from quota_info where **alarmname like '正常%'**
+-----------------------------+--------+-------+---------+-----+-----+---------+------+--------------+-----+-----------+
| time|deviceid|quotaid|quotaname|alarm|level|alarmname| unit|referencevalue|value|stringvalue|
+-----------------------------+--------+-------+---------+-----+-----+---------+------+--------------+-----+-----------+
|2026-05-06T17:15:30.860+08:00| 003| 2| 湿度| 0| 0| 正常| %| 10-20| 50.0| 50.0|
|2026-05-06T17:15:44.337+08:00| 003| 2| 湿度| 0| 0| 正常| %| 10-20| 10.0| 10.0|
|2026-05-06T17:15:30.738+08:00| 003| 1| 温度| 0| 0| 正常|摄氏度| 1-5| 10.0| 10.0|
+-----------------------------+--------+-------+---------+-----+-----+---------+------+--------------+-----+-----------+
Total line number = 3
It costs 0.672s
IoTDB:ykk> select * from quota_info where alarmname **like '正常'||'%'**
Msg: org.apache.iotdb.jdbc.IoTDBSQLException: 305: [INTERNAL_SERVER_ERROR(305)] Exception occurred: "select * from quota_info where alarmname like '正常'||'%'". executeStatement failed. Cannot invoke "org.apache.iotdb.commons.schema.filter.impl.singlechild.AbstractSingleChildFilter.getSchemaFilterType()" because "currentFilter" is null
IoTDB:ykk>
```
### What did you expect to see?
理论上来说like后面不应该可以跟concat()或者用'||'拼接的字符串吗
### What did you see instead?
like后面跟concat()或者'||'拼接的字符串会报错
### Anything else?
_No response_
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.