1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Merge xiphis.org:/home/antony/work2/mysql-5.1

into  xiphis.org:/home/antony/work3/mysql-5.1-plugable-2
This commit is contained in:
acurtis@xiphis.org
2005-12-21 10:26:39 -08:00
54 changed files with 1507 additions and 702 deletions

View File

@ -654,7 +654,7 @@ static bool set_up_default_partitions(partition_info *part_info,
partition_element *part_elem= new partition_element();
if (likely(part_elem != 0))
{
part_elem->engine_type= DB_TYPE_UNKNOWN;
part_elem->engine_type= NULL;
part_elem->partition_name= default_name;
default_name+=MAX_PART_NAME_SIZE;
part_info->partitions.push_back(part_elem);
@ -726,7 +726,7 @@ static bool set_up_default_subpartitions(partition_info *part_info,
partition_element *subpart_elem= new partition_element();
if (likely(subpart_elem != 0))
{
subpart_elem->engine_type= DB_TYPE_UNKNOWN;
subpart_elem->engine_type= NULL;
subpart_elem->partition_name= name_ptr;
name_ptr+= MAX_PART_NAME_SIZE;
part_elem->subpartitions.push_back(subpart_elem);
@ -786,7 +786,7 @@ bool set_up_defaults_for_partitioning(partition_info *part_info,
FALSE Ok, no mixed engines
*/
static bool check_engine_mix(u_char *engine_array, uint no_parts)
static bool check_engine_mix(handlerton **engine_array, uint no_parts)
{
/*
Current check verifies only that all handlers are the same.
@ -827,10 +827,10 @@ static bool check_engine_mix(u_char *engine_array, uint no_parts)
This code is used early in the CREATE TABLE and ALTER TABLE process.
*/
bool check_partition_info(partition_info *part_info,enum db_type eng_type,
bool check_partition_info(partition_info *part_info,handlerton *eng_type,
handler *file, ulonglong max_rows)
{
u_char *engine_array= NULL;
handlerton **engine_array= NULL;
uint part_count= 0, i, no_parts, tot_partitions;
bool result= TRUE;
List_iterator<partition_element> part_it(part_info->partitions);
@ -858,7 +858,8 @@ bool check_partition_info(partition_info *part_info,enum db_type eng_type,
my_error(ER_SAME_NAME_PARTITION, MYF(0));
goto end;
}
engine_array= (u_char*)my_malloc(tot_partitions, MYF(MY_WME));
engine_array= (handlerton**)my_malloc(tot_partitions * sizeof(handlerton *),
MYF(MY_WME));
if (unlikely(!engine_array))
goto end;
i= 0;
@ -868,10 +869,10 @@ bool check_partition_info(partition_info *part_info,enum db_type eng_type,
partition_element *part_elem= part_it++;
if (!is_sub_partitioned(part_info))
{
if (part_elem->engine_type == DB_TYPE_UNKNOWN)
if (part_elem->engine_type == NULL)
part_elem->engine_type= eng_type;
DBUG_PRINT("info", ("engine = %u",(uint)part_elem->engine_type));
engine_array[part_count++]= (u_char)part_elem->engine_type;
DBUG_PRINT("info", ("engine = %s", part_elem->engine_type->name));
engine_array[part_count++]= part_elem->engine_type;
}
else
{
@ -880,10 +881,10 @@ bool check_partition_info(partition_info *part_info,enum db_type eng_type,
do
{
part_elem= sub_it++;
if (part_elem->engine_type == DB_TYPE_UNKNOWN)
if (part_elem->engine_type == NULL)
part_elem->engine_type= eng_type;
DBUG_PRINT("info", ("engine = %u",(uint)part_elem->engine_type));
engine_array[part_count++]= (u_char)part_elem->engine_type;
DBUG_PRINT("info", ("engine = %s", part_elem->engine_type->name));
engine_array[part_count++]= part_elem->engine_type;
} while (++j < no_subparts);
}
} while (++i < part_info->no_parts);
@ -1950,9 +1951,9 @@ static int add_keyword_int(File fptr, const char *keyword, longlong num)
return err + add_space(fptr);
}
static int add_engine(File fptr, enum db_type engine_type)
static int add_engine(File fptr, handlerton *engine_type)
{
const char *engine_str= ha_get_storage_engine(engine_type);
const char *engine_str= engine_type->name;
int err= add_string(fptr, "ENGINE = ");
return err + add_string(fptr, engine_str);
return err;
@ -3147,7 +3148,7 @@ void get_partition_set(const TABLE *table, byte *buf, const uint index,
bool mysql_unpack_partition(THD *thd, const uchar *part_buf,
uint part_info_len, TABLE* table,
enum db_type default_db_type)
handlerton *default_db_type)
{
Item *thd_free_list= thd->free_list;
bool result= TRUE;
@ -3184,7 +3185,7 @@ bool mysql_unpack_partition(THD *thd, const uchar *part_buf,
part_info= lex.part_info;
table->part_info= part_info;
table->file->set_part_info(part_info);
if (part_info->default_engine_type == DB_TYPE_UNKNOWN)
if (part_info->default_engine_type == NULL)
part_info->default_engine_type= default_db_type;
else
{