summaryrefslogtreecommitdiff
path: root/sql/sql_partition.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r--sql/sql_partition.cc27
1 files changed, 13 insertions, 14 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index a4f3be9ee41..a10a04ba9f9 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -849,7 +849,7 @@ static bool fix_fields_part_func(THD *thd, TABLE_LIST *tables,
context->table_list= tables;
context->first_name_resolution_table= tables;
context->last_name_resolution_table= NULL;
- func_expr->walk(&Item::change_context_processor, (byte*) context);
+ func_expr->walk(&Item::change_context_processor, 0, (byte*) context);
save_where= thd->where;
thd->where= "partition function";
error= func_expr->fix_fields(thd, (Item**)0);
@@ -1335,7 +1335,7 @@ bool fix_partition_func(THD *thd, const char* name, TABLE *table,
char db_name_string[FN_REFLEN];
char* db_name;
partition_info *part_info= table->part_info;
- ulong save_set_query_id= thd->set_query_id;
+ enum_mark_columns save_mark_used_columns= thd->mark_used_columns;
Item *thd_free_list= thd->free_list;
DBUG_ENTER("fix_partition_func");
@@ -1343,8 +1343,8 @@ bool fix_partition_func(THD *thd, const char* name, TABLE *table,
{
DBUG_RETURN(FALSE);
}
- thd->set_query_id= 0;
- DBUG_PRINT("info", ("thd->set_query_id: %d", thd->set_query_id));
+ thd->mark_used_columns= MARK_COLUMNS_NONE;
+ DBUG_PRINT("info", ("thd->mark_used_columns: %d", thd->mark_used_columns));
/*
Set-up the TABLE_LIST object to be a list with a single table
Set the object to zero to create NULL pointers and set alias
@@ -1484,8 +1484,8 @@ bool fix_partition_func(THD *thd, const char* name, TABLE *table,
result= FALSE;
end:
thd->free_list= thd_free_list;
- thd->set_query_id= save_set_query_id;
- DBUG_PRINT("info", ("thd->set_query_id: %d", thd->set_query_id));
+ thd->mark_used_columns= save_mark_used_columns;
+ DBUG_PRINT("info", ("thd->mark_used_columns: %d", thd->mark_used_columns));
DBUG_RETURN(result);
}
@@ -1992,10 +1992,7 @@ bool partition_key_modified(TABLE *table, List<Item> &fields)
in function
*/
-static
-inline
-longlong
-part_val_int(Item *item_expr)
+static inline longlong part_val_int(Item *item_expr)
{
longlong value= item_expr->val_int();
if (item_expr->null_value)
@@ -2412,10 +2409,12 @@ int get_partition_id_range(partition_info *part_info,
loc_part_id++;
*part_id= (uint32)loc_part_id;
*func_value= part_func_value;
- if (loc_part_id == max_partition)
- if (range_array[loc_part_id] != LONGLONG_MAX)
- if (part_func_value >= range_array[loc_part_id])
- DBUG_RETURN(HA_ERR_NO_PARTITION_FOUND);
+ if (loc_part_id == max_partition &&
+ range_array[loc_part_id] != LONGLONG_MAX &&
+ part_func_value >= range_array[loc_part_id])
+ DBUG_RETURN(HA_ERR_NO_PARTITION_FOUND);
+
+ DBUG_PRINT("exit",("partition: %d", *part_id));
DBUG_RETURN(0);
}