virtual columns:
* move a capability from a virtual handler method to table_flags() * rephrase error messages to avoid hard-coded English parts * admit in test cases that they need xtradb, not innodb mysql-test/suite/vcol/t/rpl_vcol.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_blocked_sql_funcs_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_column_def_options_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_handler_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_ins_upd_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_keys_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_non_stored_columns_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_partition_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_select_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_supported_sql_funcs_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_trigger_sp_innodb.test: this test needs xtradb, it will fail with innodb mysql-test/suite/vcol/t/vcol_view_innodb.test: this test needs xtradb, it will fail with innodb sql/ha_partition.h: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS sql/handler.h: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS sql/share/errmsg.txt: no hard-coded english parts in the error messages (ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN) sql/sql_table.cc: no hard-coded english parts in the error messages sql/table.cc: * check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS * no "csv workaround" is needed * no hard-coded english parts in the error messages storage/maria/ha_maria.cc: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS storage/maria/ha_maria.h: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS storage/myisam/ha_myisam.cc: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS storage/myisam/ha_myisam.h: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS storage/xtradb/handler/ha_innodb.cc: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS storage/xtradb/handler/ha_innodb.h: check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
This commit is contained in:
parent
fda18d8fa2
commit
31a78529bc
@ -1,4 +1,5 @@
|
|||||||
disable_query_log;
|
if (!`SELECT count(*) FROM information_schema.plugins WHERE
|
||||||
--require r/true.require
|
plugin_name = 'innodb' AND plugin_status = 'active' AND
|
||||||
SELECT (plugin_description LIKE '%xtradb%') AS `TRUE` FROM information_schema.plugins WHERE LOWER(plugin_name) = 'innodb' AND LOWER(plugin_status) = 'active';
|
plugin_description LIKE '%xtradb%'`){
|
||||||
enable_query_log;
|
skip Need XtraDB engine;
|
||||||
|
}
|
||||||
|
2
mysql-test/include/have_xtradb.opt
Normal file
2
mysql-test/include/have_xtradb.opt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
--loose-innodb
|
||||||
|
--plugin-load=$HA_XTRADB_SO
|
@ -248,13 +248,13 @@ set global slow_query_log='OFF';
|
|||||||
set @save_storage_engine= @@session.storage_engine;
|
set @save_storage_engine= @@session.storage_engine;
|
||||||
set storage_engine= MEMORY;
|
set storage_engine= MEMORY;
|
||||||
alter table mysql.slow_log engine=ndb;
|
alter table mysql.slow_log engine=ndb;
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables
|
||||||
alter table mysql.slow_log engine=innodb;
|
alter table mysql.slow_log engine=innodb;
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables
|
||||||
alter table mysql.slow_log engine=archive;
|
alter table mysql.slow_log engine=archive;
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables
|
||||||
alter table mysql.slow_log engine=blackhole;
|
alter table mysql.slow_log engine=blackhole;
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables
|
||||||
set storage_engine= @save_storage_engine;
|
set storage_engine= @save_storage_engine;
|
||||||
drop table mysql.slow_log;
|
drop table mysql.slow_log;
|
||||||
drop table mysql.general_log;
|
drop table mysql.general_log;
|
||||||
|
@ -75,9 +75,9 @@ SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
|
|||||||
#illegal value fixed
|
#illegal value fixed
|
||||||
CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
|
CREATE TABLE t1 (a int) ENGINE=example ULL=10000000000000000000 one_or_two='ttt' YESNO=SSS;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1652 Incorrect value '10000000000000000000' for option 'ULL'
|
Warning 1653 Incorrect value '10000000000000000000' for option 'ULL'
|
||||||
Warning 1652 Incorrect value 'ttt' for option 'one_or_two'
|
Warning 1653 Incorrect value 'ttt' for option 'one_or_two'
|
||||||
Warning 1652 Incorrect value 'SSS' for option 'YESNO'
|
Warning 1653 Incorrect value 'SSS' for option 'YESNO'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -3,9 +3,9 @@ SET @OLD_SQL_MODE=@@SQL_MODE;
|
|||||||
SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
|
SET SQL_MODE='IGNORE_BAD_TABLE_OPTIONS';
|
||||||
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1='1v1';
|
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1='1v1';
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'fkey'
|
Warning 1652 Unknown option 'fkey'
|
||||||
Warning 1651 Unknown option 'dff'
|
Warning 1652 Unknown option 'dff'
|
||||||
Warning 1651 Unknown option 'tkey1'
|
Warning 1652 Unknown option 'tkey1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -16,10 +16,10 @@ drop table t1;
|
|||||||
#reassiginig options in the same line
|
#reassiginig options in the same line
|
||||||
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1=1v1 TKEY1=DEFAULT tkey1=1v2 tkey2=2v1;
|
create table t1 (a int fkey=vvv, key akey (a) dff=vvv) tkey1=1v1 TKEY1=DEFAULT tkey1=1v2 tkey2=2v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'fkey'
|
Warning 1652 Unknown option 'fkey'
|
||||||
Warning 1651 Unknown option 'dff'
|
Warning 1652 Unknown option 'dff'
|
||||||
Warning 1651 Unknown option 'tkey1'
|
Warning 1652 Unknown option 'tkey1'
|
||||||
Warning 1651 Unknown option 'tkey2'
|
Warning 1652 Unknown option 'tkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -29,7 +29,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#add option
|
#add option
|
||||||
alter table t1 tkey4=4v1;
|
alter table t1 tkey4=4v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'tkey4'
|
Warning 1652 Unknown option 'tkey4'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -39,8 +39,8 @@ t1 CREATE TABLE `t1` (
|
|||||||
#remove options
|
#remove options
|
||||||
alter table t1 tkey3=DEFAULT tkey4=DEFAULT;
|
alter table t1 tkey3=DEFAULT tkey4=DEFAULT;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'tkey3'
|
Warning 1652 Unknown option 'tkey3'
|
||||||
Warning 1651 Unknown option 'tkey4'
|
Warning 1652 Unknown option 'tkey4'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -50,11 +50,11 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int fkey1=v1, key akey (a) kkey1=v1) tkey1=1v1 tkey1=1v2 TKEY1=DEFAULT tkey2=2v1 tkey3=3v1;
|
create table t1 (a int fkey1=v1, key akey (a) kkey1=v1) tkey1=1v1 tkey1=1v2 TKEY1=DEFAULT tkey2=2v1 tkey3=3v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'fkey1'
|
Warning 1652 Unknown option 'fkey1'
|
||||||
Warning 1651 Unknown option 'kkey1'
|
Warning 1652 Unknown option 'kkey1'
|
||||||
Warning 1651 Unknown option 'TKEY1'
|
Warning 1652 Unknown option 'TKEY1'
|
||||||
Warning 1651 Unknown option 'tkey2'
|
Warning 1652 Unknown option 'tkey2'
|
||||||
Warning 1651 Unknown option 'tkey3'
|
Warning 1652 Unknown option 'tkey3'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -64,7 +64,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#change field with option with the same value
|
#change field with option with the same value
|
||||||
alter table t1 change a a int `FKEY1`='v1';
|
alter table t1 change a a int `FKEY1`='v1';
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'FKEY1'
|
Warning 1652 Unknown option 'FKEY1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -74,7 +74,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#change field with option with a different value
|
#change field with option with a different value
|
||||||
alter table t1 change a a int fkey1=v2;
|
alter table t1 change a a int fkey1=v2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'fkey1'
|
Warning 1652 Unknown option 'fkey1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -93,7 +93,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#new key with options
|
#new key with options
|
||||||
alter table t1 add key bkey (b) kkey2=v1;
|
alter table t1 add key bkey (b) kkey2=v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'kkey2'
|
Warning 1652 Unknown option 'kkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -105,8 +105,8 @@ t1 CREATE TABLE `t1` (
|
|||||||
#new column with options
|
#new column with options
|
||||||
alter table t1 add column c int fkey1=v1 fkey2=v2;
|
alter table t1 add column c int fkey1=v1 fkey2=v2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'fkey1'
|
Warning 1652 Unknown option 'fkey1'
|
||||||
Warning 1651 Unknown option 'fkey2'
|
Warning 1652 Unknown option 'fkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -141,7 +141,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#add column with options after delete
|
#add column with options after delete
|
||||||
alter table t1 add column b int fkey2=v1;
|
alter table t1 add column b int fkey2=v1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'fkey2'
|
Warning 1652 Unknown option 'fkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -154,7 +154,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
#add key
|
#add key
|
||||||
alter table t1 add key bkey (b) kkey2=v2;
|
alter table t1 add key bkey (b) kkey2=v2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'kkey2'
|
Warning 1652 Unknown option 'kkey2'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -168,7 +168,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int) tkey1=100;
|
create table t1 (a int) tkey1=100;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1651 Unknown option 'tkey1'
|
Warning 1652 Unknown option 'tkey1'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -13,9 +13,9 @@
|
|||||||
# Change: Syntax changed
|
# Change: Syntax changed
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
|
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
|
||||||
create table t1 (a int, b int as (a+1));
|
create table t1 (a int, b int as (a+1));
|
||||||
create table t1 (a int);
|
create table t1 (a int not null);
|
||||||
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
|
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
|
||||||
alter table t1 add column b int as (a+1);
|
alter table t1 add column b int as (a+1);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
SET @@session.storage_engine = 'archive';
|
SET @@session.storage_engine = 'archive';
|
||||||
create table t1 (a int, b int as (a+1));
|
create table t1 (a int, b int as (a+1));
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: ARCHIVE storage engine does not support computed columns
|
||||||
create table t1 (a int);
|
create table t1 (a int not null);
|
||||||
alter table t1 add column b int as (a+1);
|
alter table t1 add column b int as (a+1);
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: ARCHIVE storage engine does not support computed columns
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
SET @@session.storage_engine = 'blackhole';
|
SET @@session.storage_engine = 'blackhole';
|
||||||
create table t1 (a int, b int as (a+1));
|
create table t1 (a int, b int as (a+1));
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: BLACKHOLE storage engine does not support computed columns
|
||||||
create table t1 (a int);
|
create table t1 (a int not null);
|
||||||
alter table t1 add column b int as (a+1);
|
alter table t1 add column b int as (a+1);
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: BLACKHOLE storage engine does not support computed columns
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
SET @@session.storage_engine = 'CSV';
|
SET @@session.storage_engine = 'CSV';
|
||||||
create table t1 (a int, b int as (a+1));
|
create table t1 (a int, b int as (a+1));
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: CSV storage engine does not support computed columns
|
||||||
create table t1 (a int not null);
|
create table t1 (a int not null);
|
||||||
alter table t1 add column b int as (a+1);
|
alter table t1 add column b int as (a+1);
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: CSV storage engine does not support computed columns
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
SET @@session.storage_engine = 'memory';
|
SET @@session.storage_engine = 'memory';
|
||||||
create table t1 (a int, b int as (a+1));
|
create table t1 (a int, b int as (a+1));
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: MEMORY storage engine does not support computed columns
|
||||||
create table t1 (a int);
|
create table t1 (a int not null);
|
||||||
alter table t1 add column b int as (a+1);
|
alter table t1 add column b int as (a+1);
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: MEMORY storage engine does not support computed columns
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -4,5 +4,5 @@ create table t2 (a int, b int as (a % 10));
|
|||||||
insert into t1 values (1,default);
|
insert into t1 values (1,default);
|
||||||
insert into t2 values (2,default);
|
insert into t2 values (2,default);
|
||||||
create table t3 (a int, b int as (a % 10)) engine=MERGE UNION=(t1,t2);
|
create table t3 (a int, b int as (a % 10)) engine=MERGE UNION=(t1,t2);
|
||||||
ERROR HY000: 'Specified storage engine' is not yet supported for computed columns
|
ERROR HY000: MRG_MYISAM storage engine does not support computed columns
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
@ -76,7 +76,7 @@ drop table t1;
|
|||||||
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
|
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
|
||||||
create table t1 (a int, b int as (a % 2) persistent);
|
create table t1 (a int, b int as (a % 2) persistent);
|
||||||
alter table t1 modify b int as (a % 2);
|
alter table t1 modify b int as (a % 2);
|
||||||
ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
|
ERROR HY000: This is not yet supported for computed columns
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -87,7 +87,7 @@ drop table t1;
|
|||||||
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
|
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
|
||||||
create table t1 (a int, b int as (a % 2));
|
create table t1 (a int, b int as (a % 2));
|
||||||
alter table t1 modify b int as (a % 2) persistent;
|
alter table t1 modify b int as (a % 2) persistent;
|
||||||
ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
|
ERROR HY000: This is not yet supported for computed columns
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -76,7 +76,7 @@ drop table t1;
|
|||||||
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
|
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
|
||||||
create table t1 (a int, b int as (a % 2) persistent);
|
create table t1 (a int, b int as (a % 2) persistent);
|
||||||
alter table t1 modify b int as (a % 2);
|
alter table t1 modify b int as (a % 2);
|
||||||
ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
|
ERROR HY000: This is not yet supported for computed columns
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
@ -87,7 +87,7 @@ drop table t1;
|
|||||||
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
|
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
|
||||||
create table t1 (a int, b int as (a % 2));
|
create table t1 (a int, b int as (a % 2));
|
||||||
alter table t1 modify b int as (a % 2) persistent;
|
alter table t1 modify b int as (a % 2) persistent;
|
||||||
ERROR HY000: 'Changing the STORED status' is not yet supported for computed columns
|
ERROR HY000: This is not yet supported for computed columns
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
SET @@session.storage_engine = 'InnoDB';
|
SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
#------------------------------------------------------------------------------#
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
let $skip_full_text_checks = 1;
|
let $skip_full_text_checks = 1;
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -41,13 +41,7 @@ SET @@session.storage_engine = 'CSV';
|
|||||||
# Execute the tests to be applied to all storage engines
|
# Execute the tests to be applied to all storage engines
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
#------------------------------------------------------------------------------#
|
||||||
# Execute storage engine specific tests
|
--source suite/vcol/inc/vcol_unsupported_storage_engines.inc
|
||||||
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
|
|
||||||
create table t1 (a int, b int as (a+1));
|
|
||||||
create table t1 (a int not null);
|
|
||||||
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
|
|
||||||
alter table t1 add column b int as (a+1);
|
|
||||||
drop table t1;
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
#------------------------------------------------------------------------------#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -48,7 +48,7 @@ create table t1 (a int, b int as (a % 10));
|
|||||||
create table t2 (a int, b int as (a % 10));
|
create table t2 (a int, b int as (a % 10));
|
||||||
insert into t1 values (1,default);
|
insert into t1 values (1,default);
|
||||||
insert into t2 values (2,default);
|
insert into t2 values (2,default);
|
||||||
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
|
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
|
||||||
create table t3 (a int, b int as (a % 10)) engine=MERGE UNION=(t1,t2);
|
create table t3 (a int, b int as (a % 10)) engine=MERGE UNION=(t1,t2);
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
SET @@session.storage_engine = 'InnoDB';
|
SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
##### Storage engine to be tested
|
##### Storage engine to be tested
|
||||||
# Set the session storage engine
|
# Set the session storage engine
|
||||||
--source include/have_innodb.inc
|
--source include/have_xtradb.inc
|
||||||
eval SET @@session.storage_engine = 'InnoDB';
|
eval SET @@session.storage_engine = 'InnoDB';
|
||||||
|
|
||||||
##### Workarounds for known open engine specific bugs
|
##### Workarounds for known open engine specific bugs
|
||||||
|
@ -253,7 +253,6 @@ public:
|
|||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share);
|
virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share);
|
||||||
bool check_if_supported_virtual_columns(void) { return TRUE;}
|
|
||||||
virtual bool check_if_incompatible_data(HA_CREATE_INFO *create_info,
|
virtual bool check_if_incompatible_data(HA_CREATE_INFO *create_info,
|
||||||
uint table_changes);
|
uint table_changes);
|
||||||
private:
|
private:
|
||||||
|
@ -137,6 +137,7 @@
|
|||||||
#define HA_BINLOG_STMT_CAPABLE (LL(1) << 35)
|
#define HA_BINLOG_STMT_CAPABLE (LL(1) << 35)
|
||||||
/* Has automatic checksums and uses the new checksum format */
|
/* Has automatic checksums and uses the new checksum format */
|
||||||
#define HA_HAS_NEW_CHECKSUM (LL(1) << 36)
|
#define HA_HAS_NEW_CHECKSUM (LL(1) << 36)
|
||||||
|
#define HA_CAN_VIRTUAL_COLUMNS (LL(1) << 37)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Set of all binlog flags. Currently only contain the capabilities
|
Set of all binlog flags. Currently only contain the capabilities
|
||||||
@ -1955,17 +1956,6 @@ public:
|
|||||||
|
|
||||||
LEX_STRING *engine_name() { return hton_name(ht); }
|
LEX_STRING *engine_name() { return hton_name(ht); }
|
||||||
|
|
||||||
/*
|
|
||||||
@brief
|
|
||||||
Check whether the engine supports virtual columns
|
|
||||||
|
|
||||||
@retval
|
|
||||||
FALSE if the engine does not support virtual columns
|
|
||||||
@retval
|
|
||||||
TRUE if the engine supports virtual columns
|
|
||||||
*/
|
|
||||||
virtual bool check_if_supported_virtual_columns(void) { return FALSE;}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/* deprecated, don't use in new engines */
|
/* deprecated, don't use in new engines */
|
||||||
inline void ha_statistic_increment(ulong SSV::*offset) const { }
|
inline void ha_statistic_increment(ulong SSV::*offset) const { }
|
||||||
|
@ -6017,7 +6017,7 @@ ER_ONLY_INTEGERS_ALLOWED
|
|||||||
eng "Only integers allowed as number here"
|
eng "Only integers allowed as number here"
|
||||||
ger "An dieser Stelle sind nur Ganzzahlen zulässig"
|
ger "An dieser Stelle sind nur Ganzzahlen zulässig"
|
||||||
ER_UNSUPORTED_LOG_ENGINE
|
ER_UNSUPORTED_LOG_ENGINE
|
||||||
eng "This storage engine cannot be used for log tables""
|
eng "This storage engine cannot be used for log tables"
|
||||||
ger "Diese Speicher-Engine kann für Logtabellen nicht verwendet werden"
|
ger "Diese Speicher-Engine kann für Logtabellen nicht verwendet werden"
|
||||||
ER_BAD_LOG_STATEMENT
|
ER_BAD_LOG_STATEMENT
|
||||||
eng "You cannot '%s' a log table if logging is enabled"
|
eng "You cannot '%s' a log table if logging is enabled"
|
||||||
@ -6236,13 +6236,15 @@ ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN
|
|||||||
eng "The value specified for computed column '%s' in table '%s' ignored"
|
eng "The value specified for computed column '%s' in table '%s' ignored"
|
||||||
|
|
||||||
ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
|
ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
|
||||||
eng "'%s' is not yet supported for computed columns"
|
eng "This is not yet supported for computed columns"
|
||||||
|
|
||||||
ER_CONST_EXPR_IN_VCOL
|
ER_CONST_EXPR_IN_VCOL
|
||||||
eng "Constant expression in computed column function is not allowed"
|
eng "Constant expression in computed column function is not allowed"
|
||||||
|
|
||||||
ER_ROW_EXPR_FOR_VCOL
|
ER_ROW_EXPR_FOR_VCOL
|
||||||
eng "Expression for computed column cannot return a row"
|
eng "Expression for computed column cannot return a row"
|
||||||
|
ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
|
||||||
|
eng "%s storage engine does not support computed columns"
|
||||||
ER_UNKNOWN_OPTION
|
ER_UNKNOWN_OPTION
|
||||||
eng "Unknown option '%-.64s'"
|
eng "Unknown option '%-.64s'"
|
||||||
ER_BAD_OPTION_VALUE
|
ER_BAD_OPTION_VALUE
|
||||||
|
@ -6280,9 +6280,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
|
|||||||
def->field=field;
|
def->field=field;
|
||||||
if (field->stored_in_db != def->stored_in_db)
|
if (field->stored_in_db != def->stored_in_db)
|
||||||
{
|
{
|
||||||
my_error(ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN,
|
my_error(ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN, MYF(0));
|
||||||
MYF(0),
|
|
||||||
"Changing the STORED status");
|
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
if (!def->after)
|
if (!def->after)
|
||||||
|
11
sql/table.cc
11
sql/table.cc
@ -2337,14 +2337,11 @@ partititon_err:
|
|||||||
|
|
||||||
/* Check virtual columns against table's storage engine. */
|
/* Check virtual columns against table's storage engine. */
|
||||||
if (share->vfields &&
|
if (share->vfields &&
|
||||||
((outparam->file &&
|
!(outparam->file &&
|
||||||
!outparam->file->check_if_supported_virtual_columns()) ||
|
(outparam->file->ha_table_flags() & HA_CAN_VIRTUAL_COLUMNS)))
|
||||||
(!outparam->file && share->db_type() &&
|
|
||||||
share->db_type()->db_type == DB_TYPE_CSV_DB))) // Workaround for CSV
|
|
||||||
{
|
{
|
||||||
my_error(ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN,
|
my_error(ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS, MYF(0),
|
||||||
MYF(0),
|
plugin_name(share->db_plugin)->str);
|
||||||
"Specified storage engine");
|
|
||||||
error_reported= TRUE;
|
error_reported= TRUE;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
@ -821,7 +821,7 @@ int_table_flags(HA_NULL_IN_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER |
|
|||||||
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
|
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
|
||||||
HA_DUPLICATE_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY |
|
HA_DUPLICATE_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY |
|
||||||
HA_FILE_BASED | HA_CAN_GEOMETRY | CANNOT_ROLLBACK_FLAG |
|
HA_FILE_BASED | HA_CAN_GEOMETRY | CANNOT_ROLLBACK_FLAG |
|
||||||
HA_CAN_BIT_FIELD | HA_CAN_RTREEKEYS |
|
HA_CAN_BIT_FIELD | HA_CAN_RTREEKEYS | HA_CAN_VIRTUAL_COLUMNS |
|
||||||
HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT),
|
HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT),
|
||||||
can_enable_indexes(1), bulk_insert_single_undo(BULK_INSERT_NONE)
|
can_enable_indexes(1), bulk_insert_single_undo(BULK_INSERT_NONE)
|
||||||
{}
|
{}
|
||||||
|
@ -143,7 +143,6 @@ public:
|
|||||||
int assign_to_keycache(THD * thd, HA_CHECK_OPT * check_opt);
|
int assign_to_keycache(THD * thd, HA_CHECK_OPT * check_opt);
|
||||||
int preload_keys(THD * thd, HA_CHECK_OPT * check_opt);
|
int preload_keys(THD * thd, HA_CHECK_OPT * check_opt);
|
||||||
bool check_if_incompatible_data(HA_CREATE_INFO * info, uint table_changes);
|
bool check_if_incompatible_data(HA_CREATE_INFO * info, uint table_changes);
|
||||||
bool check_if_supported_virtual_columns(void) { return TRUE;}
|
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
int dump(THD * thd, int fd);
|
int dump(THD * thd, int fd);
|
||||||
int net_read_dump(NET * net);
|
int net_read_dump(NET * net);
|
||||||
|
@ -545,6 +545,7 @@ ha_myisam::ha_myisam(handlerton *hton, TABLE_SHARE *table_arg)
|
|||||||
:handler(hton, table_arg), file(0),
|
:handler(hton, table_arg), file(0),
|
||||||
int_table_flags(HA_NULL_IN_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER |
|
int_table_flags(HA_NULL_IN_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER |
|
||||||
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
|
HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE |
|
||||||
|
HA_CAN_VIRTUAL_COLUMNS |
|
||||||
HA_DUPLICATE_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY |
|
HA_DUPLICATE_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY |
|
||||||
HA_FILE_BASED | HA_CAN_GEOMETRY | HA_NO_TRANSACTIONS |
|
HA_FILE_BASED | HA_CAN_GEOMETRY | HA_NO_TRANSACTIONS |
|
||||||
HA_CAN_INSERT_DELAYED | HA_CAN_BIT_FIELD | HA_CAN_RTREEKEYS |
|
HA_CAN_INSERT_DELAYED | HA_CAN_BIT_FIELD | HA_CAN_RTREEKEYS |
|
||||||
|
@ -133,7 +133,6 @@ class ha_myisam: public handler
|
|||||||
int assign_to_keycache(THD* thd, HA_CHECK_OPT* check_opt);
|
int assign_to_keycache(THD* thd, HA_CHECK_OPT* check_opt);
|
||||||
int preload_keys(THD* thd, HA_CHECK_OPT* check_opt);
|
int preload_keys(THD* thd, HA_CHECK_OPT* check_opt);
|
||||||
bool check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes);
|
bool check_if_incompatible_data(HA_CREATE_INFO *info, uint table_changes);
|
||||||
bool check_if_supported_virtual_columns(void) { return TRUE;}
|
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
int dump(THD* thd, int fd);
|
int dump(THD* thd, int fd);
|
||||||
int net_read_dump(NET* net);
|
int net_read_dump(NET* net);
|
||||||
|
@ -1471,7 +1471,7 @@ UNIV_INTERN
|
|||||||
ha_innobase::ha_innobase(handlerton *hton, TABLE_SHARE *table_arg)
|
ha_innobase::ha_innobase(handlerton *hton, TABLE_SHARE *table_arg)
|
||||||
:handler(hton, table_arg),
|
:handler(hton, table_arg),
|
||||||
int_table_flags(HA_REC_NOT_IN_SEQ |
|
int_table_flags(HA_REC_NOT_IN_SEQ |
|
||||||
HA_NULL_IN_KEY |
|
HA_NULL_IN_KEY | HA_CAN_VIRTUAL_COLUMNS |
|
||||||
HA_CAN_INDEX_BLOBS |
|
HA_CAN_INDEX_BLOBS |
|
||||||
HA_CAN_SQL_HANDLER |
|
HA_CAN_SQL_HANDLER |
|
||||||
HA_PRIMARY_KEY_REQUIRED_FOR_POSITION |
|
HA_PRIMARY_KEY_REQUIRED_FOR_POSITION |
|
||||||
|
@ -222,7 +222,6 @@ class ha_innobase: public handler
|
|||||||
/** @} */
|
/** @} */
|
||||||
bool check_if_incompatible_data(HA_CREATE_INFO *info,
|
bool check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||||
uint table_changes);
|
uint table_changes);
|
||||||
bool check_if_supported_virtual_columns(void) { return TRUE; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Some accessor functions which the InnoDB plugin needs, but which
|
/* Some accessor functions which the InnoDB plugin needs, but which
|
||||||
|
Loading…
x
Reference in New Issue
Block a user