mariadb/mysql-test/suite/vcol/t/not_supported.test
Sergei Golubchik 37bfe32c6d try harder to reject not strictly deterministic vcols in indexes/stored
detect non-determinism in vcol of vcol, like:

create table t1 (a int, b real as (rand()), c real as (b) stored);
2022-12-02 16:19:13 +01:00

66 lines
2.1 KiB
Text

#
# MDEV-7113 difference between check_vcol_func_processor and check_partition_func_processor
#
# the following functions must not be supported in persistent columns.
# but for compatibility reasons it won't be done in a GA version,
# we'll only fix most critical issues (inconsistent results, crashes)
connect (con1, localhost, root);
set lc_time_names = 'es_MX';
set time_zone='+10:00';
set div_precision_increment=20;
create table t1 (a int, b int, v decimal(20,19) as (a/3));
create table t2 (a int, b int, v int as (a+@a)); drop table t2;
--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_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t3 (a int, b int, v int as (a+@@error_count) PERSISTENT);
create table t4 (a int, b int, v int as (@a:=a)); drop table t4;
--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)));
insert t1 (a,b) values (1,2);
insert t8 (a,b) values (1234567890,2);
select * from t1;
select * from t8;
disconnect con1;
connection default;
set time_zone='+1:00';
flush tables;
select * from t1;
select * from t8;
drop table t1, t3_ok, t8;
--echo #
--echo # Bug#33141966 - INCONSISTENT BEHAVIOR IF A COLUMN OF TYPE SERIAL IS SET AS GENERATED
--echo #
--error ER_PARSE_ERROR
create table t1 (a int, b serial as (a+1));
--echo #
--echo # End of 10.2 tests
--echo #
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b real as (rand()), c real as (b) stored);
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int, b real as (rand()), c real as (b) unique);
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int auto_increment primary key,
b int as (a+1), c int as (b+1) stored);
--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED
create table t1 (a int auto_increment primary key,
b int as (a+1), c int as (b+1) unique);
--echo #
--echo # End of 10.3 tests
--echo #