diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-12-30 13:03:47 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-02-13 18:12:04 +0100 |
commit | cd4dd2b62dda31a4ea1da99ca6732ecb7ee0d628 (patch) | |
tree | de21f02863d5dfe94b65b92211f3c730216d9068 /mysql-test/r/default.result | |
parent | 588eca31e3c60a6778e59e618717396eb5293ebe (diff) | |
download | mariadb-git-cd4dd2b62dda31a4ea1da99ca6732ecb7ee0d628.tar.gz |
MDEV-10201 Bad results for CREATE TABLE t1 (a INT DEFAULT b, b INT DEFAULT 4)
Optionally do table->update_default_fields() even for INSERT
that supposedly provides values for all column. Because these
"values" might be DEFAULT, which would need table->update_default_fields()
at the end.
Also set Item_default_value::used_tables() from the default expression.
Non-zero used_field() means that mysql_insert() will initialize all
fields to their default values (with restore_record()) even if
all columns are later provided with values. Because default expressions
may refer to other columns and they must be initialized.
Diffstat (limited to 'mysql-test/r/default.result')
-rw-r--r-- | mysql-test/r/default.result | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/mysql-test/r/default.result b/mysql-test/r/default.result index e3088e7ee85..014d4bee6c8 100644 --- a/mysql-test/r/default.result +++ b/mysql-test/r/default.result @@ -1553,7 +1553,7 @@ t1 CREATE TABLE `t1` ( `s` int(11) DEFAULT NULL, `b` timestamp(6) NOT NULL DEFAULT sysdate(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES (DEFAULT, SLEEP(0.1), DEFAULT); +INSERT INTO t1 VALUES (DEFAULT(a), SLEEP(0.1), DEFAULT(b)); SELECT b>a FROM t1; b>a 1 @@ -3316,7 +3316,6 @@ ERROR 42000: Invalid default value for 'c' EXECUTE stmt USING @a; ERROR 42000: Invalid default value for 'c' DEALLOCATE PREPARE stmt; -# end of 10.2 test set sql_mode=ansi_quotes; create table t1 (a int, b int default (a+1)); show create table t1; @@ -3349,3 +3348,18 @@ a b 30 31 drop table t1; set sql_mode=default; +create table t1 (a int default b, b int default 4, t text); +insert into t1 (b, t) values (5, '1 column is omitted'); +insert into t1 values (default, 5, '2 column gets DEFAULT, keyword'); +insert into t1 values (default(a), 5, '3 column gets DEFAULT(a), expression'); +insert into t1 values (default(a)+0, 5, '4 also expression DEFAULT(0)+0'); +insert into t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); +select * from t1 order by t; +a b t +5 5 1 column is omitted +5 5 2 column gets DEFAULT, keyword +4 5 3 column gets DEFAULT(a), expression +4 5 4 also expression DEFAULT(0)+0 +4 5 5 the value of the DEFAULT(a), that is b +drop table t1; +# end of 10.2 test |