Bug #117725 | Error occurs when modifying the same column twice in a DDL | ||
---|---|---|---|
Submitted: | 17 Mar 6:25 | Modified: | 17 Mar 6:45 |
Reporter: | Huaxiong Song (OCA) | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: DDL | Severity: | S3 (Non-critical) |
Version: | 8.0.41 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[17 Mar 6:25]
Huaxiong Song
[17 Mar 6:45]
MySQL Verification Team
Hello Huaxiong Song, Thank you for the report and test case. regards, Umesh
[2 Jul 9:10]
Li Yirong
CREATE TABLE t1(id INT KEY, c1 INT); # this should be accepted --error ER_BAD_FIELD_ERROR ALTER TABLE t1 MODIFY c1 BIGINT, RENAME c1 TO c2; # works ALTER TABLE t1 CHANGE c1 c2 BIGINT; # this is unacceptable --error ER_BAD_FIELD_ERROR ALTER TABLE t1 MODIFY c1 TINYINT, MODIFY c1 BIGINT; One `Field` may altered by many `Create_field`, this while-loop in `prepare_fields_and_keys` should be enlarged and some `Create_field` should be composed. ``` while ((def = def_it++)) { if (def->change && !my_strcasecmp(system_charset_info, field->field_name, def->change)) break; } if (def) { // Field is changed def->field = field; def->charset = get_sql_field_charset(def, create_info); ...... } ```