# test for bogus inplace alter of an enum field

source include/have_tokudb.inc;
set default_storage_engine=tokudb;

disable_warnings;
drop table if exists test_enum;
enable_warnings;

# no change in enum list
CREATE TABLE test_enum (col1 INT NOT NULL PRIMARY KEY AUTO_INCREMENT, col2 ENUM('value1','value2','value3') NULL);
INSERT INTO test_enum (col2) VALUES ('value1'),('value1'),('value3');
SELECT * FROM test_enum;

set tokudb_disable_hot_alter=0;
set tokudb_disable_slow_alter=1;
ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value2','value3');
SELECT * FROM test_enum;

drop table test_enum;

# change number in enum list
CREATE TABLE test_enum (col1 INT NOT NULL PRIMARY KEY AUTO_INCREMENT, col2 ENUM('value1','value2','value3') NULL);
INSERT INTO test_enum (col2) VALUES ('value1'),('value1'),('value3');
SELECT * FROM test_enum;

set tokudb_disable_hot_alter=0;
set tokudb_disable_slow_alter=1;
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION
ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value3');

set tokudb_disable_hot_alter=1;
set tokudb_disable_slow_alter=0;
ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value3');
SELECT * FROM test_enum;

drop table test_enum;

# change values in enum list
CREATE TABLE test_enum (col1 INT NOT NULL PRIMARY KEY AUTO_INCREMENT, col2 ENUM('value1','value2','value3') NULL);
INSERT INTO test_enum (col2) VALUES ('value1'),('value1'),('value3');
SELECT * FROM test_enum;

set tokudb_disable_hot_alter=0;
set tokudb_disable_slow_alter=1;
--replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
--error ER_UNSUPPORTED_EXTENSION
ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value2','value4');

set tokudb_disable_hot_alter=1;
set tokudb_disable_slow_alter=0;
--error 1265
ALTER TABLE test_enum MODIFY COLUMN col2 ENUM('value1','value2','value4');
SELECT * FROM test_enum;

drop table test_enum;
