diff options
author | Mikael Ronström <mikael@dator9> | 2011-04-15 15:46:11 +0200 |
---|---|---|
committer | Mikael Ronström <mikael@dator9> | 2011-04-15 15:46:11 +0200 |
commit | 70ed67e1ccf8b1696e0c11aa6fb1e5fdb28875fb (patch) | |
tree | a3b95707a820bf6af5adbb68c73f6f51dbf5b473 /sql/item_func.h | |
parent | 55557e223f6c89b16cbed2fecd90c26b519b6b92 (diff) | |
parent | 060541c02e6c332db0f08fa3b861cb2de305c71f (diff) | |
download | mariadb-git-70ed67e1ccf8b1696e0c11aa6fb1e5fdb28875fb.tar.gz |
Merge 5.5
Diffstat (limited to 'sql/item_func.h')
-rw-r--r-- | sql/item_func.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/sql/item_func.h b/sql/item_func.h index e60effc352c..9198b092539 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -165,6 +165,11 @@ public: { return agg_item_charsets(c, func_name(), items, nitems, flags, item_sep); } + /* + Aggregate arguments for string result, e.g: CONCAT(a,b) + - convert to @@character_set_connection if all arguments are numbers + - allow DERIVATION_NONE + */ bool agg_arg_charsets_for_string_result(DTCollation &c, Item **items, uint nitems, int item_sep= 1) @@ -172,6 +177,11 @@ public: return agg_item_charsets_for_string_result(c, func_name(), items, nitems, item_sep); } + /* + Aggregate arguments for comparison, e.g: a=b, a LIKE b, a RLIKE b + - don't convert to @@character_set_connection if all arguments are numbers + - don't allow DERIVATION_NONE + */ bool agg_arg_charsets_for_comparison(DTCollation &c, Item **items, uint nitems, int item_sep= 1) @@ -179,6 +189,21 @@ public: return agg_item_charsets_for_comparison(c, func_name(), items, nitems, item_sep); } + /* + Aggregate arguments for string result, when some comparison + is involved internally, e.g: REPLACE(a,b,c) + - convert to @@character_set_connection if all arguments are numbers + - disallow DERIVATION_NONE + */ + bool agg_arg_charsets_for_string_result_with_comparison(DTCollation &c, + Item **items, + uint nitems, + int item_sep= 1) + { + return agg_item_charsets_for_string_result_with_comparison(c, func_name(), + items, nitems, + item_sep); + } bool walk(Item_processor processor, bool walk_subquery, uchar *arg); Item *transform(Item_transformer transformer, uchar *arg); Item* compile(Item_analyzer analyzer, uchar **arg_p, |