4paradigm / 4paradigm/OpenMLDB

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

Abierto
#2,944 1 comentario 0 reacciones 2 asignados Reclamado por @aceforeverd Ver en GitHub
bug high-priority
Lenguaje dominante
C++
Estrellas
1.7k
Forks
331
Merge medio
12 d 12 h
PR fusionados (30 d)
1

Descripción

**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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
sql
Área
backend, databases
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.