summaryrefslogtreecommitdiff
path: root/sql/item_func.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_func.h')
-rw-r--r--sql/item_func.h34
1 files changed, 32 insertions, 2 deletions
diff --git a/sql/item_func.h b/sql/item_func.h
index 1d8a1bd5e22..0aedae73bdc 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -182,7 +182,7 @@ public:
{
return agg_item_charsets(c, func_name(), items, nitems, flags);
}
- bool walk(Item_processor processor, byte *arg);
+ bool walk(Item_processor processor, bool walk_subquery, byte *arg);
Item *transform(Item_transformer transformer, byte *arg);
void traverse_cond(Cond_traverser traverser,
void * arg, traverse_order order);
@@ -247,6 +247,7 @@ public:
void fix_num_length_and_dec();
void find_num_type();
String *str_op(String *str) { DBUG_ASSERT(0); return 0; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -259,6 +260,7 @@ class Item_num_op :public Item_func_numhybrid
void print(String *str) { print_op(str); }
void find_num_type();
String *str_op(String *str) { DBUG_ASSERT(0); return 0; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -309,7 +311,7 @@ public:
{ max_length=args[0]->max_length; unsigned_flag=0; }
void print(String *str);
uint decimal_precision() const { return args[0]->decimal_precision(); }
-
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -343,6 +345,7 @@ public:
void fix_length_and_dec() {};
const char *func_name() const { return "decimal_typecast"; }
void print(String *);
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -411,6 +414,7 @@ public:
const char *func_name() const { return "DIV"; }
void fix_length_and_dec();
void print(String *str) { print_op(str); }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -483,6 +487,7 @@ public:
Item_func_exp(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "exp"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -492,6 +497,7 @@ public:
Item_func_ln(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "ln"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -502,6 +508,7 @@ public:
Item_func_log(Item *a,Item *b) :Item_dec_func(a,b) {}
double val_real();
const char *func_name() const { return "log"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -511,6 +518,7 @@ public:
Item_func_log2(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "log2"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -520,6 +528,7 @@ public:
Item_func_log10(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "log10"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -529,6 +538,7 @@ public:
Item_func_sqrt(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "sqrt"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -538,6 +548,7 @@ public:
Item_func_pow(Item *a,Item *b) :Item_dec_func(a,b) {}
double val_real();
const char *func_name() const { return "pow"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -547,6 +558,7 @@ public:
Item_func_acos(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "acos"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_asin :public Item_dec_func
@@ -555,6 +567,7 @@ public:
Item_func_asin(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "asin"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_atan :public Item_dec_func
@@ -564,6 +577,7 @@ public:
Item_func_atan(Item *a,Item *b) :Item_dec_func(a,b) {}
double val_real();
const char *func_name() const { return "atan"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_cos :public Item_dec_func
@@ -572,6 +586,7 @@ public:
Item_func_cos(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "cos"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_sin :public Item_dec_func
@@ -580,6 +595,7 @@ public:
Item_func_sin(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "sin"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_tan :public Item_dec_func
@@ -588,6 +604,7 @@ public:
Item_func_tan(Item *a) :Item_dec_func(a) {}
double val_real();
const char *func_name() const { return "tan"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_integer :public Item_int_func
@@ -664,6 +681,7 @@ public:
Item_func_sign(Item *a) :Item_int_func(a) {}
const char *func_name() const { return "sign"; }
longlong val_int();
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -678,6 +696,7 @@ public:
const char *func_name() const { return name; }
void fix_length_and_dec()
{ decimals= NOT_FIXED_DEC; max_length= float_length(decimals); }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -695,6 +714,7 @@ public:
my_decimal *val_decimal(my_decimal *);
void fix_length_and_dec();
enum Item_result result_type () const { return cmp_type; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_min :public Item_func_min_max
@@ -720,6 +740,7 @@ public:
longlong val_int();
const char *func_name() const { return "length"; }
void fix_length_and_dec() { max_length=10; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_bit_length :public Item_func_length
@@ -739,6 +760,7 @@ public:
longlong val_int();
const char *func_name() const { return "char_length"; }
void fix_length_and_dec() { max_length=10; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_coercibility :public Item_int_func
@@ -749,6 +771,7 @@ public:
const char *func_name() const { return "coercibility"; }
void fix_length_and_dec() { max_length=10; maybe_null= 0; }
table_map not_null_tables() const { return 0; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_locate :public Item_int_func
@@ -762,6 +785,7 @@ public:
longlong val_int();
void fix_length_and_dec();
void print(String *str);
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
@@ -786,6 +810,7 @@ public:
longlong val_int();
const char *func_name() const { return "ascii"; }
void fix_length_and_dec() { max_length=3; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_ord :public Item_int_func
@@ -795,6 +820,7 @@ public:
Item_func_ord(Item *a) :Item_int_func(a) {}
longlong val_int();
const char *func_name() const { return "ord"; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_find_in_set :public Item_int_func
@@ -808,6 +834,7 @@ public:
longlong val_int();
const char *func_name() const { return "find_in_set"; }
void fix_length_and_dec();
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
/* Base class for all bit functions: '~', '|', '^', '&', '>>', '<<' */
@@ -819,6 +846,7 @@ public:
Item_func_bit(Item *a) :Item_int_func(a) {}
void fix_length_and_dec() { unsigned_flag= 1; }
void print(String *str) { print_op(str); }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_bit_or :public Item_func_bit
@@ -844,6 +872,7 @@ public:
longlong val_int();
const char *func_name() const { return "bit_count"; }
void fix_length_and_dec() { max_length=2; }
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};
class Item_func_shift_left :public Item_func_bit
@@ -1280,6 +1309,7 @@ public:
longlong val_int();
const char *func_name() const { return "inet_aton"; }
void fix_length_and_dec() { decimals = 0; max_length = 21; maybe_null=1;}
+ bool check_partition_func_processor(byte *bool_arg) { return 0;}
};