4paradigm / 4paradigm/OpenMLDB

SQL Engine assumes all the pointers are valid during the computation period while it is not always true

オープン
#2,944 コメント 1 件 リアクション 0 件 担当者 2 名 @aceforeverd が担当を希望しています GitHub で見る
bug high-priority
主要言語
C++
スター
1.7k
フォーク
331
平均マージ
12日 12時間
マージ済み PR(30日)
1

説明

**Bug Description**
SQL Engine assumes all the pointers are valid during the computation period,
while it is not true in the storage engine.

For example,
for `*_cate` (see issue #2931), sql engine assumes that the `StringRef`s are valid during the whole computation, while in the `Iterator` implementation (see pr #2939), the `value` will become invalid/freed after the next call of `Next`.
- `FullTableIterator`: fixed in #2939, guarantee the `value` is valid in the whole life cycle of `Iterator`
- `RemoteWindowIterator`: as `sliding window` copies the rows, we didn't change the current behaviour for now
- For local `Iterator`, we haven't fixed it for now.

**Expected Behavior**
We have to work out a good solution between SQL engine and storage engine to make them have the same assumption.

**Relation Case**

**Steps to Reproduce**

1.
2.
3.
4.

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

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

調査の方向性

The issue references SQL engine and storage engine pointer validity, specifically StringRef in *_cate functions. Examine the Iterator implementations (FullTableIterator, RemoteWindowIterator, local Iterator) in the storage engine. Look at the SQL engine's assumption that pointers remain valid. Start by reading the code around issue #2931 and PR #2939 to understand the context. Determine what a 'good solution' for pointer lifetime coordination between the two subsystems would entail.

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

評価

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

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

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