Adding NOT NULL column with DEFAULT value may cause default values to update when selecting or have the wrong charset ---------------------------------------------------------------------------------------------------------------------
Key: CORE-6358 URL: http://tracker.firebirdsql.org/browse/CORE-6358 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 3.0.6, 4.0 Beta 2 Reporter: Adriano dos Santos Fernandes Since v2 when adding NOT NULL columns with default value we store the default value in metadata and read that value when reading pre-existent data. Before that, default values were evaluated at query time producing different values. For example we have now: recreate table t (n integer); insert into t values (1); insert into t values (2); commit; alter table t add t1 timestamp default current_timestamp not null; select * from t; N T1 ============ ========================= 1 2020-07-07 12:56:04.7740 2 2020-07-07 12:56:04.7740 -- wait and see the same values select * from t; N T1 ============ ========================= 1 2020-07-07 12:56:04.7740 2 2020-07-07 12:56:04.7740 But this is not done correctly when the default expression is not from the same type of the field. For example: recreate table t (n integer); insert into t values (1); insert into t values (2); commit; alter table t add t1 timestamp default 'now' not null; select * from t; N T1 ============ ========================= 1 2020-07-07 12:56:04.7740 2 2020-07-07 12:56:04.7740 -- wait and the values are changed select * from t; N T1 ============ ========================= 1 2020-07-07 12:58:08.1254 2 2020-07-07 12:58:08.1254 Another problem is with charset. With a connection using UTF8 charset: recreate table t2 (n integer); insert into t2 values (1); insert into t2 values (2); commit; alter table t2 add c1 varchar(10) character set win1252 default '123áé456' not null; insert into t2 (n) values (3); select * from t2; N C1 ============ ========== 1 123áé456 2 123áé456 3 123áé456 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel