IoTDB 2.0.5 版本中,LIKE 后使用 CONCAT 函数和 || 会报错,直接使用字符串正常
未关闭
@DaZuiZui 已经在做这个了。
开始于 2026年5月15日。
- 主要语言
- Java
- 星标
- 6.4k
- 派生
- 1.2k
- 平均合并
- 1 天 23 小时
- 30 天内合并 PR
- 115
描述
Search before asking
- I searched in the 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!
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
评估
这个 Issue 还没有评估数据。