Commit 374252c6 authored by unknown's avatar unknown

merge (new code fixed the ALTER TABLE problem)

parent 35f9ecc1
...@@ -5853,33 +5853,10 @@ void create_field::create_length_to_internal_length(void) ...@@ -5853,33 +5853,10 @@ void create_field::create_length_to_internal_length(void)
pack_length= calc_pack_length(sql_type == FIELD_TYPE_VAR_STRING ? pack_length= calc_pack_length(sql_type == FIELD_TYPE_VAR_STRING ?
FIELD_TYPE_STRING : sql_type, length); FIELD_TYPE_STRING : sql_type, length);
break; break;
#ifdef CORRECT_CODE_BUT_CANT_YET_BE_USED
case MYSQL_TYPE_ENUM: case MYSQL_TYPE_ENUM:
case MYSQL_TYPE_SET: case MYSQL_TYPE_SET:
length*= charset->mbmaxlen; length*= charset->mbmaxlen;
break; break;
#else
/*
Because of a bug in MySQL 4.1 where length was extended for ENUM and SET
fields for every ALTER TABLE, we have to recalculate lengths here
*/
case MYSQL_TYPE_ENUM:
{
uint32 tot_length, max_length;
calculate_interval_lengths(current_thd, interval,
&max_length, &tot_length);
length= max_length * charset->mbmaxlen;
break;
}
case MYSQL_TYPE_SET:
{
uint32 tot_length, max_length;
calculate_interval_lengths(current_thd, interval,
&max_length, &tot_length);
length= (tot_length + (interval->count - 1)) * charset->mbmaxlen;
break;
}
#endif
default: default:
/* do nothing */ /* do nothing */
break; break;
......
...@@ -370,8 +370,6 @@ int insert_precheck(THD *thd, TABLE_LIST *tables); ...@@ -370,8 +370,6 @@ int insert_precheck(THD *thd, TABLE_LIST *tables);
int create_table_precheck(THD *thd, TABLE_LIST *tables, int create_table_precheck(THD *thd, TABLE_LIST *tables,
TABLE_LIST *create_table); TABLE_LIST *create_table);
Item *negate_expression(THD *thd, Item *expr); Item *negate_expression(THD *thd, Item *expr);
void calculate_interval_lengths(THD *thd, TYPELIB *interval,
uint *max_length, uint *tot_length);
#include "sql_class.h" #include "sql_class.h"
#include "opt_range.h" #include "opt_range.h"
......
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