summaryrefslogtreecommitdiff
path: root/sql/item_strfunc.h
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-06-03 16:57:14 +0500
committerunknown <bar@bar.mysql.r18.ru>2003-06-03 16:57:14 +0500
commit8ae717d3198b527a08e0d954fc8bf240c285fc30 (patch)
treea9ff56fcd43b6ae42c5e6bc919ae0d7daab72fd9 /sql/item_strfunc.h
parent27d95e9687e840c98235a89ff7aea880bb905f44 (diff)
downloadmariadb-git-8ae717d3198b527a08e0d954fc8bf240c285fc30.tar.gz
LTRIM, RTRIM and TRIM now honors coercibility
LTRIM, RTRIM and TRIM now work fine with ucs2
Diffstat (limited to 'sql/item_strfunc.h')
-rw-r--r--sql/item_strfunc.h30
1 files changed, 16 insertions, 14 deletions
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h
index 65aad3a3fff..a70c9b39255 100644
--- a/sql/item_strfunc.h
+++ b/sql/item_strfunc.h
@@ -220,35 +220,37 @@ public:
};
-class Item_func_ltrim :public Item_str_func
+class Item_func_trim :public Item_str_func
{
+protected:
String tmp_value;
+ String remove;
public:
- Item_func_ltrim(Item *a,Item *b) :Item_str_func(a,b) {}
+ Item_func_trim(Item *a,Item *b) :Item_str_func(a,b) {}
+ Item_func_trim(Item *a) :Item_str_func(a) {}
String *val_str(String *);
- void fix_length_and_dec() { max_length= args[0]->max_length; }
- const char *func_name() const { return "ltrim"; }
+ void fix_length_and_dec();
+ const char *func_name() const { return "trim"; }
};
-class Item_func_rtrim :public Item_str_func
+class Item_func_ltrim :public Item_func_trim
{
- String tmp_value;
public:
- Item_func_rtrim(Item *a,Item *b) :Item_str_func(a,b) {}
+ Item_func_ltrim(Item *a,Item *b) :Item_func_trim(a,b) {}
+ Item_func_ltrim(Item *a) :Item_func_trim(a) {}
String *val_str(String *);
- void fix_length_and_dec() { max_length= args[0]->max_length; }
- const char *func_name() const { return "rtrim"; }
+ const char *func_name() const { return "ltrim"; }
};
-class Item_func_trim :public Item_str_func
+
+class Item_func_rtrim :public Item_func_trim
{
- String tmp_value;
public:
- Item_func_trim(Item *a,Item *b) :Item_str_func(a,b) {}
+ Item_func_rtrim(Item *a,Item *b) :Item_func_trim(a,b) {}
+ Item_func_rtrim(Item *a) :Item_func_trim(a) {}
String *val_str(String *);
- void fix_length_and_dec() { max_length= args[0]->max_length; }
- const char *func_name() const { return "trim"; }
+ const char *func_name() const { return "rtrim"; }
};