[MDEV-18710] Unexpected ER_EXPRESSION_REFERS_TO_UNINIT_FIELD (Expression for field `DB_ROW_HASH_1` is refering to uninitialized field `DB_ROW_HASH_1`) upon modifying column into a blob Created: 2019-02-24  Updated: 2019-02-28  Resolved: 2019-02-28

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Alter Table
Affects Version/s: 10.4
Fix Version/s: 10.4.4

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-371 Unique indexes for blobs Closed
Relates
relates to MDEV-18708 Server crash in Item_field::register_... Closed
relates to MDEV-18709 Server crash or ASAN heap-buffer-over... Closed

 Description   

Note: The failure became possible after MDEV-371, without it ALTER is rejected due to the missing length in the key definition.
See also MDEV-18708 and MDEV-18709, might be related or have the same root cause. MDEV-18709 has a very similar test case.

--source include/have_innodb.inc
 
CREATE TABLE t1 ( 
  pk INT,
  a CHAR(100),
  b INT,
  c CHAR(100),
  PRIMARY KEY(pk),
  KEY(a(64)),
  KEY(pk,b),
  KEY(c(64))
) ENGINE=InnoDB;
ALTER TABLE t1 MODIFY b TEXT;
 
# Cleanup
DROP TABLE t1;

10.4 fb01193c

mysqltest: At line 13: query 'ALTER TABLE t1 MODIFY b TEXT' failed: 4029: Expression for field `DB_ROW_HASH_1` is refering to uninitialized field `DB_ROW_HASH_1`


Generated at Thu Feb 08 08:46:09 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.