4paradigm / 4paradigm/OpenMLDB

optimizer & runner should consider `NULL` special rules

Ouverte
#3,925 2 commentaires 0 réactions 1 personne assignée Réclamée par @aceforeverd Voir sur GitHub
bug sql
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.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.