1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

MDEV-11066 use MySQL terminology for "virtual columns"

This commit is contained in:
Sergei Golubchik
2016-11-24 09:49:12 +01:00
parent 6eaa5fd210
commit 1db438c833
67 changed files with 1116 additions and 1110 deletions

View File

@ -138,6 +138,12 @@ typedef unsigned long long my_ulonglong;
#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED
#define WARN_PLUGIN_DELETE_BUILTIN ER_PLUGIN_DELETE_BUILTIN
#define ER_FK_DUP_NAME ER_DUP_CONSTRAINT_NAME
#define ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
#define ER_PRIMARY_KEY_BASED_ON_VIRTUAL_COLUMN ER_PRIMARY_KEY_BASED_ON_GENERATED_COLUMN
#define ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
#define ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
#define ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
#define ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
typedef struct st_mysql_rows {
struct st_mysql_rows *next; /* list of rows */

View File

@ -804,7 +804,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` char(5) AS ((cast('a' as char(10) charset latin1) + `a`)) VIRTUAL
`b` char(5) GENERATED ALWAYS AS ((cast('a' as char(10) charset latin1) + `a`)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
select collation(cast("a" as char(10) binary));

View File

@ -1866,8 +1866,8 @@ Thinkpad Laptop black ttt
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`color` char(32) AS (column_get(`dynamic_cols`,1 as char charset latin1)) PERSISTENT,
`cl` char(32) AS (column_get(column_add(column_create(1,'blue' AS char charset latin1 ),2,'ttt'),`i` as char charset latin1)) PERSISTENT,
`color` char(32) GENERATED ALWAYS AS (column_get(`dynamic_cols`,1 as char charset latin1)) STORED,
`cl` char(32) GENERATED ALWAYS AS (column_get(column_add(column_create(1,'blue' AS char charset latin1 ),2,'ttt'),`i` as char charset latin1)) STORED,
`item_name` varchar(32) NOT NULL,
`i` int(11) DEFAULT NULL,
`dynamic_cols` blob DEFAULT NULL,
@ -1888,7 +1888,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`n` int(11) DEFAULT NULL,
`c` char(32) AS (cast(cast(`n` as char charset latin1) as char charset latin1)) PERSISTENT
`c` char(32) GENERATED ALWAYS AS (cast(cast(`n` as char charset latin1) as char charset latin1)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
set @@session.collation_server=filename;

View File

@ -5,8 +5,8 @@ SHOW CREATE TABLE mysql57_virtual;
Table Create Table
mysql57_virtual CREATE TABLE `mysql57_virtual` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL,
`c` int(11) AS ((`a` + 3)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + 3)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into mysql57_virtual (a) values (1),(2);
select * from mysql57_virtual;
@ -20,8 +20,8 @@ SHOW CREATE TABLE mysql57_virtual;
Table Create Table
mysql57_virtual CREATE TABLE `mysql57_virtual` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL,
`c` int(11) AS ((`a` + 3)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + 3)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='I am now a MariaDB table'
DROP TABLE mysql57_virtual;
#
@ -32,7 +32,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) PERSISTENT,
`c` int(11) AS ((`a` + 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) STORED,
`c` int(11) GENERATED ALWAYS AS ((`a` + 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;

View File

@ -55,62 +55,62 @@ drop table t1;
#
--echo # LOAD_FILE()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(64), b varchar(1024) generated always as (load_file(a)) virtual);
--echo # MATCH()
if (!$skip_full_text_check)
{
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(32), b bool generated always as (match a against ('sample text')) virtual);
}
--echo # BENCHMARK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(1024), b varchar(1024) generated always as (benchmark(a,3)) virtual);
--echo # FOUND_ROWS()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(1024), b varchar(1024) generated always as (found_rows()) virtual);
--echo # GET_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(1024), b varchar(1024) generated always as (get_lock(a,10)) virtual);
--echo # IS_FREE_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(1024), b varchar(1024) generated always as (is_free_lock(a)) virtual);
--echo # IS_USED_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(1024), b varchar(1024) generated always as (is_used_lock(a)) virtual);
--echo # LAST_INSERT_ID()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int generated always as (last_insert_id()) virtual);
--echo # MASTER_POS_WAIT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(32), b int generated always as (master_pos_wait(a,0,2)) virtual);
--echo # NAME_CONST()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(32) generated always as (name_const('test',1)) virtual);
--echo # RELEASE_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(32), b int generated always as (release_lock(a)) virtual);
--echo # ROW_COUNT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int generated always as (row_count()) virtual);
--echo # SLEEP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (sleep(a)) virtual);
--echo # VALUES()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(1024), b varchar(1024) generated always as (values(a)) virtual);
--echo # Stored procedures
@ -129,16 +129,16 @@ end //
delimiter ;//
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int generated always as (p1()) virtual);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int generated always as (f1()) virtual);
drop procedure p1;
drop function f1;
--echo # Unknown functions
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int generated always as (f1()) virtual);
--echo #
@ -146,71 +146,71 @@ create table t1 (a int generated always as (f1()) virtual);
--echo #
--echo # AVG()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (avg(a)) virtual);
--echo # BIT_AND()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (bit_and(a)) virtual);
--echo # BIT_OR()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (bit_or(a)) virtual);
--echo # BIT_XOR()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (bit_xor(a)) virtual);
--echo # COUNT(DISTINCT)
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (count(distinct a)) virtual);
--echo # COUNT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (count(a)) virtual);
--echo # GROUP_CONCAT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a varchar(32), b int generated always as (group_concat(a,'')) virtual);
--echo # MAX()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (max(a)) virtual);
--echo # MIN()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (min(a)) virtual);
--echo # STD()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (std(a)) virtual);
--echo # STDDEV_POP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (stddev_pop(a)) virtual);
--echo # STDDEV_SAMP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (stddev_samp(a)) virtual);
--echo # STDDEV()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (stddev(a)) virtual);
--echo # SUM()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (sum(a)) virtual);
--echo # VAR_POP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (var_pop(a)) virtual);
--echo # VAR_SAMP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (var_samp(a)) virtual);
--echo # VARIANCE()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b int generated always as (variance(a)) virtual);
--echo #
@ -218,7 +218,7 @@ create table t1 (a int, b int generated always as (variance(a)) virtual);
--echo #
create table t1 (a int);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t2 (a int, b int generated always as (select count(*) virtual from t1));
drop table t1;
@ -243,7 +243,7 @@ drop table t1;
--echo # ASSERTION FAILED: TR && TR->TABLE->FILE
--echo #
create table t1 (a int);
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
alter table t1 add column r blob generated always
as (match(a) against ('' in boolean mode)) virtual;
drop table t1;

View File

@ -154,11 +154,11 @@ if ($support_virtual_foreign)
--error ER_CANT_CREATE_TABLE
alter table t1 add constraint foreign key fk(b) references t2(a);
}
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add constraint foreign key fk(c) references t2(a) on delete set null;
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add constraint foreign key fk(c) references t2(a) on update set null;
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add constraint foreign key fk(c) references t2(a) on update cascade;
drop table t1;
drop table t2;
@ -213,7 +213,7 @@ if (!$support_virtual_index)
{
--echo # Bug#20769299: INCORRECT KEY ERROR WHEN TRYING TO CREATE INDEX ON
--echo # VIRTUAL GC FOR MYISAM
--error ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN
--error ER_KEY_BASED_ON_GENERATED_GENERATED_COLUMN
CREATE TABLE A (
pk INTEGER,
col_int_nokey INTEGER,
@ -231,7 +231,7 @@ CREATE TABLE t1(a bigint AS (a between 1 and 1));
--echo # IN FIND_FIELD_IN_TABLE
--echo #
CREATE TABLE t1(a int);
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
ALTER TABLE t1 ADD COLUMN z int GENERATED ALWAYS AS
( 1 NOT IN (SELECT 1 FROM t1 WHERE c0006) ) virtual;
DROP TABLE t1;
@ -318,12 +318,12 @@ DROP TABLE t1;
--echo # IN FIND_FIELD_IN_TABLE
--echo #
CREATE TABLE t1(a int);
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
ALTER TABLE t1 ADD COLUMN z int GENERATED ALWAYS AS
( 1 NOT IN (SELECT 1 FROM t1 WHERE c0006) ) virtual;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t2(a int, b int as (1 NOT IN (SELECT 1 FROM t1 WHERE not_exist_col)));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t2(a int, b int as (1 NOT IN (SELECT 1 FROM dual)));
DROP TABLE t1;
@ -482,11 +482,11 @@ SELECT * FROM t1 order by col1;
SELECT sgc1 FROM t1 order by sgc1;
# Change virtual generated column to become stored
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
ALTER TABLE t1 MODIFY COLUMN vgc1 INTEGER AS (col2 * col3) STORED;
# Change stored generated column to become virtual
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
ALTER TABLE t1 MODIFY COLUMN sgc1 INTEGER AS (col2 / col3) VIRTUAL;
# Change base column to become stored generated column:

View File

@ -130,22 +130,22 @@ if (!$skip_spatial_index_check)
--echo # FOREIGN KEY
--echo # Rejected FK options.
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on update set null);
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on update cascade);
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on delete set null);
create table t1 (a int, b int generated always as (a+1) stored);
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add foreign key (b) references t2(a) on update set null;
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add foreign key (b) references t2(a) on update cascade;
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add foreign key (b) references t2(a) on delete set null;
drop table t1;

View File

@ -74,14 +74,14 @@ drop table t1;
--echo # Case 7. ALTER. Modify virtual stored -> virtual non-stored
eval create $opt_tmp table t1 (a int, b int generated always as (a % 2) stored);
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
alter table t1 modify b int generated always as (a % 2) virtual;
show create table t1;
drop table t1;
--echo # Case 8. ALTER. Modify virtual non-stored -> virtual stored
eval create $opt_tmp table t1 (a int, b int generated always as (a % 2) virtual);
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
alter table t1 modify b int generated always as (a % 2) stored;
show create table t1;
drop table t1;

View File

@ -13,9 +13,9 @@
# Change: #
################################################################################
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
--error ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
create table t1 (a int, b int generated always as (a+1) virtual);
create table t1 (a int);
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
--error ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
alter table t1 add column b int generated always as (a+1) virtual;
drop table t1;

View File

@ -1,9 +1,9 @@
SET @@session.default_storage_engine = 'archive';
create table t1 (a int, b int generated always as (a+1) virtual);
ERROR HY000: ARCHIVE storage engine does not support computed columns
ERROR HY000: ARCHIVE storage engine does not support generated columns
create table t1 (a int);
alter table t1 add column b int generated always as (a+1) virtual;
ERROR HY000: ARCHIVE storage engine does not support computed columns
ERROR HY000: ARCHIVE storage engine does not support generated columns
drop table t1;
DROP VIEW IF EXISTS v1,v2;
DROP TABLE IF EXISTS t1,t2,t3;

View File

@ -1,9 +1,9 @@
SET @@session.default_storage_engine = 'blackhole';
create table t1 (a int, b int generated always as (a+1) virtual);
ERROR HY000: BLACKHOLE storage engine does not support computed columns
ERROR HY000: BLACKHOLE storage engine does not support generated columns
create table t1 (a int);
alter table t1 add column b int generated always as (a+1) virtual;
ERROR HY000: BLACKHOLE storage engine does not support computed columns
ERROR HY000: BLACKHOLE storage engine does not support generated columns
drop table t1;
DROP VIEW IF EXISTS v1,v2;
DROP TABLE IF EXISTS t1,t2,t3;

View File

@ -486,7 +486,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` char(1) DEFAULT NULL,
`b` char(1) DEFAULT NULL,
`c` char(2) AS (((`a` <> 0) or (`b` <> 0))) VIRTUAL
`c` char(2) GENERATED ALWAYS AS (((`a` <> 0) or (`b` <> 0))) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 (a,b) VALUES('1','1');
SELECT * FROM t1;
@ -507,7 +507,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` char(1) DEFAULT NULL,
`b` char(1) DEFAULT NULL,
`c` char(2) AS (concat(`a`,`b`)) VIRTUAL
`c` char(2) GENERATED ALWAYS AS (concat(`a`,`b`)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 (a,b) VALUES('1','1');
SELECT * FROM t1;

View File

@ -81,12 +81,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a % 2) virtual);
alter table t1 modify b int generated always as (a % 2) virtual comment 'my comment';
@ -94,12 +94,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -114,12 +114,12 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t2;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t2 (a) values (1);
select * from t2;
a b
@ -136,12 +136,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -158,7 +158,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a int, b int generated always as (a % 2) virtual);
@ -168,7 +168,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
drop table t2;
@ -178,11 +178,11 @@ create table t2 (a int);
alter table t1 add constraint foreign key fk(d) references t2(a);
ERROR 42000: Key column 'd' doesn't exist in table
alter table t1 add constraint foreign key fk(c) references t2(a) on delete set null;
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
alter table t1 add constraint foreign key fk(c) references t2(a) on update set null;
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
alter table t1 add constraint foreign key fk(c) references t2(a) on update cascade;
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
drop table t1;
drop table t2;
Generated always is optional
@ -191,24 +191,24 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int as (a % 2) stored);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
drop table t1;
Default should be non-stored column
create table t1 (a int, b int as (a % 2));
@ -216,12 +216,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
Expression can be constant
create table t1 (a int, b int as (5 * 2));
@ -229,12 +229,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((5 * 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((5 * 2)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
Test generated columns referencing other generated columns
create table t1 (a int unique, b int generated always as(-a) virtual, c int generated always as (b + 1) virtual);
@ -294,9 +294,9 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) AS ('aaaabb') PERSISTENT,
`d` blob AS (`c`) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) GENERATED ALWAYS AS ('aaaabb') STORED,
`d` blob GENERATED ALWAYS AS (`c`) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT * FROM t1 order by a;
a b c d
@ -307,9 +307,9 @@ SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) AS ('aaaabb') PERSISTENT,
`d` blob AS (`c`) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) GENERATED ALWAYS AS ('aaaabb') STORED,
`d` blob GENERATED ALWAYS AS (`c`) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE t3 AS SELECT * FROM t1;
SHOW CREATE TABLE t3;
@ -356,13 +356,13 @@ DROP TABLE t1;
#
CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5 AS c2;
Warnings:
Warning 1906 The value specified for computed column 'c2' in table 't1' ignored
Warning 1906 The value specified for generated column 'c2' in table 't1' ignored
CREATE TABLE t2 (a int);
INSERT INTO t2 values(1);
DROP TABLE t1;
CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, a AS c2 from t2;
Warnings:
Warning 1906 The value specified for computed column 'c2' in table 't1' ignored
Warning 1906 The value specified for generated column 'c2' in table 't1' ignored
DROP TABLE t1;
CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5;
SELECT * FROM t1;
@ -572,9 +572,9 @@ sgc1
1000
4000
ALTER TABLE t1 MODIFY COLUMN vgc1 INTEGER AS (col2 * col3) STORED;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
ALTER TABLE t1 MODIFY COLUMN sgc1 INTEGER AS (col2 / col3) VIRTUAL;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
ALTER TABLE t1 MODIFY COLUMN col4 INTEGER AS (col1 + col2 + col3) STORED;
SELECT * FROM t1 order by col1;
col1 col2 col3 col4 vgc1 sgc1
@ -604,7 +604,7 @@ Table Create Table
t1 CREATE TABLE "t1" (
"a" int(11) NOT NULL,
"b" varchar(10) DEFAULT NULL,
"c" char(3) AS (substr("b",1,3)) VIRTUAL,
"c" char(3) GENERATED ALWAYS AS (substr("b",1,3)) VIRTUAL,
PRIMARY KEY ("a"),
KEY "c" ("c")
)
@ -619,7 +619,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` varchar(10) DEFAULT NULL,
`c` char(3) AS (substr(`b`,1,3)) VIRTUAL,
`c` char(3) GENERATED ALWAYS AS (substr(`b`,1,3)) VIRTUAL,
PRIMARY KEY (`a`),
KEY `c` (`c`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

View File

@ -81,12 +81,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a % 2) virtual);
alter table t1 modify b int generated always as (a % 2) virtual comment 'my comment';
@ -94,12 +94,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -114,12 +114,12 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t2;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t2 (a) values (1);
select * from t2;
a b
@ -136,12 +136,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -158,7 +158,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a int, b int generated always as (a % 2) virtual);
@ -168,7 +168,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
drop table t2;
@ -178,11 +178,11 @@ create table t2 (a int);
alter table t1 add constraint foreign key fk(d) references t2(a);
ERROR 42000: Key column 'd' doesn't exist in table
alter table t1 add constraint foreign key fk(c) references t2(a) on delete set null;
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
alter table t1 add constraint foreign key fk(c) references t2(a) on update set null;
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
alter table t1 add constraint foreign key fk(c) references t2(a) on update cascade;
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
drop table t1;
drop table t2;
Generated always is optional
@ -191,24 +191,24 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int as (a % 2) stored);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
drop table t1;
Default should be non-stored column
create table t1 (a int, b int as (a % 2));
@ -216,12 +216,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
Expression can be constant
create table t1 (a int, b int as (5 * 2));
@ -229,12 +229,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((5 * 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((5 * 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
Test generated columns referencing other generated columns
create table t1 (a int unique, b int generated always as(-a) virtual, c int generated always as (b + 1) virtual);
@ -294,9 +294,9 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) AS ('aaaabb') PERSISTENT,
`d` blob AS (`c`) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) GENERATED ALWAYS AS ('aaaabb') STORED,
`d` blob GENERATED ALWAYS AS (`c`) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT * FROM t1 order by a;
a b c d
@ -307,9 +307,9 @@ SHOW CREATE TABLE t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) AS ('aaaabb') PERSISTENT,
`d` blob AS (`c`) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL,
`c` varchar(12) GENERATED ALWAYS AS ('aaaabb') STORED,
`d` blob GENERATED ALWAYS AS (`c`) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE t3 AS SELECT * FROM t1;
SHOW CREATE TABLE t3;
@ -356,13 +356,13 @@ DROP TABLE t1;
#
CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5 AS c2;
Warnings:
Warning 1906 The value specified for computed column 'c2' in table 't1' ignored
Warning 1906 The value specified for generated column 'c2' in table 't1' ignored
CREATE TABLE t2 (a int);
INSERT INTO t2 values(1);
DROP TABLE t1;
CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, a AS c2 from t2;
Warnings:
Warning 1906 The value specified for computed column 'c2' in table 't1' ignored
Warning 1906 The value specified for generated column 'c2' in table 't1' ignored
DROP TABLE t1;
CREATE TABLE t1 (c1 INT, c2 INT AS (c1 * 2)) SELECT 1 AS c1, 5;
SELECT * FROM t1;
@ -572,9 +572,9 @@ sgc1
1000
4000
ALTER TABLE t1 MODIFY COLUMN vgc1 INTEGER AS (col2 * col3) STORED;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
ALTER TABLE t1 MODIFY COLUMN sgc1 INTEGER AS (col2 / col3) VIRTUAL;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
ALTER TABLE t1 MODIFY COLUMN col4 INTEGER AS (col1 + col2 + col3) STORED;
SELECT * FROM t1 order by col1;
col1 col2 col3 col4 vgc1 sgc1
@ -604,7 +604,7 @@ Table Create Table
t1 CREATE TABLE "t1" (
"a" int(11) NOT NULL,
"b" varchar(10) DEFAULT NULL,
"c" char(3) AS (substr("b",1,3)) VIRTUAL,
"c" char(3) GENERATED ALWAYS AS (substr("b",1,3)) VIRTUAL,
PRIMARY KEY ("a"),
KEY "c" ("c")
)
@ -619,7 +619,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` varchar(10) DEFAULT NULL,
`c` char(3) AS (substr(`b`,1,3)) VIRTUAL,
`c` char(3) GENERATED ALWAYS AS (substr(`b`,1,3)) VIRTUAL,
PRIMARY KEY (`a`),
KEY `c` (`c`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

View File

@ -25,8 +25,8 @@ a b c
# INSERT INTO tbl_name VALUES... a non-NULL value is specified against gcols
insert into t1 values (1,2,3);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -65,8 +65,8 @@ a b c
# against gcols
insert into t1 (a,b) values (1,3), (2,4);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -153,7 +153,7 @@ a b c
2 -2 -2
update t1 set c=3 where a=2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1 order by a;
a b c
1 -1 -1
@ -183,7 +183,7 @@ a b c
2 -2 -2
update t1 set c=3 where b=-2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1 order by a;
a b c
1 -1 -1

View File

@ -25,8 +25,8 @@ a b c
# INSERT INTO tbl_name VALUES... a non-NULL value is specified against gcols
insert into t1 values (1,2,3);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -65,8 +65,8 @@ a b c
# against gcols
insert into t1 (a,b) values (1,3), (2,4);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -153,7 +153,7 @@ a b c
2 -2 -2
update t1 set c=3 where a=2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1 order by a;
a b c
1 -1 -1
@ -183,7 +183,7 @@ a b c
2 -2 -2
update t1 set c=3 where b=-2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1 order by a;
a b c
1 -1 -1

View File

@ -11,26 +11,26 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) stored, unique (b));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) stored);
alter table t1 add unique key (b);
@ -46,26 +46,26 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES MUL NULL PERSISTENT
b int(11) YES MUL NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) stored, index (a,b));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `a` (`a`,`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES MUL NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) stored);
alter table t1 add index (b);
@ -85,20 +85,20 @@ drop table t1;
# Rejected FK options.
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on update set null);
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on update cascade);
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on delete set null);
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
create table t1 (a int, b int generated always as (a+1) stored);
alter table t1 add foreign key (b) references t2(a) on update set null;
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
alter table t1 add foreign key (b) references t2(a) on update cascade;
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
alter table t1 add foreign key (b) references t2(a) on delete set null;
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
drop table t1;
# Allowed FK options.
create table t2 (a int primary key, b char(5));

View File

@ -11,52 +11,52 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) VIRTUAL,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) VIRTUAL,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL VIRTUAL
b int(11) YES UNI NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) stored unique);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) virtual, unique key (b));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) VIRTUAL,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) VIRTUAL,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL VIRTUAL
b int(11) YES UNI NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) stored, unique (b));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) virtual);
alter table t1 add unique key (b);
@ -75,13 +75,13 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) VIRTUAL,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) VIRTUAL,
KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES MUL NULL VIRTUAL
b int(11) YES MUL NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) virtual, index (a,b));
drop table t1;
@ -90,26 +90,26 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES MUL NULL PERSISTENT
b int(11) YES MUL NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) stored, index (a,b));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `a` (`a`,`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES MUL NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int generated always as (a*2) virtual);
alter table t1 add index (b);
@ -140,20 +140,20 @@ drop table t1;
# Rejected FK options.
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on update set null);
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on update cascade);
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
create table t1 (a int, b int generated always as (a+1) stored,
foreign key (b) references t2(a) on delete set null);
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
create table t1 (a int, b int generated always as (a+1) stored);
alter table t1 add foreign key (b) references t2(a) on update set null;
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
alter table t1 add foreign key (b) references t2(a) on update cascade;
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
alter table t1 add foreign key (b) references t2(a) on delete set null;
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
drop table t1;
# Allowed FK options.
create table t2 (a int primary key, b char(5));
@ -300,7 +300,7 @@ DESC t1;
Field Type Null Key Default Extra
pk int(11) NO PRI NULL
col_int_nokey int(11) YES NULL
col_int_key int(11) YES UNI NULL VIRTUAL
col_int_key int(11) YES UNI NULL VIRTUAL GENERATED
DROP TABLE t1;
#
# Bug#21346132: WL8149:INNODB: FAILING ASSERTION:

View File

@ -1,9 +1,9 @@
SET @@session.default_storage_engine = 'memory';
create table t1 (a int, b int generated always as (a+1) virtual);
ERROR HY000: MEMORY storage engine does not support computed columns
ERROR HY000: MEMORY storage engine does not support generated columns
create table t1 (a int);
alter table t1 add column b int generated always as (a+1) virtual;
ERROR HY000: MEMORY storage engine does not support computed columns
ERROR HY000: MEMORY storage engine does not support generated columns
drop table t1;
DROP VIEW IF EXISTS v1,v2;
DROP TABLE IF EXISTS t1,t2,t3;

View File

@ -4,7 +4,7 @@ create table t2 (a int, b int generated always as (a % 10) virtual);
insert into t1 values (1,default);
insert into t2 values (2,default);
create table t3 (a int, b int generated always as (a % 10) virtual) engine=MERGE UNION=(t1,t2);
ERROR HY000: MRG_MyISAM storage engine does not support computed columns
ERROR HY000: MRG_MyISAM storage engine does not support generated columns
drop table t1,t2;
DROP VIEW IF EXISTS v1,v2;
DROP TABLE IF EXISTS t1,t2,t3;

View File

@ -85,23 +85,23 @@ drop table t1;
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
create table t1 (a int, b int generated always as (a % 2) stored);
alter table t1 modify b int generated always as (a % 2) virtual;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
create table t1 (a int, b int generated always as (a % 2) virtual);
alter table t1 modify b int generated always as (a % 2) stored;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
# Case 9. CREATE LIKE
@ -182,7 +182,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) VIRTUAL,
`b` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
@ -203,7 +203,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) PERSISTENT,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) STORED,
`b` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
@ -225,7 +225,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` datetime DEFAULT NULL,
`c` int(11) AS (week(`b`,1)) VIRTUAL
`c` int(11) GENERATED ALWAYS AS (week(`b`,1)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
DROP VIEW IF EXISTS v1,v2;

View File

@ -85,23 +85,23 @@ drop table t1;
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
create table t1 (a int, b int generated always as (a % 2) stored);
alter table t1 modify b int generated always as (a % 2) virtual;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
create table t1 (a int, b int generated always as (a % 2) virtual);
alter table t1 modify b int generated always as (a % 2) stored;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
# Case 9. CREATE LIKE
@ -182,7 +182,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) VIRTUAL,
`b` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@ -203,7 +203,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) PERSISTENT,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) STORED,
`b` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@ -225,7 +225,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` datetime DEFAULT NULL,
`c` int(11) AS (week(`b`,1)) VIRTUAL
`c` int(11) GENERATED ALWAYS AS (week(`b`,1)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
DROP VIEW IF EXISTS v1,v2;

View File

@ -222,10 +222,10 @@ pos base_pos
65537 0
DROP TABLE t1;
CREATE TABLE t (a TEXT, b TEXT GENERATED ALWAYS AS (a), fulltext INDEX idx (b));
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
CREATE TABLE t (a TEXT, b TEXT GENERATED ALWAYS AS (a));
ALTER TABLE t ADD FULLTEXT INDEX (b);
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
DROP TABLE t;
CREATE TABLE t (a geometry not null, b geometry GENERATED ALWAYS AS (a), spatial INDEX idx (b));
ERROR 42000: All parts of a SPATIAL index must be NOT NULL
@ -386,9 +386,9 @@ Table Create Table
t CREATE TABLE `t` (
`a` varchar(10000) DEFAULT NULL,
`b` varchar(3000) DEFAULT NULL,
`c` varchar(14000) AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) AS (`b`) VIRTUAL,
`e` int(11) AS (10) VIRTUAL,
`c` varchar(14000) GENERATED ALWAYS AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) GENERATED ALWAYS AS (`b`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (10) VIRTUAL,
`h` int(11) NOT NULL,
PRIMARY KEY (`h`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT
@ -546,9 +546,9 @@ t1 CREATE TABLE `t1` (
`col2` int(11) NOT NULL,
`col3` int(11) NOT NULL,
`col4` int(11) DEFAULT NULL,
`col5` int(11) AS ((`col2` % `col3`)) VIRTUAL,
`col7` int(11) AS ((`col5` * `col5`)) VIRTUAL,
`col8` int(11) AS ((`col5` % `col5`)) VIRTUAL,
`col5` int(11) GENERATED ALWAYS AS ((`col2` % `col3`)) VIRTUAL,
`col7` int(11) GENERATED ALWAYS AS ((`col5` * `col5`)) VIRTUAL,
`col8` int(11) GENERATED ALWAYS AS ((`col5` % `col5`)) VIRTUAL,
`col9` text DEFAULT NULL,
`col6` int(11) DEFAULT NULL,
UNIQUE KEY `uidx` (`col5`)
@ -557,7 +557,7 @@ DROP TABLE t1;
CREATE TABLE t (a INT, b INT GENERATED ALWAYS AS (a), c point, d point GENERATED ALWAYS AS (c), spatial index idx (d));
ERROR 42000: All parts of a SPATIAL index must be NOT NULL
CREATE TABLE t (a INT, b INT GENERATED ALWAYS AS (a), c CHAR(10), d char(20) GENERATED ALWAYS AS (c), fulltext index idx (d));
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10), j INT, m INT GENERATED ALWAYS AS(b + j), n VARCHAR(10), p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, h)), INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p));
INSERT INTO t VALUES(11, 22, DEFAULT, "AAA", 8, DEFAULT, "XXX", DEFAULT);
INSERT INTO t VALUES(1, 2, DEFAULT, "uuu", 9, DEFAULT, "uu", DEFAULT);
@ -757,9 +757,9 @@ Table Create Table
t CREATE TABLE `t` (
`a` varchar(10000) DEFAULT NULL,
`b` varchar(3000) DEFAULT NULL,
`c` varchar(14000) AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) AS (`b`) VIRTUAL,
`e` int(11) AS (10) VIRTUAL,
`c` varchar(14000) GENERATED ALWAYS AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) GENERATED ALWAYS AS (`b`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (10) VIRTUAL,
`h` int(11) NOT NULL,
PRIMARY KEY (`h`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC
@ -806,9 +806,9 @@ Table Create Table
t CREATE TABLE `t` (
`a` varchar(10000) DEFAULT NULL,
`b` varchar(3000) DEFAULT NULL,
`c` varchar(14000) AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) AS (`b`) VIRTUAL,
`e` int(11) AS (10) VIRTUAL,
`c` varchar(14000) GENERATED ALWAYS AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) GENERATED ALWAYS AS (`b`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (10) VIRTUAL,
`h` int(11) NOT NULL,
PRIMARY KEY (`h`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=REDUNDANT
@ -855,9 +855,9 @@ Table Create Table
t CREATE TABLE `t` (
`a` varchar(10000) DEFAULT NULL,
`b` varchar(3000) DEFAULT NULL,
`c` varchar(14000) AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) AS (`b`) VIRTUAL,
`e` int(11) AS (10) VIRTUAL,
`c` varchar(14000) GENERATED ALWAYS AS (concat(`a`,`b`)) VIRTUAL,
`d` varchar(5000) GENERATED ALWAYS AS (`b`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (10) VIRTUAL,
`h` int(11) NOT NULL,
PRIMARY KEY (`h`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED
@ -968,20 +968,20 @@ SHOW CREATE TABLE t;
Table Create Table
t CREATE TABLE `t` (
`col_int_nokey` int(11) DEFAULT NULL,
`col_int` int(11) AS ((`col_int_nokey` + `col_int_nokey`)) PERSISTENT,
`col_int_key` int(11) AS ((`col_int` + `col_int_nokey`)) VIRTUAL,
`col_int` int(11) GENERATED ALWAYS AS ((`col_int_nokey` + `col_int_nokey`)) STORED,
`col_int_key` int(11) GENERATED ALWAYS AS ((`col_int` + `col_int_nokey`)) VIRTUAL,
`col_date_nokey` date DEFAULT NULL,
`col_date` date AS ((`col_date_nokey` + interval 30 day)) PERSISTENT,
`col_date_key` date AS ((`col_date` + interval 30 day)) VIRTUAL,
`col_date` date GENERATED ALWAYS AS ((`col_date_nokey` + interval 30 day)) STORED,
`col_date_key` date GENERATED ALWAYS AS ((`col_date` + interval 30 day)) VIRTUAL,
`col_datetime_nokey` datetime DEFAULT NULL,
`col_time_nokey` time DEFAULT NULL,
`col_datetime` datetime AS (addtime(`col_datetime_nokey`,`col_time_nokey`)) PERSISTENT,
`col_time` time AS (addtime(`col_datetime_nokey`,`col_time_nokey`)) PERSISTENT,
`col_datetime_key` datetime AS (addtime(`col_datetime`,`col_time_nokey`)) VIRTUAL,
`col_time_key` time AS (addtime(`col_datetime_nokey`,`col_time`)) VIRTUAL,
`col_datetime` datetime GENERATED ALWAYS AS (addtime(`col_datetime_nokey`,`col_time_nokey`)) STORED,
`col_time` time GENERATED ALWAYS AS (addtime(`col_datetime_nokey`,`col_time_nokey`)) STORED,
`col_datetime_key` datetime GENERATED ALWAYS AS (addtime(`col_datetime`,`col_time_nokey`)) VIRTUAL,
`col_time_key` time GENERATED ALWAYS AS (addtime(`col_datetime_nokey`,`col_time`)) VIRTUAL,
`col_varchar_nokey` varchar(1) DEFAULT NULL,
`col_varchar` varchar(2) AS (concat(`col_varchar_nokey`,`col_varchar_nokey`)) PERSISTENT,
`col_varchar_key` varchar(2) AS (concat(`col_varchar`,'x')) VIRTUAL,
`col_varchar` varchar(2) GENERATED ALWAYS AS (concat(`col_varchar_nokey`,`col_varchar_nokey`)) STORED,
`col_varchar_key` varchar(2) GENERATED ALWAYS AS (concat(`col_varchar`,'x')) VIRTUAL,
UNIQUE KEY `pk` (`col_int_key`),
UNIQUE KEY `col_int_key` (`col_int_key`),
UNIQUE KEY `col_int_key_2` (`col_int_key`,`col_varchar_key`),
@ -1058,10 +1058,10 @@ ALTER TABLE t1 CHANGE d d INT GENERATED ALWAYS AS(a+b) FIRST;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`d` int(11) AS ((`a` + `b`)) VIRTUAL,
`d` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
`h` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t1;
@ -1366,8 +1366,8 @@ Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`d` int(11) AS (((`a` + `b`) + `b`)) VIRTUAL,
`e` int(11) AS (`a`) VIRTUAL,
`d` int(11) GENERATED ALWAYS AS (((`a` + `b`) + `b`)) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL,
`h` varchar(10) DEFAULT NULL,
KEY `idx` (`d`),
KEY `idx2` (`e`,`d`)
@ -1382,9 +1382,9 @@ Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`e` int(11) AS (`a`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL,
`h` varchar(10) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
KEY `idx2` (`e`),
KEY `idx` (`e`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@ -1394,10 +1394,10 @@ Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`e` int(11) AS (`a`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL,
`h` varchar(10) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`x` varchar(10) AS (`h`) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
`x` varchar(10) GENERATED ALWAYS AS (`h`) VIRTUAL,
KEY `idx2` (`e`),
KEY `idx4` (`c`,`e`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@ -1409,10 +1409,10 @@ Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`e` int(11) AS (`a`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL,
`h` varchar(10) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`x` varchar(10) AS (`h`) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
`x` varchar(10) GENERATED ALWAYS AS (`h`) VIRTUAL,
`j` int(11) DEFAULT NULL,
KEY `idx2` (`e`),
KEY `idx4` (`c`,`e`),
@ -1426,12 +1426,12 @@ Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`e` int(11) AS (`a`) VIRTUAL,
`e` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL,
`h` varchar(10) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`x` varchar(10) AS (`h`) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
`x` varchar(10) GENERATED ALWAYS AS (`h`) VIRTUAL,
`j` int(11) DEFAULT NULL,
`i` int(11) AS (((`a` + `a`) + `b`)) VIRTUAL,
`i` int(11) GENERATED ALWAYS AS (((`a` + `a`) + `b`)) VIRTUAL,
KEY `idx2` (`e`),
KEY `idx4` (`c`,`e`),
KEY `x` (`x`),

View File

@ -43,7 +43,7 @@ Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
`h` varchar(10) DEFAULT NULL,
KEY `idx` (`c`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@ -112,7 +112,7 @@ Table Create Table
t CREATE TABLE `t` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
`h` varchar(10) DEFAULT NULL,
KEY `idx_1` (`c`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
@ -158,9 +158,9 @@ c
SHOW CREATE TABLE t;
Table Create Table
t CREATE TABLE `t` (
`a` int(11) AS (1) VIRTUAL,
`a` int(11) GENERATED ALWAYS AS (1) VIRTUAL,
`b` int(11) DEFAULT NULL,
`c` int(11) AS (1) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS (1) VIRTUAL,
UNIQUE KEY `b` (`b`),
UNIQUE KEY `c` (`c`),
KEY `a` (`a`)

View File

@ -89,7 +89,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
KEY `idx` (`c`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT * FROM t1;
@ -128,7 +128,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) AS ((`a` + `b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS ((`a` + `b`)) VIRTUAL,
KEY `idx` (`c`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
SELECT * FROM t1;

View File

@ -7,7 +7,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1 values (1,default);
insert into t1 values (2,default);

View File

@ -305,7 +305,7 @@ DROP TABLE t1;
CREATE TABLE t(a int);
ALTER TABLE t ADD COLUMN b int GENERATED ALWAYS AS (
date_sub(a,interval a month)) VIRTUAL;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
ALTER TABLE t ADD COLUMN c int GENERATED ALWAYS AS (sum(a));
DROP TABLE t;

View File

@ -43,7 +43,7 @@ create table t1 (a int, b int generated always as (a % 10) virtual);
create table t2 (a int, b int generated always as (a % 10) virtual);
insert into t1 values (1,default);
insert into t2 values (2,default);
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
--error ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
create table t3 (a int, b int generated always as (a % 10) virtual) engine=MERGE UNION=(t1,t2);
drop table t1,t2;

View File

@ -181,7 +181,7 @@ ALTER TABLE t1 add COLUMN (d INT generated always as (a+1) virtual, e INT as(5)
SELECT pos, base_pos FROM informatiON_schema.innodb_sys_virtual;
#--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
#--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
ALTER TABLE t1 add COLUMN (f INT generated always as (a+1) virtual, g INT as(5) virtual), DROP COLUMN e;
SELECT pos, base_pos FROM informatiON_schema.innodb_sys_virtual;
@ -226,10 +226,10 @@ SELECT pos, base_pos FROM informatiON_schema.innodb_sys_virtual;
DROP TABLE t1;
# We do not support Fulltext or Spatial INDEX ON Virtual Columns
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
CREATE TABLE t (a TEXT, b TEXT GENERATED ALWAYS AS (a), fulltext INDEX idx (b));
CREATE TABLE t (a TEXT, b TEXT GENERATED ALWAYS AS (a));
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
ALTER TABLE t ADD FULLTEXT INDEX (b);
DROP TABLE t;
@ -528,7 +528,7 @@ DROP TABLE t1;
--error ER_SPATIAL_CANT_HAVE_NULL
CREATE TABLE t (a INT, b INT GENERATED ALWAYS AS (a), c point, d point GENERATED ALWAYS AS (c), spatial index idx (d));
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
CREATE TABLE t (a INT, b INT GENERATED ALWAYS AS (a), c CHAR(10), d char(20) GENERATED ALWAYS AS (c), fulltext index idx (d));
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10), j INT, m INT GENERATED ALWAYS AS(b + j), n VARCHAR(10), p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, h)), INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p));

View File

@ -30,7 +30,7 @@ grad_degree CREATE TABLE `grad_degree` (
`plan` varchar(10) NOT NULL,
`admit_term` char(4) NOT NULL,
`wdraw_rsn` varchar(4) NOT NULL DEFAULT '',
`ofis_deg_status` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`ofis_deg_status` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`deg_start_term` char(4) NOT NULL DEFAULT '' COMMENT 'Educated guess at the beginning of the data',
`deg_as_of_term` char(4) NOT NULL COMMENT 'In most cases also end term',
PRIMARY KEY (`student_id`,`plan`,`admit_term`)
@ -136,14 +136,14 @@ grad_degree CREATE TABLE `grad_degree` (
`plan` varchar(10) NOT NULL,
`admit_term` char(4) NOT NULL,
`wdraw_rsn` varchar(4) NOT NULL DEFAULT '',
`ofis_deg_status` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`ofis_deg_status2` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress2' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed2' else 'Not Completed2' end)) VIRTUAL,
`ofis_deg_status3` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress3' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed3' else 'Not Completed3' end)) VIRTUAL,
`ofis_deg_status4` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress4' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed4' else 'Not Completed4' end)) VIRTUAL,
`ofis_deg_status5` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress5' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed5' else 'Not Completed5' end)) VIRTUAL,
`ofis_deg_status6` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress6' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed6' else 'Not Completed6' end)) VIRTUAL,
`ofis_deg_status7` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress7' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed7' else 'Not Completed7' end)) VIRTUAL,
`ofis_deg_status8` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress8' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed8' else 'Not Completed8' end)) VIRTUAL,
`ofis_deg_status` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`ofis_deg_status2` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress2' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed2' else 'Not Completed2' end)) VIRTUAL,
`ofis_deg_status3` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress3' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed3' else 'Not Completed3' end)) VIRTUAL,
`ofis_deg_status4` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress4' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed4' else 'Not Completed4' end)) VIRTUAL,
`ofis_deg_status5` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress5' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed5' else 'Not Completed5' end)) VIRTUAL,
`ofis_deg_status6` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress6' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed6' else 'Not Completed6' end)) VIRTUAL,
`ofis_deg_status7` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress7' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed7' else 'Not Completed7' end)) VIRTUAL,
`ofis_deg_status8` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress8' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed8' else 'Not Completed8' end)) VIRTUAL,
`deg_start_term` char(4) NOT NULL DEFAULT '' COMMENT 'Educated guess at the beginning of the data',
`deg_as_of_term` char(4) NOT NULL COMMENT 'In most cases also end term',
PRIMARY KEY (`student_id`,`plan`,`admit_term`)
@ -193,14 +193,14 @@ grad_degree CREATE TABLE `grad_degree` (
`plan` varchar(10) NOT NULL,
`admit_term` char(4) NOT NULL,
`wdraw_rsn` varchar(4) NOT NULL DEFAULT '',
`ofis_deg_status` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`ofis_deg_status2` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress2' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed2' else 'Not Completed2' end)) VIRTUAL,
`ofis_deg_status3` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress3' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed3' else 'Not Completed3' end)) VIRTUAL,
`ofis_deg_status4` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress4' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed4' else 'Not Completed4' end)) VIRTUAL,
`ofis_deg_status5` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress5' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed5' else 'Not Completed5' end)) VIRTUAL,
`ofis_deg_status6` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress6' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed6' else 'Not Completed6' end)) VIRTUAL,
`ofis_deg_status7` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress7' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed7' else 'Not Completed7' end)) VIRTUAL,
`ofis_deg_status8` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress8' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed8' else 'Not Completed8' end)) VIRTUAL,
`ofis_deg_status` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`ofis_deg_status2` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress2' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed2' else 'Not Completed2' end)) VIRTUAL,
`ofis_deg_status3` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress3' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed3' else 'Not Completed3' end)) VIRTUAL,
`ofis_deg_status4` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress4' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed4' else 'Not Completed4' end)) VIRTUAL,
`ofis_deg_status5` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress5' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed5' else 'Not Completed5' end)) VIRTUAL,
`ofis_deg_status6` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress6' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed6' else 'Not Completed6' end)) VIRTUAL,
`ofis_deg_status7` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress7' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed7' else 'Not Completed7' end)) VIRTUAL,
`ofis_deg_status8` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress8' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed8' else 'Not Completed8' end)) VIRTUAL,
`deg_as_of_term` char(4) NOT NULL COMMENT 'In most cases also end term',
PRIMARY KEY (`student_id`,`plan`,`admit_term`),
KEY `grad_degree_as_of_term_ndx` (`deg_as_of_term`)
@ -270,14 +270,14 @@ grad_degree CREATE TABLE `grad_degree` (
`plan` varchar(10) NOT NULL,
`admit_term` char(4) NOT NULL,
`wdraw_rsn` varchar(4) NOT NULL DEFAULT '',
`ofis_deg_status` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`ofis_deg_status2` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress2' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed2' else 'Not Completed2' end)) VIRTUAL,
`ofis_deg_status3` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress3' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed3' else 'Not Completed3' end)) VIRTUAL,
`ofis_deg_status4` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress4' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed4' else 'Not Completed4' end)) VIRTUAL,
`ofis_deg_status5` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress5' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed5' else 'Not Completed5' end)) VIRTUAL,
`ofis_deg_status6` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress6' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed6' else 'Not Completed6' end)) VIRTUAL,
`ofis_deg_status7` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress7' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed7' else 'Not Completed7' end)) VIRTUAL,
`ofis_deg_status8` varchar(15) AS ((case when (`wdraw_rsn` = '') then 'In progress8' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed8' else 'Not Completed8' end)) VIRTUAL,
`ofis_deg_status` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed' else 'Not Completed' end)) VIRTUAL,
`ofis_deg_status2` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress2' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed2' else 'Not Completed2' end)) VIRTUAL,
`ofis_deg_status3` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress3' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed3' else 'Not Completed3' end)) VIRTUAL,
`ofis_deg_status4` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress4' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed4' else 'Not Completed4' end)) VIRTUAL,
`ofis_deg_status5` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress5' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed5' else 'Not Completed5' end)) VIRTUAL,
`ofis_deg_status6` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress6' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed6' else 'Not Completed6' end)) VIRTUAL,
`ofis_deg_status7` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress7' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed7' else 'Not Completed7' end)) VIRTUAL,
`ofis_deg_status8` varchar(15) GENERATED ALWAYS AS ((case when (`wdraw_rsn` = '') then 'In progress8' when ((`wdraw_rsn` = 'DCMP') or (`wdraw_rsn` = 'TRDC')) then 'Completed8' else 'Not Completed8' end)) VIRTUAL,
`deg_start_term` char(4) NOT NULL DEFAULT '' COMMENT 'Educated guess at the beginning of the data',
`deg_as_of_term` char(4) NOT NULL COMMENT 'In most cases also end term',
PRIMARY KEY (`student_id`,`plan`,`admit_term`)

View File

@ -569,7 +569,7 @@ DROP TABLE t1;
--echo # MDEV-10134 Add full support for DEFAULT
--echo #
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a VARCHAR(100) DEFAULT BINLOG_GTID_POS("master-bin.000001", 600));
--echo #

View File

@ -103,22 +103,22 @@ if (!$skip_spatial_index_check)
--echo # FOREIGN KEY
--echo # Rejected FK options.
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on update set null);
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on update cascade);
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on delete set null);
create table t1 (a int, b int as (a+1) persistent);
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add foreign key (b) references t2(a) on update set null;
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add foreign key (b) references t2(a) on update cascade;
--error ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
--error ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
alter table t1 add foreign key (b) references t2(a) on delete set null;
drop table t1;
@ -161,23 +161,23 @@ drop table t1;
# Restrictions when indexed:
#
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b timestamp as (now()), key (b));
create table t1 (a int, b timestamp as (now()));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
alter table t1 add index (b);
drop table t1;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b varchar(100) as (user()), key (b));
create table t1 (a int, b varchar(100) as (user()));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
alter table t1 add index (b);
drop table t1;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b double as (rand()), key (b));
create table t1 (a int, b double as (rand()));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
alter table t1 add index (b);
drop table t1;

View File

@ -71,14 +71,14 @@ drop table t1;
--echo # Case 7. ALTER. Modify virtual stored -> virtual non-stored
create table t1 (a int, b int as (a % 2) persistent);
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
alter table t1 modify b int as (a % 2);
show create table t1;
drop table t1;
--echo # Case 8. ALTER. Modify virtual non-stored -> virtual stored
create table t1 (a int, b int as (a % 2));
--error ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
--error ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
alter table t1 modify b int as (a % 2) persistent;
show create table t1;
drop table t1;

View File

@ -13,9 +13,9 @@
# Change: Syntax changed
################################################################################
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
--error ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
create table t1 (a int, b int as (a+1));
create table t1 (a int not null);
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
--error ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
alter table t1 add column b int as (a+1);
drop table t1;

View File

@ -9,7 +9,7 @@ alter table t1 auto_increment = 3;
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`c2` int(11) AS ((1 + 1)) VIRTUAL,
`c2` int(11) GENERATED ALWAYS AS ((1 + 1)) VIRTUAL,
`c1` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`c1`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1

View File

@ -7,7 +7,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1 values (1,default);
insert into t1 values (2,default);

View File

@ -61,10 +61,10 @@ b int, c blob as (b), index (c(57)),
d blob, e blob as (d), index (e(57)))
replace select * from t1;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't' ignored
Warning 1906 The value specified for computed column 'e' in table 't' ignored
Warning 1906 The value specified for computed column 'c' in table 't' ignored
Warning 1906 The value specified for computed column 'e' in table 't' ignored
Warning 1906 The value specified for generated column 'c' in table 't' ignored
Warning 1906 The value specified for generated column 'e' in table 't' ignored
Warning 1906 The value specified for generated column 'c' in table 't' ignored
Warning 1906 The value specified for generated column 'e' in table 't' ignored
check table t;
Table Op Msg_type Msg_text
test.t check status OK

View File

@ -1,7 +1,7 @@
SET @@session.storage_engine = 'archive';
create table t1 (a int, b int as (a+1));
ERROR HY000: ARCHIVE storage engine does not support computed columns
ERROR HY000: ARCHIVE storage engine does not support generated columns
create table t1 (a int not null);
alter table t1 add column b int as (a+1);
ERROR HY000: ARCHIVE storage engine does not support computed columns
ERROR HY000: ARCHIVE storage engine does not support generated columns
drop table t1;

View File

@ -1,7 +1,7 @@
SET @@session.storage_engine = 'blackhole';
create table t1 (a int, b int as (a+1));
ERROR HY000: BLACKHOLE storage engine does not support computed columns
ERROR HY000: BLACKHOLE storage engine does not support generated columns
create table t1 (a int not null);
alter table t1 add column b int as (a+1);
ERROR HY000: BLACKHOLE storage engine does not support computed columns
ERROR HY000: BLACKHOLE storage engine does not support generated columns
drop table t1;

View File

@ -54,12 +54,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int as (a % 2));
alter table t1 modify b int as (a % 2) comment 'my comment';
@ -67,12 +67,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -87,12 +87,12 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t2;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t2 (a) values (1);
select * from t2;
a b
@ -109,12 +109,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -131,7 +131,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a int, b int as (a % 2));
@ -141,6 +141,6 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;

View File

@ -54,12 +54,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
drop table t1;
create table t1 (a int, b int as (a % 2));
alter table t1 modify b int as (a % 2) comment 'my comment';
@ -67,12 +67,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -87,12 +87,12 @@ show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL COMMENT 'my comment'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t2;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL VIRTUAL
b int(11) YES NULL VIRTUAL GENERATED
insert into t2 (a) values (1);
select * from t2;
a b
@ -109,12 +109,12 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
insert into t1 (a) values (1);
select * from t1;
a b
@ -131,7 +131,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a int, b int as (a % 2));
@ -141,6 +141,6 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;

View File

@ -1,7 +1,7 @@
SET @@session.storage_engine = 'CSV';
create table t1 (a int, b int as (a+1));
ERROR HY000: CSV storage engine does not support computed columns
ERROR HY000: CSV storage engine does not support generated columns
create table t1 (a int not null);
alter table t1 add column b int as (a+1);
ERROR HY000: CSV storage engine does not support computed columns
ERROR HY000: CSV storage engine does not support generated columns
drop table t1;

View File

@ -25,8 +25,8 @@ a b c
# INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols
insert into t1 values (1,2,3);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -65,8 +65,8 @@ a b c
# against vcols
insert into t1 (a,b) values (1,3), (2,4);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -107,8 +107,8 @@ a b c
create table t2 like t1;
insert into t2 select * from t1;
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for computed column 'c' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'c' in table 't2' ignored
select * from t1;
a b c
2 -2 -2
@ -123,8 +123,8 @@ a b c
create table t2 like t1;
insert into t2 (a,b) select a,b from t1;
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
select * from t2;
a b c
2 -2 -2
@ -159,7 +159,7 @@ a b c
2 -2 -2
update t1 set c=3 where a=2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -189,7 +189,7 @@ a b c
2 -2 -2
update t1 set c=3 where b=-2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1

View File

@ -25,8 +25,8 @@ a b c
# INSERT INTO tbl_name VALUES... a non-NULL value is specified against vcols
insert into t1 values (1,2,3);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -65,8 +65,8 @@ a b c
# against vcols
insert into t1 (a,b) values (1,3), (2,4);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for computed column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
Warning 1906 The value specified for generated column 'b' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -107,8 +107,8 @@ a b c
create table t2 like t1;
insert into t2 select * from t1;
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for computed column 'c' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'c' in table 't2' ignored
select * from t1;
a b c
2 -2 -2
@ -123,8 +123,8 @@ a b c
create table t2 like t1;
insert into t2 (a,b) select a,b from t1;
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
select * from t2;
a b c
2 -2 -2
@ -159,7 +159,7 @@ a b c
2 -2 -2
update t1 set c=3 where a=2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1
@ -189,7 +189,7 @@ a b c
2 -2 -2
update t1 set c=3 where b=-2;
Warnings:
Warning 1906 The value specified for computed column 'c' in table 't1' ignored
Warning 1906 The value specified for generated column 'c' in table 't1' ignored
select * from t1;
a b c
1 -1 -1

View File

@ -13,13 +13,13 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2), unique key (b));
drop table t1;
@ -28,13 +28,13 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2));
alter table t1 add unique key (b);
@ -57,26 +57,26 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES MUL NULL PERSISTENT
b int(11) YES MUL NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2) persistent, index (a,b));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `a` (`a`,`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES MUL NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2));
alter table t1 add index (b);
@ -107,20 +107,20 @@ drop table t1;
# Rejected FK options.
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on update set null);
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on update cascade);
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on delete set null);
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
create table t1 (a int, b int as (a+1) persistent);
alter table t1 add foreign key (b) references t2(a) on update set null;
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
alter table t1 add foreign key (b) references t2(a) on update cascade;
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
alter table t1 add foreign key (b) references t2(a) on delete set null;
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
drop table t1;
create table t1 (a int, b int as (a+1), foreign key (b) references t2(a));
ERROR HY000: Can't create table `test`.`t1` (errno: 150 "Foreign key constraint is incorrectly formed")

View File

@ -129,13 +129,13 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2), unique key (b));
drop table t1;
@ -144,13 +144,13 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
UNIQUE KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES UNI NULL PERSISTENT
b int(11) YES UNI NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2));
alter table t1 add unique key (b);
@ -173,26 +173,26 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `b` (`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES NULL
b int(11) YES MUL NULL PERSISTENT
b int(11) YES MUL NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2) persistent, index (a,b));
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` * 2)) PERSISTENT,
`b` int(11) GENERATED ALWAYS AS ((`a` * 2)) STORED,
KEY `a` (`a`,`b`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
describe t1;
Field Type Null Key Default Extra
a int(11) YES MUL NULL
b int(11) YES NULL PERSISTENT
b int(11) YES NULL STORED GENERATED
drop table t1;
create table t1 (a int, b int as (a*2));
alter table t1 add index (b);
@ -223,20 +223,20 @@ drop table t1;
# Rejected FK options.
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on update set null);
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on update cascade);
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
create table t1 (a int, b int as (a+1) persistent,
foreign key (b) references t2(a) on delete set null);
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
create table t1 (a int, b int as (a+1) persistent);
alter table t1 add foreign key (b) references t2(a) on update set null;
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE SET NULL clause on a generated column
alter table t1 add foreign key (b) references t2(a) on update cascade;
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a computed column
ERROR HY000: Cannot define foreign key with ON UPDATE CASCADE clause on a generated column
alter table t1 add foreign key (b) references t2(a) on delete set null;
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a computed column
ERROR HY000: Cannot define foreign key with ON DELETE SET NULL clause on a generated column
drop table t1;
# Allowed FK options.
create table t2 (a int primary key, b char(5));

View File

@ -1,7 +1,7 @@
SET @@session.storage_engine = 'memory';
create table t1 (a int, b int as (a+1));
ERROR HY000: MEMORY storage engine does not support computed columns
ERROR HY000: MEMORY storage engine does not support generated columns
create table t1 (a int not null);
alter table t1 add column b int as (a+1);
ERROR HY000: MEMORY storage engine does not support computed columns
ERROR HY000: MEMORY storage engine does not support generated columns
drop table t1;

View File

@ -4,5 +4,5 @@ create table t2 (a int, b int as (a % 10));
insert into t1 values (1,default);
insert into t2 values (2,default);
create table t3 (a int, b int as (a % 10)) engine=MERGE UNION=(t1,t2);
ERROR HY000: MRG_MyISAM storage engine does not support computed columns
ERROR HY000: MRG_MyISAM storage engine does not support generated columns
drop table t1,t2;

View File

@ -108,10 +108,10 @@ DROP TABLE t1,t2;
CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) VIRTUAL);
INSERT INTO t1 VALUES (0,1,0);
Warnings:
Warning 1906 The value specified for computed column 'v' in table 't1' ignored
Warning 1906 The value specified for generated column 'v' in table 't1' ignored
INSERT INTO t1 VALUES (NULL,0,0);
Warnings:
Warning 1906 The value specified for computed column 'v' in table 't1' ignored
Warning 1906 The value specified for generated column 'v' in table 't1' ignored
SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1;
a p v ROUND(a,p) ROUND(a,p+NULL)
1 0 1 1 NULL
@ -130,7 +130,7 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` char(32) DEFAULT NULL,
`v` char(32) CHARACTER SET ucs2 AS (`a`) VIRTUAL
`v` char(32) CHARACTER SET ucs2 GENERATED ALWAYS AS (`a`) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (a int, b int);
@ -144,7 +144,7 @@ SELECT table_schema, table_name, column_name, column_type, extra
FROM information_schema.columns WHERE table_name = 't2';
table_schema table_name column_name column_type extra
test t2 a int(11)
test t2 b int(11) VIRTUAL
test t2 b int(11) VIRTUAL GENERATED
DROP TABLE t1,t2;
create table t1 (
a int not null, b char(2) not null,
@ -155,7 +155,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` char(2) NOT NULL,
`c` enum('Y','N') AS ((case when (`b` = 'aa') then 'Y' else 'N' end)) PERSISTENT
`c` enum('Y','N') GENERATED ALWAYS AS ((case when (`b` = 'aa') then 'Y' else 'N' end)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1(a,b) values (1,'bb'), (2,'aa'), (3,'cc');
select * from t1;
@ -173,7 +173,7 @@ Table Create Table
t2 CREATE TABLE `t2` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` set('y','n') AS (if((`a` = 0),if((`b` = 0),'n,n','n,y'),if((`b` = 0),'y,n','y,y'))) PERSISTENT
`c` set('y','n') GENERATED ALWAYS AS (if((`a` = 0),if((`b` = 0),'n,n','n,y'),if((`b` = 0),'y,n','y,y'))) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t2(a,b) values (7,0), (2,3), (0,1);
select * from t2;
@ -227,7 +227,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) DEFAULT NULL,
`b` bigint(20) AS ((`a` > '2')) VIRTUAL
`b` bigint(20) GENERATED ALWAYS AS ((`a` > '2')) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1 (a) values (1),(3);
select * from t1;
@ -244,7 +244,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bigint(20) DEFAULT NULL,
`b` bigint(20) AS ((`a` between 0 and 2)) VIRTUAL
`b` bigint(20) GENERATED ALWAYS AS ((`a` between 0 and 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1 (a) values (1),(3);
select * from t1;
@ -261,7 +261,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` char(10) DEFAULT NULL,
`b` char(10) AS ((`a` between 0 and 2)) VIRTUAL
`b` char(10) GENERATED ALWAYS AS ((`a` between 0 and 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
insert into t1 (a) values (1),(3);
select * from t1;
@ -284,33 +284,33 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) NOT NULL,
`b` varchar(32) DEFAULT NULL,
`c` int(11) AS ((`a` % 10)) VIRTUAL,
`d` varchar(5) AS (left(`b`,5)) PERSISTENT
`c` int(11) GENERATED ALWAYS AS ((`a` % 10)) VIRTUAL,
`d` varchar(5) GENERATED ALWAYS AS (left(`b`,5)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
show columns from t1;
Field Type Null Key Default Extra
a int(11) NO NULL
b varchar(32) YES NULL
c int(11) YES NULL VIRTUAL
d varchar(5) YES NULL PERSISTENT
c int(11) YES NULL VIRTUAL GENERATED
d varchar(5) YES NULL STORED GENERATED
show full columns from t1;
Field Type Collation Null Key Default Extra Privileges Comment
a int(11) NULL NO NULL #
b varchar(32) latin1_swedish_ci YES NULL #
c int(11) NULL YES NULL VIRTUAL #
d varchar(5) latin1_swedish_ci YES NULL PERSISTENT #
c int(11) NULL YES NULL VIRTUAL GENERATED #
d varchar(5) latin1_swedish_ci YES NULL STORED GENERATED #
INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,NULL);
UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a';
Warnings:
Warning 1906 The value specified for computed column 'd' in table 't1' ignored
Warning 1906 The value specified for generated column 'd' in table 't1' ignored
INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a');
Warnings:
Warning 1906 The value specified for computed column 'd' in table 't1' ignored
Warning 1906 The value specified for generated column 'd' in table 't1' ignored
set sql_mode='strict_all_tables';
UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a';
ERROR HY000: The value specified for computed column 'd' in table 't1' ignored
ERROR HY000: The value specified for generated column 'd' in table 't1' ignored
INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a');
ERROR HY000: The value specified for computed column 'd' in table 't1' ignored
ERROR HY000: The value specified for generated column 'd' in table 't1' ignored
drop table t1;
#
# MDEV-5611: self-referencing virtual column
@ -324,7 +324,7 @@ create table t1 (v1 varchar(255) as (c1) persistent, c1 varchar(50)) collate=lat
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`v1` varchar(255) AS (`c1`) PERSISTENT,
`v1` varchar(255) GENERATED ALWAYS AS (`c1`) STORED,
`c1` varchar(50) COLLATE latin1_general_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
drop table t1;
@ -339,7 +339,7 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` datetime DEFAULT NULL,
`b` timestamp AS (cast(`a` as datetime)) VIRTUAL
`b` timestamp GENERATED ALWAYS AS (cast(`a` as datetime)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;
CREATE TABLE t1 (a DATETIME, b TIMESTAMP AS (TIMESTAMP(a)),c TIMESTAMP);
@ -347,7 +347,7 @@ SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` datetime DEFAULT NULL,
`b` timestamp AS (cast(`a` as datetime)) VIRTUAL,
`b` timestamp GENERATED ALWAYS AS (cast(`a` as datetime)) VIRTUAL,
`c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1;

View File

@ -76,23 +76,23 @@ drop table t1;
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
create table t1 (a int, b int as (a % 2) persistent);
alter table t1 modify b int as (a % 2);
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
create table t1 (a int, b int as (a % 2));
alter table t1 modify b int as (a % 2) persistent;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
# Case 9. CREATE LIKE
@ -173,7 +173,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) VIRTUAL,
`b` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
@ -194,7 +194,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) PERSISTENT,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) STORED,
`b` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
@ -216,7 +216,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` datetime DEFAULT NULL,
`c` int(11) AS (week(`b`,1)) PERSISTENT
`c` int(11) GENERATED ALWAYS AS (week(`b`,1)) STORED
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
# Case 15. ALTER. Changing the expression of a virtual non-stored column.
@ -237,7 +237,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` datetime DEFAULT NULL,
`c` int(11) AS (week(`b`,1)) VIRTUAL
`c` int(11) GENERATED ALWAYS AS (week(`b`,1)) VIRTUAL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
#

View File

@ -76,23 +76,23 @@ drop table t1;
# Case 7. ALTER. Modify virtual stored -> virtual non-stored
create table t1 (a int, b int as (a % 2) persistent);
alter table t1 modify b int as (a % 2);
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
# Case 8. ALTER. Modify virtual non-stored -> virtual stored
create table t1 (a int, b int as (a % 2));
alter table t1 modify b int as (a % 2) persistent;
ERROR HY000: This is not yet supported for computed columns
ERROR HY000: This is not yet supported for generated columns
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` % 2)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` % 2)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
# Case 9. CREATE LIKE
@ -173,7 +173,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) VIRTUAL,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) VIRTUAL,
`b` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@ -194,7 +194,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`c` int(11) AS (dayofyear(`b`)) PERSISTENT,
`c` int(11) GENERATED ALWAYS AS (dayofyear(`b`)) STORED,
`b` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
@ -216,7 +216,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` datetime DEFAULT NULL,
`c` int(11) AS (week(`b`,1)) PERSISTENT
`c` int(11) GENERATED ALWAYS AS (week(`b`,1)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
# Case 15. ALTER. Changing the expression of a virtual non-stored column.
@ -237,7 +237,7 @@ Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` datetime DEFAULT NULL,
`c` int(11) AS (week(`b`,1)) VIRTUAL
`c` int(11) GENERATED ALWAYS AS (week(`b`,1)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
#

View File

@ -273,9 +273,9 @@ INSERT INTO t1 VALUES (NULL),( 78), (185), (0), (154);
CREATE TABLE t2 (a int, b int AS (a) VIRTUAL);
INSERT INTO t2 VALUES (187,187), (9,9), (187,187);
Warnings:
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for computed column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
Warning 1906 The value specified for generated column 'b' in table 't2' ignored
EXPLAIN EXTENDED
SELECT * FROM t1 JOIN t2 USING (b);
id select_type table type possible_keys key key_len ref rows filtered Extra

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a int, b int as (a+1) virtual);
@ -13,7 +13,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) VIRTUAL
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) VIRTUAL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a int, b int generated always as (a+1) persistent);
@ -21,7 +21,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` int(11) AS ((`a` + 1)) PERSISTENT
`b` int(11) GENERATED ALWAYS AS ((`a` + 1)) STORED
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
set session sql_mode='ORACLE';
@ -30,7 +30,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" int(11) AS (("a" + 1)) VIRTUAL
"b" int(11) GENERATED ALWAYS AS (("a" + 1)) VIRTUAL
)
drop table t1;
create table t1 (a int, b int generated always as (a+1) virtual);
@ -38,7 +38,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" int(11) AS (("a" + 1)) VIRTUAL
"b" int(11) GENERATED ALWAYS AS (("a" + 1)) VIRTUAL
)
drop table t1;
create table t1 (a int, b int as (a+1) persistent);
@ -46,7 +46,7 @@ show create table t1;
Table Create Table
t1 CREATE TABLE "t1" (
"a" int(11) DEFAULT NULL,
"b" int(11) AS (("a" + 1)) PERSISTENT
"b" int(11) GENERATED ALWAYS AS (("a" + 1)) STORED
)
drop table t1;
set session sql_mode=@OLD_SQL_MODE;

View File

@ -13,16 +13,16 @@ set time_zone='+10:00';
set div_precision_increment=20;
create table t1 (a int, b int, v decimal(20,19) as (a/3));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t2 (a int, b int, v int as (a+@a));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t2 (a int, b int, v int as (a+@a) PERSISTENT);
create table t3_ok (a int, b int, v int as (a+@@error_count));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t3 (a int, b int, v int as (a+@@error_count) PERSISTENT);
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t4 (a int, b int, v int as (@a:=a));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t4 (a int, b int, v int as (@a:=a) PERSISTENT);
create table t8 (a int, b int, v varchar(100) as (from_unixtime(a)));

View File

@ -21,85 +21,85 @@
--echo # RAND()
create or replace table t1 (b double as (rand()));
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (b double as (rand()) PERSISTENT);
--echo # LOAD_FILE()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(64), b varchar(1024) as (load_file(a)));
--echo # CURDATE()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (curdate()) PERSISTENT);
--echo # CURRENT_DATE(), CURRENT_DATE
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (current_date) PERSISTENT);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (current_date()) PERSISTENT);
--echo # CURRENT_TIME(), CURRENT_TIME
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (current_time) PERSISTENT);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (current_time()) PERSISTENT);
--echo # CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (current_timestamp()) PERSISTENT);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (current_timestamp) PERSISTENT);
--echo # CURTIME()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime as (curtime()) PERSISTENT);
--echo # LOCALTIME(), LOCALTIME
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b varchar(10) as (localtime()) PERSISTENT);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b varchar(10) as (localtime) PERSISTENT);
--echo # LOCALTIMESTAMP, LOCALTIMESTAMP()(v4.0.6)
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b varchar(10) as (localtimestamp()) PERSISTENT);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b varchar(10) as (localtimestamp) PERSISTENT);
--echo # NOW()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b varchar(10) as (now()) PERSISTENT);
--echo # SYSDATE()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b varchar(10) as (sysdate()) PERSISTENT);
--echo # UNIX_TIMESTAMP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b datetime as (unix_timestamp()) PERSISTENT);
--echo # UTC_DATE()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b datetime as (utc_date()) PERSISTENT);
--echo # UTC_TIME()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b datetime as (utc_time()) PERSISTENT);
--echo # UTC_TIMESTAMP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b datetime as (utc_timestamp()) PERSISTENT);
--echo # WEEK() - one argument version
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a datetime, b datetime as (week(a)) PERSISTENT);
--echo # MATCH()
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32), b bool as (match a against ('sample text')) PERSISTENT);
--echo # BENCHMARK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (benchmark(a,3)));
--echo # CHARSET()
@ -113,84 +113,84 @@ create or replace table t1 (a varchar(64), b varchar(64) as (collation(a)) PERSI
--echo # CONNECTION_ID()
create or replace table t1 (a int as (connection_id()));
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int as (connection_id()) PERSISTENT);
--echo # DATABASE()
create or replace table t1 (a varchar(32) as (database()));
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (database()) PERSISTENT);
--echo # FOUND_ROWS()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (found_rows()));
--echo # GET_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (get_lock(a,10)));
--echo # IS_FREE_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (is_free_lock(a)));
--echo # IS_USED_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (is_used_lock(a)));
--echo # LAST_INSERT_ID()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int as (last_insert_id()));
--echo # MASTER_POS_WAIT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32), b int as (master_pos_wait(a,0,2)));
--echo # NAME_CONST()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32) as (name_const('test',1)));
--echo # RELEASE_LOCK()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32), b int as (release_lock(a)));
--echo # ROW_COUNT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int as (row_count()));
--echo # SCHEMA()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32) as (schema()) PERSISTENT);
--echo # SESSION_USER()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32) as (session_user()) PERSISTENT);
--echo # SLEEP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (sleep(a)));
--echo # SYSTEM_USER()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32) as (system_user()) PERSISTENT);
--echo # USER()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (user()) PERSISTENT);
--echo # UUID_SHORT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024) as (uuid_short()) PERSISTENT);
--echo # UUID()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024) as (uuid()) PERSISTENT);
--echo # VALUES()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (values(a)));
--echo # VERSION()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(1024), b varchar(1024) as (version()) PERSISTENT);
--echo # ENCRYPT()
@ -212,16 +212,16 @@ end //
delimiter ;//
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int as (p1()) PERSISTENT);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int as (f1()) PERSISTENT);
drop procedure p1;
drop function f1;
--echo # Unknown functions
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int as (f1()) PERSISTENT);
--echo #
@ -229,71 +229,71 @@ create or replace table t1 (a int as (f1()) PERSISTENT);
--echo #
--echo # AVG()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (avg(a)));
--echo # BIT_AND()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (bit_and(a)));
--echo # BIT_OR()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (bit_or(a)));
--echo # BIT_XOR()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (bit_xor(a)));
--echo # COUNT(DISTINCT)
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (count(distinct a)));
--echo # COUNT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (count(a)));
--echo # GROUP_CONCAT()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a varchar(32), b int as (group_concat(a,'')));
--echo # MAX()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (max(a)));
--echo # MIN()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (min(a)));
--echo # STD()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (std(a)));
--echo # STDDEV_POP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (stddev_pop(a)));
--echo # STDDEV_SAMP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (stddev_samp(a)));
--echo # STDDEV()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (stddev(a)));
--echo # SUM()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (sum(a)));
--echo # VAR_POP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (var_pop(a)));
--echo # VAR_SAMP()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (var_samp(a)));
--echo # VARIANCE()
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (variance(a)));
--echo #
@ -311,13 +311,13 @@ create or replace table t1 (a varchar(1024), b varchar(1024) as (UpdateXML(a,'/a
--echo #
create or replace table t1 (a int);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t2 (a int, b int as (select count(*) from t1));
drop table t1;
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as ((select 1)));
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (a+(select 1)));
--echo #
@ -330,7 +330,7 @@ drop function if exists sub1;
create function sub1(i int) returns int deterministic
return i+1;
select sub1(1);
-- error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
-- error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a int, b int as (a+sub3(1)));
drop function sub1;

View File

@ -48,7 +48,7 @@ create table t1 (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 t2 values (2,default);
--error ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
--error ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
create table t3 (a int, b int as (a % 10)) engine=MERGE UNION=(t1,t2);
drop table t1,t2;

View File

@ -269,9 +269,9 @@ INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,NULL);
UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a';
INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a');
set sql_mode='strict_all_tables';
--error ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN
--error ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
UPDATE `test`.`t1` SET `d`='b' WHERE `a`='1' AND `b`='a' AND `c`='1' AND `d`='a';
--error ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN
--error ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
INSERT INTO `test`.`t1`(`a`,`b`,`c`,`d`) VALUES ( '1','a',NULL,'a');
drop table t1;

View File

@ -321,9 +321,9 @@ drop table t1;
--echo # Error handling
--echo #
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a bigint default xxx());
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create or replace table t1 (a bigint default (select (1)));
--error ER_OPERAND_COLUMNS
create or replace table t1 (a bigint default (1,2,3));
@ -338,13 +338,13 @@ CREATE TABLE t1 (a INT, b INT DEFAULT -a);
--echo # Invalid DEFAULT expressions
--echo #
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT ((SELECT 1)));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT (EXISTS (SELECT 1)));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT (1=ANY (SELECT 1)));
--error ER_OPERAND_COLUMNS
@ -364,39 +364,39 @@ CREATE TABLE t1 (a INT DEFAULT(?));
--error ER_EXPRESSION_REFERS_TO_UNINIT_FIELD
CREATE TABLE t1 (a INT DEFAULT (b), b INT DEFAULT(a));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT @v);
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT @v:=1);
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT(NAME_CONST('xxx', 'yyy'));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT COUNT(*));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT COUNT(1));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT AVG(1));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT MIN(1));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT GROUP_CONCAT(1));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT ROW_NUMBER() OVER ());
CREATE FUNCTION f1() RETURNS INT RETURN 1;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT f1());
DROP FUNCTION f1;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE PROCEDURE p1(par INT) CREATE TABLE t1 (a INT DEFAULT par);
--error ER_BAD_FIELD_ERROR
@ -407,18 +407,18 @@ CREATE PROCEDURE p1() CREATE TABLE t1 (a INT DEFAULT par);
CALL p1;
DROP PROCEDURE p1;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT VALUES(a));
CREATE TABLE t1 (a INT);
# "Explicit or implicit commit is not allowed in stored function or trigger
# because the entire CREATE TABLE is actually not allowed in triggers!
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW CREATE TABLE t2 (a INT DEFAULT NEW.a);
# This is OK to return Function or expression is not allowed for 'DEFAULT'
# because CREATE TEMPORARY TABLE is allowed in triggers
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW CREATE TEMPORARY TABLE t2 (a INT DEFAULT NEW.a);
DROP TABLE t1;
@ -930,37 +930,37 @@ INSERT INTO t1 VALUES ();
SELECT a>0 FROM t1;
DROP TABLE t1;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT BENCHMARK(1,1));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT GET_LOCK('a',1));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT RELEASE_LOCK('a'));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT IS_USED_LOCK('a'));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT IS_FREE_LOCK('a'));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT SLEEP(1));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT ROW_COUNT());
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT FOUND_ROWS());
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT MASTER_POS_WAIT('test',100));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT MASTER_GTID_WAIT('test'));
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a VARCHAR(30), b DOUBLE DEFAULT MATCH (a) AGAINST('bbbb' IN BOOLEAN MODE));
--echo #
@ -1594,7 +1594,7 @@ INSERT INTO t1 VALUES (0x50006,'Y','N','',64,DEFAULT);
SELECT * FROM t1;
DROP TABLE t1;
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a VARCHAR(30), b BLOB DEFAULT LOAD_FILE(a));
--echo #
@ -1722,7 +1722,7 @@ DROP TABLE t1;
--echo #
# QQ: LAST_INSERT_ID() should probably be allowed
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1
(
id SERIAL PRIMARY KEY,

View File

@ -14,7 +14,7 @@ SET @tmp=ST_GIS_DEBUG(1);
--echo # MDEV-10134 Add full support for DEFAULT
--echo #
--error ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
CREATE TABLE t1 (a INT DEFAULT ST_GIS_DEBUG(1));
--echo #

View File

@ -9797,7 +9797,7 @@ bool check_expression(Virtual_column_info *vcol, const char *name,
if (ret || (res.errors & filter))
{
my_error(ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED, MYF(0), res.name,
my_error(ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED, MYF(0), res.name,
vcol_type_name(type), name);
return TRUE;
}

View File

@ -6965,28 +6965,28 @@ ER_LAST_MYSQL_ERROR_MESSAGE
# MariaDB error numbers starts from 1900
start-error-number 1900
ER_VCOL_BASED_ON_VCOL
eng "A computed column cannot be based on a computed column"
ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED
ER_UNUSED_18
eng ""
ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
eng "Function or expression '%s' cannot be used in the %s clause of %`s"
ER_DATA_CONVERSION_ERROR_FOR_VIRTUAL_COLUMN
eng "Generated value for computed column '%s' cannot be converted to type '%s'"
ER_PRIMARY_KEY_BASED_ON_VIRTUAL_COLUMN
eng "Primary key cannot be defined upon a computed column"
ER_UNUSED_19
eng ""
ER_PRIMARY_KEY_BASED_ON_GENERATED_COLUMN
eng "Primary key cannot be defined upon a generated column"
ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN
eng "Key/Index cannot be defined on a non-stored computed column"
ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN
eng "Cannot define foreign key with %s clause on a computed column"
ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN
eng "The value specified for computed column '%s' in table '%s' ignored"
ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN
eng "This is not yet supported for computed columns"
ER_CONST_EXPR_IN_VCOL
eng "Constant expression in computed column function is not allowed"
ER_ROW_EXPR_FOR_VCOL
eng "Expression for computed column cannot return a row"
ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS
eng "%s storage engine does not support computed columns"
eng "Key/Index cannot be defined on a virtual generated column"
ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN
eng "Cannot define foreign key with %s clause on a generated column"
ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
eng "The value specified for generated column '%s' in table '%s' ignored"
ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN
eng "This is not yet supported for generated columns"
ER_UNUSED_20
eng ""
ER_UNUSED_21
eng ""
ER_UNSUPPORTED_ENGINE_FOR_GENERATED_COLUMNS
eng "%s storage engine does not support generated columns"
ER_UNKNOWN_OPTION
eng "Unknown option '%-.64s'"
ER_BAD_OPTION_VALUE

View File

@ -1913,11 +1913,11 @@ int show_create_table(THD *thd, TABLE_LIST *table_list, String *packet,
{
StringBuffer<MAX_FIELD_WIDTH> str(&my_charset_utf8mb4_general_ci);
field->vcol_info->print(&str);
packet->append(STRING_WITH_LEN(" AS ("));
packet->append(STRING_WITH_LEN(" GENERATED ALWAYS AS ("));
packet->append(str);
packet->append(STRING_WITH_LEN(")"));
if (field->vcol_info->stored_in_db)
packet->append(STRING_WITH_LEN(" PERSISTENT"));
packet->append(STRING_WITH_LEN(" STORED"));
else
packet->append(STRING_WITH_LEN(" VIRTUAL"));
}
@ -5508,9 +5508,9 @@ static int get_schema_column_record(THD *thd, TABLE_LIST *tables,
if (field->vcol_info)
{
if (field->vcol_info->stored_in_db)
table->field[17]->store(STRING_WITH_LEN("PERSISTENT"), cs);
table->field[17]->store(STRING_WITH_LEN("STORED GENERATED"), cs);
else
table->field[17]->store(STRING_WITH_LEN("VIRTUAL"), cs);
table->field[17]->store(STRING_WITH_LEN("VIRTUAL GENERATED"), cs);
}
table->field[19]->store(field->comment.str, field->comment.length, cs);
if (schema_table_store_record(thd, table))

View File

@ -3881,7 +3881,7 @@ mysql_prepare_create_table(THD *thd, HA_CREATE_INFO *create_info,
{
if (key->type == Key::PRIMARY)
{
my_error(ER_PRIMARY_KEY_BASED_ON_VIRTUAL_COLUMN, MYF(0));
my_error(ER_PRIMARY_KEY_BASED_ON_GENERATED_COLUMN, MYF(0));
DBUG_RETURN(TRUE);
}
if (sql_field->vcol_info->flags & VCOL_NOT_STRICTLY_DETERMINISTIC)
@ -7625,7 +7625,7 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
new_create_list.push_back(def, thd->mem_root);
if (field->stored_in_db() != def->stored_in_db())
{
my_error(ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN, MYF(0));
my_error(ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN, MYF(0));
goto err;
}
if (!def->after)

View File

@ -13953,7 +13953,7 @@ create_table_info_t::gcols_in_fulltext_or_spatial()
/* We do not support special (Fulltext or
Spatial) index on virtual columns */
if (innobase_is_v_fld(key_part->field)) {
my_error(ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN, MYF(0));
my_error(ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN, MYF(0));
return true;
}
}