From 651ead1a9fdb81aca96233a83636170ff24b853d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 19 Aug 2003 16:35:17 +0300 Subject: [PATCH] A fix for a bug with long definition of SET or ENUM. Barkov approved it already --- mysql-test/r/type_set.result | 2 ++ mysql-test/t/type_set.test | 2 ++ sql/sql_parse.cc | 5 +++-- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/type_set.result b/mysql-test/r/type_set.result index b0ea1b69e59..086f55a47a5 100644 --- a/mysql-test/r/type_set.result +++ b/mysql-test/r/type_set.result @@ -13,3 +13,5 @@ t1 CREATE TABLE `t1` ( `a` set('','a','b') NOT NULL default 'b' ) TYPE=MyISAM CHARSET=latin1 drop table t1; +CREATE TABLE t1 ( user varchar(64) NOT NULL default '', path varchar(255) NOT NULL default '', privilege set('select','RESERVED30','RESERVED29','RESERVED28','RESERVED27','RESERVED26', 'RESERVED25','RESERVED24','data.delete','RESERVED22','RESERVED21', 'RESERVED20','data.insert.none','data.insert.approve', 'data.insert.delete','data.insert.move','data.insert.propose', 'data.insert.reject','RESERVED13','RESERVED12','RESERVED11','RESERVED10', 'RESERVED09','data.update','RESERVED07','RESERVED06','RESERVED05', 'RESERVED04','metadata.delete','metadata.put','RESERVED01','RESERVED00') NOT NULL default '', KEY user (user) ) TYPE=MyISAM CHARSET=utf8; +DROP TABLE t1; diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test index 4505e3f747b..6c0f162dc86 100644 --- a/mysql-test/t/type_set.test +++ b/mysql-test/t/type_set.test @@ -12,3 +12,5 @@ drop table t1; create table t1 (a set (' ','a','b ') not null default 'b '); show create table t1; drop table t1; +CREATE TABLE t1 ( user varchar(64) NOT NULL default '', path varchar(255) NOT NULL default '', privilege set('select','RESERVED30','RESERVED29','RESERVED28','RESERVED27','RESERVED26', 'RESERVED25','RESERVED24','data.delete','RESERVED22','RESERVED21', 'RESERVED20','data.insert.none','data.insert.approve', 'data.insert.delete','data.insert.move','data.insert.propose', 'data.insert.reject','RESERVED13','RESERVED12','RESERVED11','RESERVED10', 'RESERVED09','data.update','RESERVED07','RESERVED06','RESERVED05', 'RESERVED04','metadata.delete','metadata.put','RESERVED01','RESERVED00') NOT NULL default '', KEY user (user) ) TYPE=MyISAM CHARSET=utf8; +DROP TABLE t1; diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ed68f487924..2ebe7479173 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -3967,9 +3967,10 @@ bool add_field_to_list(THD *thd, char *field_name, enum_field_types type, } } - if (new_field->length > MAX_FIELD_CHARLENGTH || + if ((new_field->length > MAX_FIELD_CHARLENGTH && type != FIELD_TYPE_SET && + type != FIELD_TYPE_ENUM) || (!new_field->length && !(new_field->flags & BLOB_FLAG) && - type != FIELD_TYPE_STRING && + type != FIELD_TYPE_STRING && type != FIELD_TYPE_VAR_STRING && type != FIELD_TYPE_GEOMETRY)) { net_printf(thd,ER_TOO_BIG_FIELDLENGTH,field_name,