Commit cd548943 authored by MySQL Build Team's avatar MySQL Build Team

Backport into build-201102032246-5.1.52sp1

> ------------------------------------------------------------
> revno: 3527.3.2
> revision-id: mattias.jonsson@oracle.com-20101222144517-cbv3l5jlbd0mq5s8
> parent: mattias.jonsson@oracle.com-20101222095036-2lpx0gqu4i45jtkz
> committer: Mattias Jonsson <mattias.jonsson@oracle.com>
> branch nick: b54483-51-bt_2
> timestamp: Wed 2010-12-22 15:45:17 +0100
> message:
>   Bug#54483: valgrind errors when making warnings for
>   multiline inserts into partition
>   Bug#57071: EXTRACT(WEEK from date_col) cannot be
>   allowed as partitioning function
>   
>   Renamed function according to reviewers comments.
parent bdc90542
......@@ -970,7 +970,7 @@ public:
for date functions. Also used by partitioning code to reject
timezone-dependent expressions in a (sub)partitioning function.
*/
virtual bool is_arguments_valid_processor(uchar *bool_arg)
virtual bool check_valid_arguments_processor(uchar *bool_arg)
{
return FALSE;
}
......
......@@ -248,7 +248,7 @@ public:
representation of a TIMESTAMP argument verbatim, and thus does not depend on
the timezone.
*/
virtual bool is_arguments_valid_processor(uchar *bool_arg)
virtual bool check_valid_arguments_processor(uchar *bool_arg)
{
return has_timestamp_args();
}
......
......@@ -70,7 +70,7 @@ public:
enum_monotonicity_info get_monotonicity_info() const;
longlong val_int_endpoint(bool left_endp, bool *incl_endp);
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -90,7 +90,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -119,7 +119,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -152,7 +152,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -172,7 +172,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_time_args();
}
......@@ -192,7 +192,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_time_args();
}
......@@ -212,7 +212,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -232,7 +232,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_time_args();
}
......@@ -266,7 +266,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -288,7 +288,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -322,7 +322,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_date_args();
}
......@@ -355,7 +355,7 @@ public:
(and thus may not be used as a partitioning function)
when its argument is NOT of the TIMESTAMP type.
*/
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_timestamp_args();
}
......@@ -379,7 +379,7 @@ public:
max_length=10*MY_CHARSET_BIN_MB_MAXLEN;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_time_args();
}
......@@ -636,7 +636,7 @@ public:
const char *func_name() const { return "from_days"; }
bool get_date(MYSQL_TIME *res, uint fuzzy_date);
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return has_date_args() || has_time_args();
}
......@@ -766,7 +766,7 @@ class Item_extract :public Item_int_func
bool eq(const Item *item, bool binary_cmp) const;
virtual void print(String *str, enum_query_type query_type);
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
switch (int_type) {
case INTERVAL_YEAR:
......@@ -1052,7 +1052,7 @@ public:
maybe_null=1;
}
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
bool is_arguments_valid_processor(uchar *int_arg)
bool check_valid_arguments_processor(uchar *int_arg)
{
return !has_time_args();
}
......
......@@ -1014,12 +1014,13 @@ static bool fix_fields_part_func(THD *thd, Item* func_expr, TABLE *table,
}
/*
We don't allow creating partitions with timezone-dependent expressions as
a (sub)partitioning function, but we want to allow such expressions when
opening existing tables for easier maintenance. This exception should be
deprecated at some point in future so that we always throw an error.
We don't allow creating partitions with expressions with non matching
arguments as a (sub)partitioning function,
but we want to allow such expressions when opening existing tables for
easier maintenance. This exception should be deprecated at some point
in future so that we always throw an error.
*/
if (func_expr->walk(&Item::is_arguments_valid_processor,
if (func_expr->walk(&Item::check_valid_arguments_processor,
0, NULL))
{
if (is_create_table_ind)
......
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