4paradigm / 4paradigm/OpenMLDB
optimizer & runner should consider `NULL` special rules
- Langage dominant
- C++
- Étoiles
- 1.7k
- Forks
- 331
- Merge moyen
- 12 j 12 h
- PR mergées (30 j)
- 1
Description
For a index optimizer, the most common pattern is, for example, SQL `SELECT * FROM t1 WHERE gp = {const_val}`, is optimized based on FILTER expression `gp = {const_val}`:
So if index `key=gp` exists for table t1, that index is utilized, as ** SEEK BY KEY `{const_val}` >> OUTPUT ALL ROWS`**.
However, if `{const_val}` is `NULL`, this optimize rule should not go that approach, since ` = NULL` is `NULL`.
This also happens for SQL like LAST JOIN `t1 LAST JOIN t2 on t1.key = t2.key`, where there is row exists in t1 that `t1.key = NULL`. It never joins.
Optimizer should consider const NULL values, and Runner should consider NULL values as index_key
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.