diff options
author | Monty <monty@mariadb.org> | 2021-01-24 23:56:43 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2021-05-19 22:54:12 +0200 |
commit | 81d9bed3a492c21fae0d821fd65bae5078a85be3 (patch) | |
tree | b8333fd4ae8589136498b3a431d1e00f886924d2 /sql/sql_string.cc | |
parent | cf93209c70bb0819dd957af1f4e5ca0019a25c4d (diff) | |
download | mariadb-git-81d9bed3a492c21fae0d821fd65bae5078a85be3.tar.gz |
MDEV-20017 Implement TO_CHAR() Oracle compatible function
TO_CHAR(expr, fmt)
- expr: required parameter, data/time/timestamp type expression
- fmt: optional parameter, format string, supports
YYYY/YYY/YY/RRRR/RR/MM/MON/MONTH/MI/DD/DY/HH/HH12/HH24/SS and special
characters. The default value is "YYYY-MM-DD HH24:MI:SS"
In Oracle, TO_CHAR() can also be used to convert numbers to strings, but
this is not supported. This will gave an error in this patch.
Other things:
- If format strings is a constant, it's evaluated only once and if there
is any errors in it, they are given at once and the statement will abort.
Original author: woqutech
Lots of optimizations and cleanups done as part of review
Diffstat (limited to 'sql/sql_string.cc')
-rw-r--r-- | sql/sql_string.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/sql_string.cc b/sql/sql_string.cc index c9117451374..c5f0c74528b 100644 --- a/sql/sql_string.cc +++ b/sql/sql_string.cc @@ -502,16 +502,16 @@ bool String::set_ascii(const char *str, size_t arg_length) /* This is used by mysql.cc */ -bool Binary_string::fill(uint32 max_length,char fill_char) +bool Binary_string::fill(size_t max_length,char fill_char) { if (str_length > max_length) - Ptr[str_length=max_length]=0; + Ptr[str_length= (uint32) max_length]=0; else { if (realloc(max_length)) return TRUE; bfill(Ptr+str_length,max_length-str_length,fill_char); - str_length=max_length; + str_length= (uint32) max_length; } return FALSE; } |