mirror of
https://github.com/MariaDB/server.git
synced 2025-12-19 02:35:42 +01:00
(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.
|
||
|---|---|---|
| .. | ||
| federated_gcol.result | ||
| gcol_archive.result | ||
| gcol_blackhole.result | ||
| gcol_blocked_sql_funcs_innodb.result | ||
| gcol_blocked_sql_funcs_myisam.result | ||
| gcol_bug20746926.result | ||
| gcol_bugfixes.result | ||
| gcol_column_def_options_innodb.result | ||
| gcol_column_def_options_myisam.result | ||
| gcol_csv.result | ||
| gcol_falcon.result | ||
| gcol_handler_innodb.result | ||
| gcol_handler_myisam.result | ||
| gcol_ins_upd_innodb.result | ||
| gcol_ins_upd_myisam.result | ||
| gcol_keys_innodb.result | ||
| gcol_keys_myisam.result | ||
| gcol_memory.result | ||
| gcol_merge.result | ||
| gcol_ndb.result | ||
| gcol_non_stored_columns_innodb.result | ||
| gcol_non_stored_columns_myisam.result | ||
| gcol_partition_innodb.result | ||
| gcol_partition_myisam.result | ||
| gcol_purge.result | ||
| gcol_rejected_innodb.result | ||
| gcol_rollback.result | ||
| gcol_select_innodb.result | ||
| gcol_select_myisam.result | ||
| gcol_supported_sql_funcs_innodb.result | ||
| gcol_supported_sql_funcs_myisam.result | ||
| gcol_trigger_sp_innodb.result | ||
| gcol_trigger_sp_myisam.result | ||
| gcol_update.result | ||
| gcol_view_innodb.result | ||
| gcol_view_myisam.result | ||
| innodb_partition.result | ||
| innodb_prefix_index_check.result | ||
| innodb_virtual_basic.result | ||
| innodb_virtual_blob.result | ||
| innodb_virtual_debug.result | ||
| innodb_virtual_debug_purge.result | ||
| innodb_virtual_fk.result | ||
| innodb_virtual_fk_restart.result | ||
| innodb_virtual_index.result | ||
| innodb_virtual_purge.result | ||
| innodb_virtual_rebuild.result | ||
| innodb_virtual_stats.result | ||
| innodb_wl8114.result | ||
| main_alter_table.result | ||
| main_mysqldump.result | ||
| rpl_gcol.result | ||
| virtual_index_drop.result | ||