diff options
author | Sergei Golubchik <serg@mariadb.org> | 2017-02-04 19:58:32 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-02-13 18:12:05 +0100 |
commit | 1913daf42cfa9b93aceb82dd0f449ea3f3f7b119 (patch) | |
tree | c049c5f2723477ca58e90d6d26fc12e382e36798 | |
parent | 01dd355635d00f80d6960f319591bb568f4cf628 (diff) | |
download | mariadb-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.cc | 6 |
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; |