apache / apache/iotdb

IoTDB 2.0.5 版本中,LIKE 后使用 CONCAT 函数和 || 会报错,直接使用字符串正常

未关闭
#17,610 1 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@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!

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。