diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-11-29 22:10:13 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2016-12-12 20:44:46 +0100 |
commit | a9a362d3fd52010f601eae99af7e168b370da9d2 (patch) | |
tree | b88450f78aaaa4b13bebabea8e12db4f5b2e35c7 | |
parent | 9d7c3cbe18baaa79462870025fc3e7ebf80861f2 (diff) | |
download | mariadb-git-a9a362d3fd52010f601eae99af7e168b370da9d2.tar.gz |
Aria: test for ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN
Aria supports virtual columns, but does not support indexes
on virtual columns. Let's issue an appropriate error in this case.
-rw-r--r-- | mysql-test/suite/vcol/r/vcol_handler_aria.result (renamed from mysql-test/suite/vcol/r/vcol_handler_maria.result) | 0 | ||||
-rw-r--r-- | mysql-test/suite/vcol/r/vcol_keys_aria.result | 2 | ||||
-rw-r--r-- | mysql-test/suite/vcol/t/vcol_handler_aria.test (renamed from mysql-test/suite/vcol/t/vcol_handler_maria.test) | 0 | ||||
-rw-r--r-- | mysql-test/suite/vcol/t/vcol_keys_aria.test | 3 | ||||
-rw-r--r-- | storage/maria/ha_maria.cc | 8 |
5 files changed, 13 insertions, 0 deletions
diff --git a/mysql-test/suite/vcol/r/vcol_handler_maria.result b/mysql-test/suite/vcol/r/vcol_handler_aria.result index df36d0fbbf3..df36d0fbbf3 100644 --- a/mysql-test/suite/vcol/r/vcol_handler_maria.result +++ b/mysql-test/suite/vcol/r/vcol_handler_aria.result diff --git a/mysql-test/suite/vcol/r/vcol_keys_aria.result b/mysql-test/suite/vcol/r/vcol_keys_aria.result new file mode 100644 index 00000000000..ef8cb3c7b30 --- /dev/null +++ b/mysql-test/suite/vcol/r/vcol_keys_aria.result @@ -0,0 +1,2 @@ +create table t1 (a int, b int as (a+1), c int, index(b)) engine=aria; +ERROR HY000: Key/Index cannot be defined on a virtual generated column diff --git a/mysql-test/suite/vcol/t/vcol_handler_maria.test b/mysql-test/suite/vcol/t/vcol_handler_aria.test index 9b69e600767..9b69e600767 100644 --- a/mysql-test/suite/vcol/t/vcol_handler_maria.test +++ b/mysql-test/suite/vcol/t/vcol_handler_aria.test diff --git a/mysql-test/suite/vcol/t/vcol_keys_aria.test b/mysql-test/suite/vcol/t/vcol_keys_aria.test new file mode 100644 index 00000000000..b7ac0d26550 --- /dev/null +++ b/mysql-test/suite/vcol/t/vcol_keys_aria.test @@ -0,0 +1,3 @@ +--source include/have_maria.inc +--error ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN +create table t1 (a int, b int as (a+1), c int, index(b)) engine=aria; diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc index fc8a39119e3..59323a27ae2 100644 --- a/storage/maria/ha_maria.cc +++ b/storage/maria/ha_maria.cc @@ -522,6 +522,14 @@ static int table2maria(TABLE *table_arg, data_file_type row_type, for (j= 0; j < pos->user_defined_key_parts; j++) { Field *field= pos->key_part[j].field; + + if (!table_arg->field[field->field_index]->stored_in_db()) + { + my_free(*recinfo_out); + my_error(ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN, MYF(0)); + DBUG_RETURN(HA_ERR_UNSUPPORTED); + } + type= field->key_type(); keydef[i].seg[j].flag= pos->key_part[j].key_part_flag; |