diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index bbd4a60c5b1..848b84e2b8c 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -598,6 +598,11 @@ DESC t2; Field Type Null Key Default Extra f2 varchar(171) YES NULL DROP TABLE t1,t2; +CREATE TABLE t12913 (f1 ENUM ('a','b')) AS SELECT 'a' AS f1; +SELECT * FROM t12913; +f1 +a +DROP TABLE t12913; create database mysqltest; use mysqltest; drop database mysqltest; diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index 162db3d0c0a..f7b9002faa0 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -504,6 +504,13 @@ CREATE TABLE t2 AS SELECT LEFT(f1,171) AS f2 FROM t1 UNION SELECT LEFT(f1,171) A DESC t2; DROP TABLE t1,t2; +# +# Bug#12913 Simple SQL can crash server or connection +# +CREATE TABLE t12913 (f1 ENUM ('a','b')) AS SELECT 'a' AS f1; +SELECT * FROM t12913; +DROP TABLE t12913; + # # Bug#11028: Crash on create table like # diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 849619ae0f8..b1a24543a6b 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -886,6 +886,7 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, if (!(sql_field->flags & NOT_NULL_FLAG)) null_fields--; sql_field->flags= dup_field->flags; + sql_field->interval= dup_field->interval; it2.remove(); // Remove first (create) definition select_field_pos--; break;