Skip to content

optimizer & runner should consider NULL special rules  #3925

@aceforeverd

Description

@aceforeverd

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 <ANY_VAL> = 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

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingsqlSQL standard. definition/revise for a SQL statement/clause etc

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions