mariadb/libmysqld
Sergei Petrunia 1c2a83179d MDEV-35616: Add basic optimizer support for virtual column
(Review input addressed)

After this patch, the optimizer can handle virtual column expressions
in WHERE/ON clauses. If the table has an indexed virtual column:

  ALTER TABLE t1
    ADD COLUMN vcol INT AS (col1+1),
    ADD INDEX idx1(vcol);

and the query uses the exact virtual column expression:

  SELECT * FROM t1 WHERE col1+1 <= 100

then the optimizer will be able use index idx1 for it.

This is achieved by walking the WHERE/ON clauses and replacing instances
of virtual column expression (like "col1+1" above) with virtual column's
Item_field (like "vcol"). The latter can be processed by the optimizer.

Replacement is considered (and done) only in items that are potentially
usable to the range optimizer.
2025-01-25 10:50:52 +02:00
..
examples
client_settings.h
CMakeLists.txt MDEV-35616: Add basic optimizer support for virtual column 2025-01-25 10:50:52 +02:00
emb_qcache.cc
emb_qcache.h
embedded_priv.h
lib_sql.cc
libmysql.c
libmysqld.c
libmysqld.def
libmysqld.rc
resource.h