apache / apache/iotdb

[Bug] 模糊查询 like 查询无法匹配所有满足条件的数据

オープン
#12,253 コメント 3 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
6.4k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
115

説明

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

0.13.3

### Describe the bug and provide the minimal reproduce step

如下所示,是两个查询,第一个查询有61行数据,查询内容中满足存在 AABB的字符串有29条数据;第二个查询使用like进行模糊匹配,却只查询到一条数据。
使用正则匹配是可以全部匹配到的。
```
IoTDB> select log_info from root.fz4.userlog.s_1.** where time>1711471299000000000 and time < 1711680099000000000 and subsystem_id in(13,85,86) order by time desc align by device;
+-----------------------------------+-----------------------------------------------+--------------------------------------------------------------------------+
| Time| Device| log_info|
+-----------------------------------+-----------------------------------------------+--------------------------------------------------------------------------+
|2024-03-29T10:14:07.497227652+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据站 ,所选设备执行命令全部失败,
下发内容:停止命令|
|2024-03-29T10:13:01.245596353+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据站 ,停止命令下发错误,
下发内容:停止命令|
|2024-03-29T10:12:17.015642895+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,所选设备执行命令全部成功,
下发内容:士大夫:|
|2024-03-29T09:13:46.813319841+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行-自 测试数据 ,反馈超时,
下发内容:AABB|
|2024-03-28T17:09:56.545189930+08:00| root.fz4.userlog.s_1.userid_7| 下行,站厅-自 测试数据站 ,反馈超时,
下发内容:停止命令|
|2024-03-28T17:08:20.760339372+08:00| root.fz4.userlog.s_1.userid_7| 下行,站厅-自 测试数据 ,反馈超时,
下发内容:士大夫:|
|2024-03-28T17:07:07.184382465+08:00| root.fz4.userlog.s_1.userid_7| 下行,站厅-自 测试数据 ,反馈超时,
下发内容:士大夫:|
|2024-03-28T17:06:20.300855443+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,反馈超时,
下发内容:士大夫:|
|2024-03-28T17:03:20.280334769+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,反馈超时,
下发内容:AABB|
|2024-03-28T17:02:33.763913176+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,反馈超时,
下发内容:士大夫:|
|2024-03-28T16:29:55.205594507+08:00| root.fz4.userlog.s_1.userid_7| 创建重复时间表任务"HHMM"成功|
|2024-03-28T16:29:00.074173398+08:00| root.fz4.userlog.s_1.userid_7| 创建重复时间表任务"HHH"成功|
|2024-03-28T16:19:14.465323205+08:00| root.fz4.userlog.s_1.userid_7| CEN自检成功|
|2024-03-28T16:19:14.411137161+08:00| root.fz4.userlog.s_1.userid_7| CEN自检下发成功|
|2024-03-28T16:18:03.149670113+08:00| root.fz4.userlog.s_1.userid_7| CEN自检成功|
|2024-03-28T16:18:03.042466192+08:00| root.fz4.userlog.s_1.userid_7| CEN自检下发成功|
|2024-03-28T16:06:52.715451239+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T16:06:47.608124521+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T16:02:59.280079380+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T16:02:24.086492516+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:士大夫:|
|2024-03-28T16:02:20.798119759+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:士大夫:|
|2024-03-28T16:02:02.434995674+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:士大夫:|
|2024-03-28T16:01:58.375793459+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:士大夫:|
|2024-03-28T16:01:55.683650803+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:士大夫:|
|2024-03-28T15:51:35.440728662+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:49:13.839724554+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:43:40.916188147+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:43:08.521880479+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:23:34.397710186+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:士大夫:|
|2024-03-28T15:22:50.226397573+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:09:36.032566710+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:07:05.573211240+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:04:32.990980908+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:01:47.436815548+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:00:56.081392780+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:58:41.836273644+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:58:37.652062127+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:55:47.337485077+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:50:09.986980347+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:48:51.860144939+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T13:35:20.873617920+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T13:34:10.621460125+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:31:22.055121872+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:30:21.719589770+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:29:07.647480558+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:26:15.395542578+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:26:10.280628758+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:25:38.972641341+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:24:47.708807802+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 编辑预录制信息"SSDFSSDDDD"成功,内容为:AABB"|
|2024-03-28T11:24:45.927589795+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| PIS下发审核成功|
|2024-03-28T10:21:10.110515722+08:00| root.fz4.userlog.s_1.userid_7| 添加预录制信息"SSDFSSDDDD"成功,内容为:实打实打算SDSD"|
|2024-03-28T10:21:08.859026440+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
|2024-03-27T16:00:10.541922724+08:00| root.fz4.userlog.s_1.userid_7| 上行-自 测试数据 ,下发错误,
下发内容:还会|
|2024-03-27T16:00:09.446654123+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
|2024-03-27T15:59:49.087330272+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
|2024-03-27T15:58:26.345968261+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
|2024-03-27T15:58:21.861009871+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
|2024-03-27T15:55:46.319377359+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
|2024-03-27T15:55:21.499522030+08:00| root.fz4.userlog.s_1.userid_7| 添加预录制信息"请问请问"成功,内容为:士大夫:"|
|2024-03-27T15:55:18.156974500+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
|2024-03-27T15:53:21.126669691+08:00| root.fz4.userlog.s_1.userid_7| PIS下发审核成功|
+-----------------------------------+-----------------------------------------------+--------------------------------------------------------------------------+
Total line number = 61
It costs 0.021s
IoTDB> select log_info from root.fz4.userlog.s_1.** where time>1711471299000000000 and time < 1711680099000000000 and subsystem_id in(13,85,86) and log_info like '%AABB%' order by time desc align by device;
+-----------------------------------+-----------------------------------------------+-------------------------------------------+
| Time| Device| log_info|
+-----------------------------------+-----------------------------------------------+-------------------------------------------+
|2024-03-28T11:24:47.708807802+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|编辑预录制信息"SSDFSSDDDD"成功,内容为:AABB"|
+-----------------------------------+-----------------------------------------------+-------------------------------------------+
Total line number = 1
It costs 0.012s

IoTDB> select log_info from root.fz4.userlog.s_1.** where time>1711471299000000000 and time < 1711680099000000000 and subsystem_id in(13,85,86) and log_info regexp '^*AABB*' order by time desc align by device;
+-----------------------------------+-----------------------------------------------+----------------------------------------------------+
| Time| Device| log_info|
+-----------------------------------+-----------------------------------------------+----------------------------------------------------+
|2024-03-29T09:13:46.813319841+08:00| root.fz4.userlog.s_1.userid_7| 上行,下行-自 测试数据 ,反馈超时,
下发内容:AABB|
|2024-03-28T17:03:20.280334769+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,反馈超时,
下发内容:AABB|
|2024-03-28T16:06:52.715451239+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T16:06:47.608124521+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T16:02:59.280079380+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:51:35.440728662+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:49:13.839724554+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:43:40.916188147+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:43:08.521880479+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:22:50.226397573+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:09:36.032566710+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:07:05.573211240+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:04:32.990980908+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:01:47.436815548+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T15:00:56.081392780+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:58:41.836273644+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:58:37.652062127+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:55:47.337485077+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 上行-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:50:09.986980347+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T14:48:51.860144939+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T13:35:20.873617920+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T13:34:10.621460125+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:31:22.055121872+08:00| root.fz4.userlog.s_1.userid_7|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:30:21.719589770+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:29:07.647480558+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:26:15.395542578+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:26:10.280628758+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:25:38.972641341+08:00|root.fz4.userlog.s_1.userid_1682975766379429888|上行,下行,站厅-自 测试数据 ,下发错误,
下发内容:AABB|
|2024-03-28T11:24:47.708807802+08:00|root.fz4.userlog.s_1.userid_1682975766379429888| 编辑预录制信息"SSDFSSDDDD"成功,内容为:AABB"|
+-----------------------------------+-----------------------------------------------+----------------------------------------------------+
Total line number = 29

```

### What did you expect to see?

同上

### What did you see instead?

同上

### Anything else?

_No response_

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

IoTDB 0.13.3 で、issue にある SQL 再現例から始め、同じ時刻およびサブシステムのフィルターを使って LIKE クエリと regexp クエリを比較します。文字列 LIKE predicate の Java クエリ実行パスを追跡し、同等のデータを使った回帰テストを追加します。LIKE '%AABB%' が AABB を含むすべての行を返し、regexp の結果と一致すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。