mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
merge (new code fixed the ALTER TABLE problem)
This commit is contained in:
parent
35f9ecc1ce
commit
374252c686
2 changed files with 0 additions and 25 deletions
23
sql/field.cc
23
sql/field.cc
|
@ -5853,33 +5853,10 @@ void create_field::create_length_to_internal_length(void)
|
|||
pack_length= calc_pack_length(sql_type == FIELD_TYPE_VAR_STRING ?
|
||||
FIELD_TYPE_STRING : sql_type, length);
|
||||
break;
|
||||
#ifdef CORRECT_CODE_BUT_CANT_YET_BE_USED
|
||||
case MYSQL_TYPE_ENUM:
|
||||
case MYSQL_TYPE_SET:
|
||||
length*= charset->mbmaxlen;
|
||||
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:
|
||||
/* do nothing */
|
||||
break;
|
||||
|
|
|
@ -370,8 +370,6 @@ int insert_precheck(THD *thd, TABLE_LIST *tables);
|
|||
int create_table_precheck(THD *thd, TABLE_LIST *tables,
|
||||
TABLE_LIST *create_table);
|
||||
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 "opt_range.h"
|
||||
|
||||
|
|
Loading…
Reference in a new issue