933 lines
27 KiB
Plaintext
933 lines
27 KiB
Plaintext
--echo #
|
|
--echo # CREATE TABLE - column with func as DEFAULT then test DROP column.
|
|
--echo #
|
|
CREATE TABLE t1 (i int, b JSON DEFAULT (JSON_OBJECT("key", i)));
|
|
INSERT INTO t1(i) VALUES (1);
|
|
INSERT INTO t1 SET i = 10;
|
|
INSERT INTO t1(i, b) VALUES (2, DEFAULT);
|
|
INSERT INTO t1 SET i = 20, b = DEFAULT;
|
|
INSERT INTO t1(i, b) VALUES (3, JSON_OBJECT("key", 3));
|
|
INSERT INTO t1 SET i = 30, b = JSON_OBJECT("key", 30);
|
|
SELECT * FROM t1;
|
|
ALTER TABLE t1 DROP COLUMN b;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # CREATE TABLE - column with INDEX and func as DEFAULT
|
|
--echo #
|
|
CREATE TABLE t1 (i int, b char(255) DEFAULT (md5(i)), INDEX (b(10)));
|
|
INSERT INTO t1(i) VALUES (1);
|
|
INSERT INTO t1(i, b) VALUES (2, DEFAULT);
|
|
INSERT INTO t1(i, b) VALUES (3, "some string");
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Test ALTER table ADD column with DEFAULT
|
|
--echo #
|
|
CREATE TABLE t1 (i int);
|
|
INSERT INTO t1(i) VALUES (1),(2);
|
|
ALTER TABLE t1 ADD COLUMN b JSON DEFAULT (JSON_OBJECT("key",i));
|
|
INSERT INTO t1(i) VALUES (3);
|
|
INSERT INTO t1(i, b) VALUES (4, DEFAULT);
|
|
INSERT INTO t1(i, b) VALUES (5, JSON_OBJECT("key", 5));
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Test ALTER table ADD column with DEFAULT then ALTER TABLE SET DEFAULT func
|
|
--echo #
|
|
CREATE TABLE t1 (i int);
|
|
INSERT INTO t1(i) VALUES (1),(2);
|
|
ALTER TABLE t1 ADD COLUMN b JSON;
|
|
ALTER TABLE t1 ALTER COLUMN b SET DEFAULT (JSON_OBJECT("key",i));
|
|
INSERT INTO t1(i) VALUES (3);
|
|
INSERT INTO t1(i, b) VALUES (4, DEFAULT);
|
|
INSERT INTO t1(i, b) VALUES (5, JSON_OBJECT("key", 5));
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
|
|
--echo #
|
|
--echo # Test ALTER table CHANGE column
|
|
--echo #
|
|
CREATE TABLE t1 (i int);
|
|
INSERT INTO t1(i) VALUES (1),(2);
|
|
ALTER TABLE t1 ADD COLUMN b JSON DEFAULT (JSON_ARRAY());
|
|
INSERT INTO t1(i) VALUES (4);
|
|
ALTER TABLE t1 CHANGE COLUMN b new_b JSON DEFAULT (JSON_OBJECT("key",i));
|
|
INSERT INTO t1(i) VALUES (5);
|
|
INSERT INTO t1(i, new_b) VALUES (6, DEFAULT);
|
|
INSERT INTO t1(i, new_b) VALUES (7, JSON_OBJECT("key", 7));
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (i int, b int DEFAULT (123 * 1));
|
|
--error ER_DEFAULT_VAL_GENERATED_NON_PRIOR
|
|
ALTER TABLE t1 CHANGE COLUMN i new_i JSON DEFAULT (JSON_ARRAY(b));
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Test ALTER table MODIFY column
|
|
--echo #
|
|
CREATE TABLE t1 (i int);
|
|
INSERT INTO t1(i) VALUES (1),(2);
|
|
ALTER TABLE t1 ADD COLUMN b JSON DEFAULT (JSON_ARRAY());
|
|
INSERT INTO t1(i) VALUES (4);
|
|
ALTER TABLE t1 MODIFY COLUMN b JSON DEFAULT (JSON_OBJECT("key",i)) FIRST;
|
|
INSERT INTO t1(i) VALUES (5);
|
|
INSERT INTO t1(i, b) VALUES (6, DEFAULT);
|
|
INSERT INTO t1(i, b) VALUES (7, JSON_OBJECT("key", 7));
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (i int, b int DEFAULT (123 * 1));
|
|
--error ER_DEFAULT_VAL_GENERATED_NON_PRIOR
|
|
ALTER TABLE t1 MODIFY COLUMN i JSON DEFAULT (JSON_ARRAY(b)) FIRST;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Column order with expression or literal as default value
|
|
--echo #
|
|
CREATE TABLE t1 (i JSON DEFAULT (JSON_ARRAY(b)), b int DEFAULT 123);
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (b int DEFAULT 123, i JSON DEFAULT (JSON_ARRAY(b)));
|
|
DROP TABLE t1;
|
|
--error ER_DEFAULT_VAL_GENERATED_NON_PRIOR
|
|
CREATE TABLE t1 (i JSON DEFAULT (JSON_ARRAY(b)), b int DEFAULT (123 * 1));
|
|
CREATE TABLE t1 (b int DEFAULT (123 * 1), i JSON DEFAULT (JSON_ARRAY(b)));
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Test CREATE TABLE with column without default then SET a DEFAULT.
|
|
--echo # ALSO TEST DROP DEFAULT
|
|
--echo #
|
|
CREATE TABLE t1 (i int, b JSON);
|
|
INSERT INTO t1(i) VALUES (1),(2);
|
|
ALTER TABLE t1 ALTER COLUMN b SET DEFAULT (JSON_OBJECT("key",i));
|
|
INSERT INTO t1(i) VALUES (3);
|
|
INSERT INTO t1(i, b) VALUES (4, DEFAULT);
|
|
INSERT INTO t1(i, b) VALUES (5, JSON_OBJECT("key", 5));
|
|
ALTER TABLE t1 ALTER COLUMN b DROP DEFAULT;
|
|
INSERT INTO t1(i, b) VALUES (6, NULL);
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Test func as DEFAULT with auto_increment
|
|
--echo #
|
|
--error ER_DEFAULT_VAL_GENERATED_REF_AUTO_INC
|
|
CREATE TABLE t1 (id int(11) PRIMARY KEY auto_increment,
|
|
f1 JSON DEFAULT (JSON_OBJECT("key", id)));
|
|
|
|
--echo #
|
|
--echo # Test with not-allowed function
|
|
--echo #
|
|
--error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(64), b varchar(1024) DEFAULT (load_file(a)));
|
|
|
|
--echo #
|
|
--echo # Test func as DEFAULT with different order
|
|
--echo #
|
|
CREATE TABLE t1 (f1 JSON DEFAULT (JSON_OBJECT("key", id)), id int(11));
|
|
INSERT INTO t1(id) VALUES(1), (2), (3);
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Test function set as DEFAULT value which exceeds size
|
|
--echo #
|
|
CREATE TABLE t1 (id char(2) DEFAULT (uuid()));
|
|
--error ER_DATA_TOO_LONG
|
|
INSERT INTO t1 VALUES (),(),();
|
|
DROP TABLE t1;
|
|
|
|
|
|
--echo #
|
|
--echo # Test generated funcs with default value.
|
|
--echo #
|
|
-- error ER_WRONG_USAGE
|
|
CREATE TABLE t3 (a INT PRIMARY KEY,
|
|
b INT GENERATED ALWAYS AS (-a) VIRTUAL UNIQUE DEFAULT (-1 * 128));
|
|
-- error ER_WRONG_USAGE
|
|
CREATE TABLE t3 (a INT PRIMARY KEY,
|
|
c INT GENERATED ALWAYS AS (-a) STORED DEFAULT (-1 * 128));
|
|
|
|
--echo #
|
|
--echo # Test SHOW CREATE TABLE, DESCRIBE TABLE and CREATE as SELECT
|
|
--echo #
|
|
CREATE TABLE t1 (id char(36) DEFAULT (uuid()));
|
|
INSERT INTO t1 VALUES (),(),();
|
|
CREATE TABLE t2 as SELECT * from t1;
|
|
SHOW CREATE TABLE t2;
|
|
CREATE TABLE t3 LIKE t1;
|
|
SHOW CREATE TABLE t3;
|
|
# select just length as results are different for each run
|
|
SELECT LENGTH(id) FROM t1;
|
|
SHOW CREATE TABLE t1;
|
|
SHOW COLUMNS FROM t1;
|
|
DESCRIBE t1;
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
DROP TABLE t3;
|
|
|
|
|
|
--echo #
|
|
--echo # Create table with DEFAULT()
|
|
--echo #
|
|
--error ER_DEFAULT_AS_VAL_GENERATED
|
|
CREATE TABLE t3 (a INT PRIMARY KEY,
|
|
d INT DEFAULT (-a + 1),
|
|
c INT DEFAULT (DEFAULT(d))
|
|
);
|
|
|
|
--echo #
|
|
--echo # DROP column that it depends on
|
|
--echo #
|
|
CREATE TABLE t3 (a INT PRIMARY KEY,
|
|
d INT DEFAULT (-a + 1),
|
|
c INT DEFAULT (-d)
|
|
);
|
|
|
|
--error ER_DEFAULT_AS_VAL_GENERATED
|
|
SELECT DEFAULT(d) from t3;
|
|
--error ER_DEFAULT_AS_VAL_GENERATED
|
|
SELECT DEFAULT(c) from t3;
|
|
--error ER_DEPENDENT_BY_DEFAULT_GENERATED_VALUE
|
|
ALTER TABLE t3 DROP COLUMN d;
|
|
DROP TABLE t3;
|
|
|
|
--echo #
|
|
--echo # Test UTF8
|
|
--echo #
|
|
CREATE TABLE `t1` (i varchar(200) DEFAULT (_utf8mb4"\U+1F9DB♀"));
|
|
SELECT COLUMN_NAME, COLUMN_DEFAULT, DATA_TYPE, EXTRA, GENERATION_EXPRESSION
|
|
FROM information_schema.columns WHERE table_name= "t1";
|
|
INSERT INTO t1 values (),();
|
|
SELECT * from t1;
|
|
DESCRIBE t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Test with REPLACE INTO ..
|
|
--echo #
|
|
|
|
CREATE TABLE test (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
data VARCHAR(64) DEFAULT NULL,
|
|
something VARCHAR(64) NOT NULL DEFAULT (CONCAT ('[', data, ']')),
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
REPLACE INTO test VALUES (1, 'Old', DEFAULT);
|
|
SELECT * FROM test;
|
|
REPLACE INTO test VALUES (1, 'New', DEFAULT);
|
|
SELECT * FROM test;
|
|
DROP TABLE test;
|
|
|
|
--echo #
|
|
--echo # TINYBLOB tests
|
|
--echo #
|
|
|
|
CREATE TABLE t(i INT, b TINYBLOB DEFAULT (repeat('b', i)));
|
|
SHOW CREATE TABLE t;
|
|
INSERT INTO t values(254, DEFAULT);
|
|
INSERT INTO t values(255, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(256, DEFAULT);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
CREATE TABLE t(i INT);
|
|
INSERT INTO t values(254), (255), (256);
|
|
-- error ER_DATA_TOO_LONG
|
|
ALTER TABLE t ADD COLUMN b TINYBLOB DEFAULT (repeat('b', i));
|
|
SELECT * FROM t;
|
|
DELETE FROM t where i = 256;
|
|
ALTER TABLE t ADD COLUMN b TINYBLOB;
|
|
SELECT i, length(b) FROM t;
|
|
ALTER TABLE t ALTER COLUMN b SET DEFAULT (repeat('b', i));
|
|
SELECT i, length(b) FROM t;
|
|
INSERT INTO t values(254, DEFAULT);
|
|
INSERT INTO t values(255, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(256, DEFAULT);
|
|
ALTER TABLE t ALTER COLUMN b DROP DEFAULT;
|
|
-- error ER_NO_DEFAULT_FOR_FIELD
|
|
INSERT INTO t(i) values(128);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
--echo #
|
|
--echo # MEDIUMBLOB tests
|
|
--echo #
|
|
|
|
SET GLOBAL max_allowed_packet = 1073741824;
|
|
|
|
CREATE TABLE t(i BIGINT, b MEDIUMBLOB DEFAULT (repeat('b', i)));
|
|
SHOW CREATE TABLE t;
|
|
INSERT INTO t values(16777214, DEFAULT);
|
|
INSERT INTO t values(16777215, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(16777216, DEFAULT);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
CREATE TABLE t(i BIGINT);
|
|
INSERT INTO t values(16777214), (16777215), (16777216);
|
|
-- error ER_DATA_TOO_LONG
|
|
ALTER TABLE t ADD COLUMN b MEDIUMBLOB DEFAULT (repeat('b', i));
|
|
SELECT * FROM t;
|
|
DELETE FROM t where i = 16777216;
|
|
ALTER TABLE t ADD COLUMN b MEDIUMBLOB;
|
|
SELECT i, length(b) FROM t;
|
|
ALTER TABLE t ALTER COLUMN b SET DEFAULT (repeat('b', i));
|
|
SELECT i, length(b) FROM t;
|
|
INSERT INTO t values(16777214, DEFAULT);
|
|
INSERT INTO t values(16777215, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(16777216, DEFAULT);
|
|
ALTER TABLE t ALTER COLUMN b DROP DEFAULT;
|
|
-- error ER_NO_DEFAULT_FOR_FIELD
|
|
INSERT INTO t(i) values(128);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
SET GLOBAL max_allowed_packet=default;
|
|
|
|
--echo #
|
|
--echo # tests with BLOB
|
|
--echo #
|
|
|
|
CREATE TABLE t(i INT, b BLOB DEFAULT (repeat('b', i)));
|
|
SHOW CREATE TABLE t;
|
|
INSERT INTO t values(65534, DEFAULT);
|
|
INSERT INTO t values(65535, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(65536, DEFAULT);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
CREATE TABLE t(i INT);
|
|
INSERT INTO t values(65534), (65535), (65536);
|
|
-- error ER_DATA_TOO_LONG
|
|
ALTER TABLE t ADD COLUMN b BLOB DEFAULT (repeat('b', i));
|
|
SELECT * FROM t;
|
|
DELETE FROM t where i = 65536;
|
|
ALTER TABLE t ADD COLUMN b BLOB;
|
|
SELECT i, length(b) FROM t;
|
|
ALTER TABLE t ALTER COLUMN b SET DEFAULT (repeat('b', i));
|
|
SELECT i, length(b) FROM t;
|
|
INSERT INTO t values(65534, DEFAULT);
|
|
INSERT INTO t values(65535, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(65536, DEFAULT);
|
|
ALTER TABLE t ALTER COLUMN b DROP DEFAULT;
|
|
-- error ER_NO_DEFAULT_FOR_FIELD
|
|
INSERT INTO t(i) values(128);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
--echo #
|
|
--echo # MEDIUMBLOB tests
|
|
--echo # max value for max_allowed_packet is 1073741824 which is < 4294967295
|
|
--echo #
|
|
|
|
CREATE TABLE t(i BIGINT, b LONGBLOB DEFAULT (repeat('b', i)));
|
|
SHOW CREATE TABLE t;
|
|
-- error ER_WARN_ALLOWED_PACKET_OVERFLOWED
|
|
INSERT INTO t values(4294967295, DEFAULT);
|
|
DROP TABLE t;
|
|
|
|
CREATE TABLE t(i INT, b BLOB DEFAULT (repeat('b', i)));
|
|
INSERT INTO t values(65534, DEFAULT);
|
|
INSERT INTO t values(65535, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(65536, DEFAULT);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
CREATE TABLE t(i INT);
|
|
INSERT INTO t values(65534), (65535), (65536);
|
|
-- error ER_DATA_TOO_LONG
|
|
ALTER TABLE t ADD COLUMN b BLOB DEFAULT (repeat('b', i));
|
|
SELECT * FROM t;
|
|
DELETE FROM t where i = 65536;
|
|
ALTER TABLE t ADD COLUMN b BLOB;
|
|
SELECT i, length(b) FROM t;
|
|
ALTER TABLE t ALTER COLUMN b SET DEFAULT (repeat('b', i));
|
|
SELECT i, length(b) FROM t;
|
|
INSERT INTO t values(65534, DEFAULT);
|
|
INSERT INTO t values(65535, DEFAULT);
|
|
-- error ER_DATA_TOO_LONG
|
|
INSERT INTO t values(65536, DEFAULT);
|
|
ALTER TABLE t ALTER COLUMN b DROP DEFAULT;
|
|
-- error ER_NO_DEFAULT_FOR_FIELD
|
|
INSERT INTO t(i) values(128);
|
|
SELECT i, length(b) FROM t;
|
|
DROP TABLE t;
|
|
|
|
|
|
--echo #
|
|
--echo # Test other functions
|
|
--echo #
|
|
CREATE TABLE t(i INT, b VARCHAR(20) DEFAULT (repeat('b', i)));
|
|
INSERT INTO t values(14, DEFAULT);
|
|
INSERT INTO t values(16, DEFAULT);
|
|
SELECT * FROM t;
|
|
DROP TABLE t;
|
|
|
|
CREATE TABLE t1(a INT PRIMARY KEY, b GEOMETRY NOT NULL DEFAULT
|
|
(ST_GEOMFROMTEXT('LINESTRING(0 0,9.299720368548e18 0,0 0,0 0)')));
|
|
INSERT INTO t1 VALUES(1, DEFAULT);
|
|
INSERT INTO t1 VALUES(2, DEFAULT);
|
|
INSERT INTO t1 VALUES(3, (ST_GEOMFROMTEXT('LINESTRING(0 0,9.2234818 0,0 0,0 0)')));
|
|
SELECT a, ST_AsText(b) FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
|
|
--echo #
|
|
--echo # Test with TIMESTAMP with and without ON UPDATE
|
|
--echo #
|
|
CREATE TABLE t1 (a INT, b TIMESTAMP DEFAULT (TIMESTAMPADD(MINUTE, 1,'2003-01-02'))
|
|
ON UPDATE NOW());
|
|
SHOW CREATE TABLE t1;
|
|
INSERT INTO t1(a) VALUES (5);
|
|
SELECT * FROM t1;
|
|
SET timestamp= 1038401397;
|
|
UPDATE t1 SET a = 10 WHERE a = 5;
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
|
|
CREATE TABLE t1 (a INT, b TIMESTAMP NOT NULL DEFAULT (TIMESTAMPADD(MINUTE, 1,'2003-01-02')));
|
|
SHOW CREATE TABLE t1;
|
|
insert into t1(a) values (1);
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a INT, c TIMESTAMP DEFAULT (TIMESTAMPADD(MINUTE, 5,'2003-01-02')));
|
|
SHOW CREATE TABLE t1;
|
|
INSERT INTO t1(a) VALUES (5),(6);
|
|
ALTER TABLE t1 ADD COLUMN d TIMESTAMP DEFAULT (TIMESTAMPADD(MINUTE, 10,'2003-01-03')) ON UPDATE CURRENT_TIMESTAMP;
|
|
SHOW CREATE TABLE t1;
|
|
SELECT * from t1;
|
|
UPDATE t1 SET a = 10 WHERE a = 5;
|
|
SELECT * from t1;
|
|
ALTER TABLE t1 DROP COLUMN d;
|
|
ALTER TABLE t1 ADD COLUMN d TIMESTAMP DEFAULT (TIMESTAMPADD(MINUTE, 15,'2003-01-04'));
|
|
SELECT * from t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Check default expressions together with Generated Columns
|
|
--echo #
|
|
CREATE TABLE t1 (i INT, b char(255) DEFAULT (md5(i)));
|
|
SHOW COLUMNS FROM t1;
|
|
INSERT INTO t1(i) VALUES (1);
|
|
INSERT INTO t1(i, b) VALUES (2, DEFAULT);
|
|
INSERT INTO t1(i, b) VALUES (3, "some string");
|
|
INSERT INTO t1(i, b) VALUES (NULL, DEFAULT);
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (i INT, b char(255) DEFAULT (md5(i)), j INT GENERATED ALWAYS AS (i*2));
|
|
SHOW COLUMNS FROM t1;
|
|
INSERT INTO t1(i) VALUES (1);
|
|
INSERT INTO t1(i, b) VALUES (2, DEFAULT);
|
|
INSERT INTO t1(i, b) VALUES (3, "some string");
|
|
INSERT INTO t1(i, b) VALUES (NULL, DEFAULT);
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Make sure there's no memory leaking after failed ALTER TABLE.
|
|
--echo # (coverage for err tag in open_table_from_share)
|
|
--echo #
|
|
CREATE TABLE t(a int);
|
|
ALTER TABLE t ADD COLUMN b int DEFAULT(
|
|
date_sub(a, INTERVAL A MONTH));
|
|
--error ER_INVALID_GROUP_FUNC_USE
|
|
ALTER TABLE t ADD COLUMN c int DEFAULT (SUM(a));
|
|
DROP TABLE t;
|
|
|
|
--echo # Function that are now allowed.
|
|
--echo # result is not shown as the data is non-deterministic
|
|
|
|
CREATE TABLE t1 (b double DEFAULT (rand()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a varchar(30), b VARCHAR(100) DEFAULT (statement_digest(a)));
|
|
INSERT INTO t1 (a) VALUES ("SELECT 1;");
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a varchar(30), b varchar(100) DEFAULT (statement_digest_text(a)));
|
|
INSERT INTO t1 (a) VALUES ("SELECT 2;");
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (curdate()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (current_date()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (current_date));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (current_time()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (current_time));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (current_timestamp()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (current_timestamp));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (localtime()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (localtime));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime DEFAULT (curtime()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b varchar(20) DEFAULT (localtimestamp()));
|
|
INSERT INTO t1(a) VALUES (now());
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b varchar(20) DEFAULT (localtimestamp));
|
|
INSERT INTO t1(a) VALUES (now());
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b varchar(20) DEFAULT (now()));
|
|
INSERT INTO t1(a) VALUES (now());
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (b varchar(100) DEFAULT (sysdate()));
|
|
INSERT INTO t1() VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b INT DEFAULT (unix_timestamp()));
|
|
INSERT INTO t1() VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b datetime DEFAULT (utc_date()));
|
|
INSERT INTO t1(a) VALUES (now());
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b datetime DEFAULT (utc_time()));
|
|
INSERT INTO t1(a) VALUES (now());
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b datetime DEFAULT (utc_timestamp()));
|
|
INSERT INTO t1(a) VALUES (now());
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a int DEFAULT (connection_id()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a varchar(1024), b varchar(1024) DEFAULT (database()));
|
|
INSERT INTO t1 VALUES ();
|
|
--disable_result_log
|
|
SELECT * FROM t1;
|
|
--enable_result_log
|
|
DROP TABLE t1;
|
|
|
|
--echo # Function that are still not allowed
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(64), b varchar(1024) DEFAULT (load_file(a)));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(1024), b varchar(1024) DEFAULT (found_rows()));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(1024), b varchar(1024) DEFAULT (get_lock(a,10)));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(1024), b varchar(1024) DEFAULT (is_free_lock(a)));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(1024), b varchar(1024) DEFAULT (is_used_lock(a)));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a int DEFAULT (last_insert_id()));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a int DEFAULT (row_count()));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a int, b int DEFAULT (sleep(a)));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(32) DEFAULT (current_user()));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(32) DEFAULT (session_user()));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a varchar(1024), b varchar(1024) DEFAULT (version()));
|
|
|
|
-- error ER_INVALID_DEFAULT
|
|
CREATE TABLE t1 (id char(40) DEFAULT (uuid()) DEFAULT 4);
|
|
-- error ER_INVALID_DEFAULT
|
|
CREATE TABLE t1 (id char(40) DEFAULT 4 DEFAULT (uuid()));
|
|
-- error ER_INVALID_DEFAULT
|
|
CREATE TABLE t1 (id char(40) DEFAULT 4 DEFAULT (uuid()) DEFAULT 10);
|
|
CREATE TABLE t1 (id char(40) DEFAULT 4 DEFAULT 5);
|
|
DROP TABLE t1;
|
|
|
|
DELIMITER |;
|
|
CREATE FUNCTION CURRENT_TIMESTAMPfoo() RETURNS INT BEGIN RETURN 1; END|
|
|
DELIMITER ;|
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a INT DEFAULT (CURRENT_TIMESTAMPfoo()));
|
|
DROP FUNCTION CURRENT_TIMESTAMPfoo;
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a VARCHAR(32) DEFAULT (NAME_CONST('test',1)));
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_ROW_VALUE
|
|
CREATE TABLE t1 (a VARCHAR(32) DEFAULT ((1,1)));
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a VARCHAR(1024), b VARCHAR(1024) DEFAULT (VALUES(a)));
|
|
|
|
--echo #
|
|
--echo # Stored procedures/functions
|
|
--echo #
|
|
DELIMITER //;
|
|
CREATE PROCEDURE p1()
|
|
BEGIN
|
|
SELECT 42;
|
|
END //
|
|
|
|
CREATE FUNCTION f1()
|
|
RETURNS INT
|
|
BEGIN
|
|
RETURN 42;
|
|
END //
|
|
|
|
DELIMITER ;//
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a INT DEFAULT (p1()));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a INT DEFAULT (f1()));
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a INT DEFAULT (1 + f1()));
|
|
|
|
CREATE TABLE t1 (a INT);
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
ALTER TABLE t1 ADD COLUMN b INT DEFAULT (1 + f1());
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
ALTER TABLE t1 ALTER COLUMN a SET DEFAULT (1 + f1());
|
|
DROP TABLE t1;
|
|
|
|
DROP PROCEDURE p1;
|
|
DROP FUNCTION f1;
|
|
|
|
|
|
-- echo #
|
|
-- echo # UDFs
|
|
-- echo #
|
|
|
|
--source include/have_udf.inc
|
|
#
|
|
# To run this test, "sql/udf_example.cc" need to be compiled into
|
|
# udf_example.so and LD_LIBRARY_PATH should be setup to point out where
|
|
# the library are. The regular CMake build system takes care of this
|
|
# automatically.
|
|
#
|
|
|
|
DROP FUNCTION IF EXISTS metaphon;
|
|
--replace_result $UDF_EXAMPLE_LIB UDF_EXAMPLE_LIB
|
|
eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_LIB";
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a VARCHAR(128) DEFAULT (metaphon("testval")));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
CREATE TABLE t1 (a VARCHAR(128) DEFAULT (concat("1", metaphon("testval"))));
|
|
CREATE TABLE t1 (a VARCHAR(100));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
ALTER TABLE t1 ADD COLUMN b VARCHAR(256) DEFAULT (concat("1", metaphon("testval")));
|
|
-- error ER_DEFAULT_VAL_GENERATED_NAMED_FUNCTION_IS_NOT_ALLOWED
|
|
ALTER TABLE t1 ALTER COLUMN a SET DEFAULT (concat("1", metaphon("testval")));
|
|
DROP TABLE t1;
|
|
|
|
DROP FUNCTION metaphon;
|
|
|
|
CREATE TABLE t1 (a INT);
|
|
-- error 1064
|
|
CREATE TABLE t2 (a INT, b INT DEFAULT (select count(*) from t1));
|
|
-- error 1064
|
|
CREATE TABLE t2 (a INT, b INT DEFAULT (select * from t1));
|
|
-- error 1064
|
|
CREATE TABLE t2 (a INT, b INT DEFAULT (select 1));
|
|
DROP TABLE t1;
|
|
|
|
SET @my_var= "something";
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
CREATE TABLE t1 (i INT, b VARCHAR(256) DEFAULT (@my_var));
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
CREATE TABLE t1 (i INT, b VARCHAR(256) DEFAULT (@my_var + 1));
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
CREATE TABLE t1 (i INT, b VARCHAR(256) DEFAULT (@@global.sort_buffer_size));
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
CREATE TABLE t1 (i INT, b VARCHAR(256) DEFAULT (@@session.sort_buffer_size));
|
|
|
|
CREATE TABLE t1(i INT);
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ADD COLUMN b VARCHAR(256) DEFAULT (@@session.sort_buffer_size);
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ADD COLUMN b VARCHAR(256) DEFAULT (@@global.sort_buffer_size);
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ADD COLUMN b VARCHAR(256) DEFAULT (@my_var);
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ADD COLUMN b VARCHAR(256) DEFAULT (@my_var + 1);
|
|
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ALTER COLUMN i SET DEFAULT (@@session.sort_buffer_size);
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ALTER COLUMN i SET DEFAULT (@@global.sort_buffer_size);
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ALTER COLUMN i SET DEFAULT (@my_var);
|
|
-- error ER_DEFAULT_VAL_GENERATED_VARIABLES
|
|
ALTER TABLE t1 ALTER COLUMN i SET DEFAULT (@my_var + 1);
|
|
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t2 (i INT, j DOUBLE DEFAULT (i)) PARTITION BY KEY(j) PARTITIONS 4;
|
|
INSERT INTO t2(i) VALUES (1),(2);
|
|
DROP TABLE t2;
|
|
|
|
--echo #
|
|
--echo # Bug#28075950 WL#9418: INCORRECT ERROR THROWN WHEN DEFAULT() IS USED WITHIN DEFAULT CLAUSE
|
|
--echo #
|
|
--error ER_DEFAULT_AS_VAL_GENERATED
|
|
CREATE TABLE t2 (i INT, j DOUBLE DEFAULT (SQRT(i)),
|
|
k DOUBLE DEFAULT (DEFAULT(j)));
|
|
|
|
|
|
--echo #
|
|
--echo # Bug#28075770 WL#9418: INCORRECT ERROR THROWN WHEN DEFAULT COLUMN IS MADE PRIMARY KEY
|
|
--echo #
|
|
create table t1 ( i int, j int default ( i * i ), primary key(j));
|
|
insert into t1 (i) values (4), (5);
|
|
--error ER_DUP_ENTRY
|
|
insert into t1 values (4, DEFAULT), (5, DEFAULT);
|
|
insert into t1 values (6, DEFAULT), (7, DEFAULT);
|
|
select * from t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Bug#28016783 WL#9418: SIG6 IN MY_EVAL_GCOLUMN_EXPR_HELPER() AT SQL/HANDLER.CC
|
|
--echo #
|
|
CREATE TABLE IF NOT EXISTS D1 (i2 INT DEFAULT 568447044, d1 DOUBLE,
|
|
d2 DOUBLE DEFAULT 0.0, c2 CHAR(255),
|
|
def2 DOUBLE DEFAULT( i2 DIV d2 ),
|
|
v1 INT AS ( d2 = c2 % ASIN( d1 ) > i2 ) VIRTUAL);
|
|
INSERT ignore INTO D1 ( i2, d1, d2, c2, def2)
|
|
VALUES ( 1548385958 , d1 ,128158532 , 0.0 , DEFAULT);
|
|
--error ER_DIVISION_BY_ZERO
|
|
ALTER TABLE D1 ADD UNIQUE KEY uidx ( def2 , v1 , d2 );
|
|
DROP TABLE D1;
|
|
|
|
CREATE TABLE IF NOT EXISTS D1 (def2 DOUBLE DEFAULT( 100 DIV 0 ),
|
|
v1 INT AS (1) VIRTUAL);
|
|
INSERT IGNORE INTO D1 (def2) VALUES (1);
|
|
--error ER_DIVISION_BY_ZERO
|
|
ALTER TABLE D1 ADD UNIQUE KEY uidx ( def2 , v1 );
|
|
DROP TABLE D1;
|
|
|
|
--echo #
|
|
--echo # Bug#28046624 WL#9418: INCORRECT BEHAVIOR OF DEFAULT WITH MODIFY COLUMN
|
|
--echo #
|
|
CREATE TABLE t1 ( i int, j int DEFAULT (i) ) ;
|
|
INSERT INTO t1(i) VALUES (4),(5),(6) ;
|
|
SELECT * FROM t1 ;
|
|
ALTER TABLE t1 MODIFY COLUMN j DOUBLE DEFAULT(i*i);
|
|
SELECT * FROM t1 ;
|
|
INSERT INTO t1(i) VALUES (7);
|
|
SELECT * FROM t1 ;
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t2 ( i int, j int DEFAULT (i) ) ;
|
|
INSERT INTO t2(i) VALUES (4),(5),(6) ;
|
|
SELECT * FROM t2 ;
|
|
ALTER TABLE t2 MODIFY COLUMN j INT DEFAULT(i*i);
|
|
SELECT * FROM t2 ;
|
|
INSERT INTO t2(i) VALUES (7);
|
|
ALTER TABLE t2 MODIFY COLUMN j DOUBLE DEFAULT(i*100);
|
|
INSERT INTO t2(i) VALUES (8);
|
|
SELECT * FROM t2 ;
|
|
DROP TABLE t2;
|
|
|
|
--echo #
|
|
--echo # BUG#28040739 - WL#9418: INCORRECT ERROR THROWN WITH RENAME COLUMN
|
|
--echo #
|
|
CREATE TABLE t1 ( i INT, j INT DEFAULT( i * i) ) ;
|
|
--error ER_DEPENDENT_BY_DEFAULT_GENERATED_VALUE
|
|
ALTER TABLE t1 RENAME COLUMN i to i1 ;
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 ( i INT, j INT DEFAULT (i * i) ) ;
|
|
--error ER_DEPENDENT_BY_DEFAULT_GENERATED_VALUE
|
|
ALTER TABLE t1 CHANGE COLUMN i i1 DOUBLE DEFAULT ( 4 * 4 ) ;
|
|
DROP TABLE t1;
|
|
|
|
create table t1 (i int, j double DEFAULT (i * i) ) ;
|
|
--echo # "Unknown column 'z' in 'default value expression'"
|
|
--error 1054
|
|
alter table t1 add column k double DEFAULT (SQRT(z)) ; #column z does not exist
|
|
DROP TABLE t1;
|
|
|
|
|
|
CREATE TABLE t1 (
|
|
i1 INTEGER,
|
|
i2 INTEGER DEFAULT (i1 + i1)
|
|
);
|
|
INSERT INTO t1 (i1, i2) SELECT 5, 6;
|
|
INSERT INTO t1 (i1) SELECT 5;
|
|
INSERT INTO t1 (i1) SELECT 5 ON DUPLICATE KEY UPDATE i2= 4;
|
|
INSERT INTO t1 (i1) SELECT 5 ON DUPLICATE KEY UPDATE i2= DEFAULT;
|
|
SELECT * FROM t1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (
|
|
i1 INTEGER,
|
|
i2 INTEGER DEFAULT (i1 + RAND())
|
|
);
|
|
INSERT INTO t1 (i1, i2) SELECT 5, 6;
|
|
INSERT INTO t1 (i1) SELECT 5;
|
|
INSERT INTO t1 (i1) SELECT 5 ON DUPLICATE KEY UPDATE i2= 4;
|
|
INSERT INTO t1 (i1) SELECT 5 ON DUPLICATE KEY UPDATE i2= DEFAULT;
|
|
SELECT count(*) FROM t1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a INT UNIQUE DEFAULT (PI() + 3), b INT DEFAULT (-a));
|
|
INSERT INTO t1 (a) VALUES (1), (2);
|
|
--sorted_result
|
|
SELECT * FROM t1;
|
|
INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE a=DEFAULT;
|
|
--sorted_result
|
|
SELECT * FROM t1;
|
|
DELETE FROM t1 WHERE a = 6;
|
|
UPDATE t1 SET a=DEFAULT WHERE a=2;
|
|
--sorted_result
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
CREATE TABLE t1 (a datetime, b varchar(10) DEFAULT (localtimestamp()));
|
|
--error ER_DATA_TOO_LONG
|
|
INSERT INTO t1(a) VALUES (now());
|
|
SELECT * FROM t1;
|
|
DROP TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Bug#29480711 DEBUG ASSERTION IN CREATE TABLE WITH ENUM OR SET
|
|
--echo # COLUMNS HAVING EXPLICIT DEFAULT
|
|
--echo #
|
|
|
|
CREATE TABLE t1 (truth ENUM('y','n') DEFAULT('y'));
|
|
CREATE TABLE t2 (truths SET('y','n') DEFAULT('y'));
|
|
INSERT INTO t1 values (DEFAULT);
|
|
INSERT INTO t1 values ();
|
|
INSERT INTO t2 values (DEFAULT);
|
|
INSERT INTO t2 values ();
|
|
SELECT * from t1;
|
|
SELECT * from t2;
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
|
|
CREATE TABLE t1 (truth ENUM('y','n') DEFAULT('s'));
|
|
CREATE TABLE t2 (truths SET('y','n') DEFAULT('p'));
|
|
|
|
--error 1265
|
|
INSERT INTO t1 values (DEFAULT);
|
|
--error 1265
|
|
INSERT INTO t1 values ();
|
|
--error 1265
|
|
INSERT INTO t2 values (DEFAULT);
|
|
--error 1265
|
|
INSERT INTO t2 values ();
|
|
SELECT * from t1;
|
|
SELECT * from t2;
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
|