Commit 2187c60b authored by Narayanan V's avatar Narayanan V

merging with mysql-5.1-bugteam

parents 097262a8 f286444b
...@@ -92,11 +92,17 @@ bool convertMySQLNameToDB2Name(const char* input, ...@@ -92,11 +92,17 @@ bool convertMySQLNameToDB2Name(const char* input,
return (o <= outlen-1); return (o <= outlen-1);
} }
bool isUpperOrQuote(const CHARSET_INFO* cs, const char* s) bool isOrdinaryIdentifier(const char* s)
{ {
while (*s) while (*s)
{ {
if (my_isupper(cs, *s) || (*s == '"')) if (my_isupper(system_charset_info, *s) ||
my_isdigit(system_charset_info, *s) ||
(*s == '_') ||
(*s == '@') ||
(*s == '$') ||
(*s == '#') ||
(*s == '"'))
++s; ++s;
else else
return false; return false;
......
...@@ -2122,7 +2122,7 @@ int ha_ibmdb2i::create(const char *name, TABLE *table_arg, ...@@ -2122,7 +2122,7 @@ int ha_ibmdb2i::create(const char *name, TABLE *table_arg,
if (osVersion.v < 6) if (osVersion.v < 6)
{ {
if (strlen(libName) > if (strlen(libName) >
MAX_DB2_V5R4_LIBNAME_LENGTH + (isUpperOrQuote(system_charset_info, libName) ? 2 : 0)) MAX_DB2_V5R4_LIBNAME_LENGTH + (isOrdinaryIdentifier(libName) ? 2 : 0))
{ {
getErrTxt(DB2I_ERR_TOO_LONG_SCHEMA,libName, MAX_DB2_V5R4_LIBNAME_LENGTH); getErrTxt(DB2I_ERR_TOO_LONG_SCHEMA,libName, MAX_DB2_V5R4_LIBNAME_LENGTH);
DBUG_RETURN(DB2I_ERR_TOO_LONG_SCHEMA); DBUG_RETURN(DB2I_ERR_TOO_LONG_SCHEMA);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment