1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

bugfix: InnoDB doesn't support ICP on vcols

This commit is contained in:
Sergei Golubchik
2016-11-17 15:47:27 +01:00
parent 44ca4993b8
commit 6eaa5fd210
3 changed files with 7 additions and 0 deletions

View File

@ -1504,6 +1504,8 @@ NULL
NULL NULL
NULL NULL
0 0
SELECT * FROM t WHERE d > 0;
a b d
SELECT * FROM t; SELECT * FROM t;
a b d a b d
0 0 0 0 0 0

View File

@ -1415,6 +1415,8 @@ ALTER TABLE t DROP COLUMN c, ADD INDEX vidx(d), ALGORITHM=INPLACE;
SELECT d FROM t; SELECT d FROM t;
SELECT * FROM t WHERE d > 0;
SELECT * FROM t; SELECT * FROM t;
DROP TABLE t; DROP TABLE t;

View File

@ -8455,6 +8455,8 @@ ha_innobase::build_template(
if (innobase_is_v_fld(table->field[i])) { if (innobase_is_v_fld(table->field[i])) {
index_contains = dict_index_contains_col_or_prefix( index_contains = dict_index_contains_col_or_prefix(
index, num_v, true); index, num_v, true);
if (index_contains)
goto no_icp;
} else { } else {
index_contains = dict_index_contains_col_or_prefix( index_contains = dict_index_contains_col_or_prefix(
index, i - num_v, false); index, i - num_v, false);
@ -8637,6 +8639,7 @@ ha_innobase::build_template(
m_prebuilt->idx_cond = this; m_prebuilt->idx_cond = this;
} else { } else {
no_icp:
mysql_row_templ_t* templ; mysql_row_templ_t* templ;
ulint num_v = 0; ulint num_v = 0;
/* No index condition pushdown */ /* No index condition pushdown */