Details
-
New Feature
-
Status: In Review (View Workflow)
-
Major
-
Resolution: Unresolved
Description
An index on expression means something like
CREATE TABLE t1 (a int, b int, INDEX (a/2+b)); |
...
|
SELECT * FROM t1 WHERE a/2+b=100; |
in this case the optimizer should be able to use an index.
This task naturally splits in two steps:
- add expression matching into the optimizer, use it for generated columns. Like in
CREATE TABLE t1 (a int, b int, c INT GENERATED ALWAYS AS (a/2+b), INDEX (c)); - support the syntax to create an index on expression directly, this will automatically create a hidden generated column under the hood
original task description is visible in the history
Attachments
Issue Links
- blocks
-
MDEV-4414 INDEX - SUBSTRING, LEFT and others string functions that could be optimized with index
-
- Open
-
-
MDEV-4430 INDEX Optimization - Virtual Column, Dynamic Column and Index optimization
-
- Closed
-
-
MXS-3624 Use indexed virtual columns if such exist
-
- Open
-
- duplicates
-
MDEV-17993 WHERE F(X) = constY should used F(X) generated index and query WHERE G=constY
-
- Closed
-
- includes
-
MDEV-5631 Implement Reverse Key Index
-
- Closed
-
- is blocked by
-
MDEV-5800 indexes on virtual (not materialized) columns
-
- Closed
-