polardbxengine/mysql-test/suite/xengine_main/r/default_as_expr_debug.result

146 lines
4.5 KiB
Plaintext

SET SESSION debug= '+d,skip_dd_table_access_check';
#
# Tests column with functions set as DEFAULT. Test needs debug mode
# in order to be able to check for the changes in DD.
#
#
# CREATE TABLE - column with func as DEFAULT then test DROP column.
#
CREATE TABLE t1 (i int,a TIMESTAMP DEFAULT CURRENT_TIMESTAMP, b JSON DEFAULT (JSON_OBJECT("key", i)));
SELECT CONCAT(t.name, ".", c.name) as col_name,
c.default_option, c.default_value_utf8
FROM mysql.tables AS t JOIN mysql.columns as c ON t.id = c.table_id
WHERE t.name = 't1' ORDER BY c.id;
col_name default_option default_value_utf8
t1.i NULL NULL
t1.a CURRENT_TIMESTAMP CURRENT_TIMESTAMP
t1.b json_object(_utf8mb4'key',`i`) json_object(_utf8mb4\'key\',`i`)
t1.DB_ROW_ID NULL NULL
t1.DB_TRX_ID NULL NULL
t1.DB_ROLL_PTR NULL NULL
SET timestamp= 1038401397;
INSERT INTO t1(i) VALUES (1);
INSERT INTO t1(i, b) VALUES (2, DEFAULT);
INSERT INTO t1(i, b) VALUES (3, JSON_OBJECT("key", 3));
SELECT * FROM t1;
i a b
1 2002-11-27 15:49:57 {"key": 1}
2 2002-11-27 15:49:57 {"key": 2}
3 2002-11-27 15:49:57 {"key": 3}
ALTER TABLE t1 DROP COLUMN b;
SELECT CONCAT(t.name, ".", c.name) as col_name,
c.default_option, c.default_value_utf8
FROM mysql.tables AS t JOIN mysql.columns as c ON t.id = c.table_id
WHERE t.name = 't1' ORDER BY c.id;
col_name default_option default_value_utf8
t1.i NULL NULL
t1.a CURRENT_TIMESTAMP CURRENT_TIMESTAMP
t1.DB_ROW_ID NULL NULL
t1.DB_TRX_ID NULL NULL
t1.DB_ROLL_PTR NULL NULL
DROP TABLE t1;
#
# Test ALTER table ADD column with DEFAULT
#
CREATE TABLE t1 (i int);
INSERT INTO t1(i) VALUES (1),(2);
ALTER TABLE t1 ADD COLUMN b JSON DEFAULT (JSON_OBJECT("key",i));
SELECT CONCAT(t.name, ".", c.name) as col_name,
c.default_option, c.default_value_utf8
FROM mysql.tables AS t JOIN mysql.columns as c ON t.id = c.table_id
WHERE t.name = 't1' ORDER BY c.id;
col_name default_option default_value_utf8
t1.i NULL NULL
t1.b json_object(_utf8mb4'key',`i`) json_object(_utf8mb4\'key\',`i`)
t1.DB_ROW_ID NULL NULL
t1.DB_TRX_ID NULL NULL
t1.DB_ROLL_PTR NULL NULL
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;
i b
1 {"key": 1}
2 {"key": 2}
3 {"key": 3}
4 {"key": 4}
5 {"key": 5}
DROP TABLE t1;
#
# Test ALTER table ADD column with DEFAULT then ALTER TABLE SET DEFAULT func
#
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));
SELECT CONCAT(t.name, ".", c.name) as col_name,
c.default_option, c.default_value_utf8
FROM mysql.tables AS t JOIN mysql.columns as c ON t.id = c.table_id
WHERE t.name = 't1' ORDER BY c.id;
col_name default_option default_value_utf8
t1.i NULL NULL
t1.b json_object(_utf8mb4'key',`i`) json_object(_utf8mb4\'key\',`i`)
t1.DB_ROW_ID NULL NULL
t1.DB_TRX_ID NULL NULL
t1.DB_ROLL_PTR NULL NULL
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;
i b
1 NULL
2 NULL
3 {"key": 3}
4 {"key": 4}
5 {"key": 5}
DROP TABLE t1;
#
# Test CREATE TABLE with column without default then SET a DEFAULT.
# ALSO TEST DROP DEFAULT
#
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;
SELECT CONCAT(t.name, ".", c.name) as col_name,
c.default_option, c.default_value_utf8
FROM mysql.tables AS t JOIN mysql.columns as c ON t.id = c.table_id
WHERE t.name = 't1' ORDER BY c.id;
col_name default_option default_value_utf8
t1.i NULL NULL
t1.b NULL NULL
t1.DB_ROW_ID NULL NULL
t1.DB_TRX_ID NULL NULL
t1.DB_ROLL_PTR NULL NULL
INSERT INTO t1(i, b) VALUES (6, NULL);
SELECT * FROM t1;
i b
1 NULL
2 NULL
3 {"key": 3}
4 {"key": 4}
5 {"key": 5}
6 NULL
DROP TABLE t1;
#
# Test SHOW COLUMNS for table with NOT NULL DEFAULT (expr).
#
CREATE TABLE t1 (f1 INT NOT NULL DEFAULT (32));
SHOW COLUMNS FROM t1;
Field Type Null Key Default Extra
f1 int(11) NO 32 DEFAULT_GENERATED
SELECT CONCAT(t.name, ".", c.name) as col_name,
c.default_option, c.default_value_utf8
FROM mysql.tables AS t JOIN mysql.columns as c ON t.id = c.table_id
WHERE t.name = 't1' ORDER BY c.id;
col_name default_option default_value_utf8
t1.f1 32 32
t1.DB_ROW_ID NULL NULL
t1.DB_TRX_ID NULL NULL
t1.DB_ROLL_PTR NULL NULL
DROP TABLE t1;
SET SESSION debug= '-d,skip_dd_table_access_check';