Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5
Description
Execution of
CREATE TABLE t1 (a INT AS (a)) ENGINE=InnoDB; |
expectedly fails, in 10.2+ with
ERROR 4029 (01000): Expression for field `a` is refering to uninitialized field `a`
|
and no table is created.
However, an error is written to the error log
2019-01-17 2:01:21 140595305703168 [ERROR] mysqld: Incorrect information in file: './test/t1.frm'
|
The error is unnecessary alarming, as it suggests database corruption.
I don't suppose there should be any error in the log at all, since no harm is done, it's just a regular failed attempt to create a table. But if we do want to write in in the error log on whatever reason, let it be the same ER_EXPRESSION_REFERS_TO_UNINIT_FIELD as returned to the user.
Attachments
Issue Links
- is duplicated by
-
MDEV-26262 frm is reported corrupted after ER_EXPRESSION_REFERS_TO_UNINIT_FIELD
-
- Closed
-
- relates to
-
MDEV-15962 Column-level CHECK constraint on timestamp column causes ER_EXPRESSION_REFERS_TO_UNINIT_FIELD
-
- Open
-
Also, test cases from MDEV-15962 produce such an error, and so does this one with ALTER (note the temporary table in the message):
# Cleanup
mysqltest: At line 2: query 'ALTER TABLE t1 ADD b INT CHECK (a IS NOT NULL) FIRST' failed: 4029: Expression for field `b` is referring to uninitialized field `a`
2019-07-26 13:18:09 140255070500608 [ERROR] mysqld: Incorrect information in file: './test/#sql-5538_4.frm'