Test case:
recreate table t (col1 int, col2 blob);
insert into t values (1, '1');
insert into t values (2, '2');
insert into t values (3, '3');
commit;
select * from t;
COL1 COL2
============ =================
1 84:0
2 84:1
3 84:2
update t set col1 = -col1;
select * from t;
COL1 COL2
============ =================
-1 84:0
-2 84:1
-3 84:2
-- So far so good: COL1 is negated, COL2 has the same BLOB IDs
rollback;
alter table t add col3 date;
select * from t;
COL1 COL2 COL3
============ ================= ===========
1 84:0 <null>
2 84:1 <null>
3 84:2 <null>
update t set col1 = -col1;
select * from t;
COL1 COL2 COL3
============ ================= ===========
-1 84:3 <null>
-2 84:4 <null>
-3 84:5 <null>
-- BUG: COL2 has different BLOB IDs, i.e. the whole blobs were copied rather than just their IDs
rollback;
This is a regression introduced while fixing
CORE-5600. v3.0.3 and later versions are affected.