1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

Review fix for BUG#17015: Routine name truncation not an error

This commit is contained in:
pem@mysql.com
2006-03-28 15:06:06 +02:00
parent 05826af926
commit e51adff01c
2 changed files with 10 additions and 5 deletions

View File

@@ -319,6 +319,12 @@ public:
/* convert decimal to longlong with overflow check */
longlong convert_decimal2longlong(const my_decimal *val, bool unsigned_flag,
int *err);
/* The max. number of characters */
inline uint32 Field::char_length() const
{
return field_length / charset()->mbmaxlen;
}
friend bool reopen_table(THD *,struct st_table *,bool);
friend int cre_myisam(my_string name, register TABLE *form, uint options,
ulonglong auto_increment_value);

View File

@@ -509,11 +509,10 @@ db_create_routine(THD *thd, int type, sp_head *sp)
goto done;
}
if ((system_charset_info->cset->numchars(system_charset_info,
sp->m_name.str,
sp->m_name.str+sp->m_name.length) *
table->field[MYSQL_PROC_FIELD_NAME]->charset()->mbmaxlen) >
table->field[MYSQL_PROC_FIELD_NAME]->field_length)
if (system_charset_info->cset->numchars(system_charset_info,
sp->m_name.str,
sp->m_name.str+sp->m_name.length) >
table->field[MYSQL_PROC_FIELD_NAME]->char_length())
{
ret= SP_BAD_IDENTIFIER;
goto done;