diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index d096de4ff6ad8d2fc72a649741ee78e0bf43d9d2..6fe148adce593afb1327dbe0654cd77150d55199 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -586,6 +586,11 @@ DESC t2; Field Type Null Key Default Extra f2 varchar(86) 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 f8570b4d37312bf9132c4a207d48a4a0716fa99d..7799200eaa067943e350579eae4a4180ae0d973d 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -494,6 +494,13 @@ AS f2 FROM t1; 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 294c59af90f1ce5b98590fa9d9effbe9af33fd4b..71cbc0be1e3ffec21a4f0d23e3a93304a13b8db7 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -678,6 +678,7 @@ 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;