[Bug] Support inclusive end time syntax ] in GROUP BY clause IoTDB 2.0.5
- 主要言語
- 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
OS: Ubuntu 24.04 LTS
IoTDB: 2.0.5
### Describe the bug and provide the minimal reproduce step
Currently, the `GROUP BY` clause in IoTDB strictly uses the left-closed, right-open `[start, end)` time interval format. Users often need to include the data point exactly at the end time (e.g., `[start, end])`, but the current syntax does not support using `]` to specify an inclusive end time.
When querying time-series data, it is common to want a precise inclusive range (e.g., from `12:00` to `13:00` inclusive). To achieve this now, users must manually extend the end_time by a small fraction (e.g., `+1ms`) or by a full time interval unit, which is unintuitive and can lead to errors or off-by-one queries.
### What did you expect to see?
Support the standard interval syntax `]` to denote an inclusive end time in the `GROUP BY` clause.
Example:
Allow this syntax:
```SQL
SELECT count(s1) FROM root.sg.d1
GROUP BY ([2026-01-27T12:00:00, 2026-01-27T13:00:00], 1m)
```
### What did you see instead?
Current syntex doesn't allow `]` for end time. I have to use the below syntex:
```SQL
SELECT count(s1) FROM root.sg.d1
GROUP BY ([2026-01-27T12:00:00, 2026-01-27T13:00:00), 1m)
```
but it excludes the value at 13:00:00
### Anything else?
Current Workaround:
Users currently have to modify the timestamp manually:
```SQL
-- Extended by 1ms to capture the last point
GROUP BY ([2026-01-27T12:00:00, 2026-01-27T13:00:00.001), 1m)
```
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
コントリビューションガイド
調査の方向性
まず SQL GROUP BY 句のエントリポイントと、インターバルの終了境界の処理を特定します。issue の例を再現し、続いて閉じる ] が受け入れられること、および終了タイムスタンプと完全に一致するデータが、既存の [start, end) の動作を変更せずに含まれることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, sql
- 領域
- databases
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 45/100