summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-02-04 19:58:32 +0100
committerSergei Golubchik <serg@mariadb.org>2017-02-13 18:12:05 +0100
commit1913daf42cfa9b93aceb82dd0f449ea3f3f7b119 (patch)
treec049c5f2723477ca58e90d6d26fc12e382e36798
parent01dd355635d00f80d6960f319591bb568f4cf628 (diff)
downloadmariadb-git-1913daf42cfa9b93aceb82dd0f449ea3f3f7b119.tar.gz
bugfix: disable ICP in InnoDB for indexes on virtual columns
because it doesn't work, vcols are never calculated for ICP
-rw-r--r--storage/innobase/handler/ha_innodb.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index 170a9d5b5a3..9463eb5f514 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -22553,6 +22553,12 @@ ha_innobase::idx_cond_push(
DBUG_ASSERT(keyno != MAX_KEY);
DBUG_ASSERT(idx_cond != NULL);
+ /* We can only evaluate the condition if all columns are stored.*/
+ dict_index_t* idx = innobase_get_index(keyno);
+ if (idx && dict_index_has_virtual(idx)) {
+ DBUG_RETURN(idx_cond);
+ }
+
pushed_idx_cond = idx_cond;
pushed_idx_cond_keyno = keyno;
in_range_check_pushed_down = TRUE;