diff options
author | halfspawn <j.brauge@qualiac.com> | 2018-03-27 09:08:30 +0200 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2018-03-29 14:27:57 +0400 |
commit | 209375fdd07d9be79784984f8543be73d1f92a9a (patch) | |
tree | 938c1ab12ab0a4daf616c1a0e43c0f51d4b8873a /sql/structs.h | |
parent | 4faf34ad639a28a29ddfc84547108fad058d00ca (diff) | |
download | mariadb-git-209375fdd07d9be79784984f8543be73d1f92a9a.tar.gz |
MDEV-15664 : sql_mode=ORACLE: Make TRIM return NULL instead of empty string
Diffstat (limited to 'sql/structs.h')
-rw-r--r-- | sql/structs.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/sql/structs.h b/sql/structs.h index 9bcbd1ba0df..01d99517fed 100644 --- a/sql/structs.h +++ b/sql/structs.h @@ -723,6 +723,37 @@ public: }; +enum trim_spec { TRIM_LEADING, TRIM_TRAILING, TRIM_BOTH }; + +struct Lex_trim_st +{ + Item *m_remove; + Item *m_source; + trim_spec m_spec; +public: + void set(trim_spec spec, Item *remove, Item *source) + { + m_spec= spec; + m_remove= remove; + m_source= source; + } + void set(trim_spec spec, Item *source) + { + set(spec, NULL, source); + } + Item *make_item_func_trim_std(THD *thd) const; + Item *make_item_func_trim_oracle(THD *thd) const; + Item *make_item_func_trim(THD *thd) const; +}; + + +class Lex_trim: public Lex_trim_st +{ +public: + Lex_trim(trim_spec spec, Item *source) { set(spec, source); } +}; + + struct Lex_string_with_pos_st: public LEX_CSTRING { const char *m_pos; |