From 73f3842bf7cea9b9d56badaf2b400c513cf578cb Mon Sep 17 00:00:00 2001 From: halfspawn Date: Fri, 30 Mar 2018 11:23:28 +0200 Subject: MDEV-15739 sql_mode=ORACLE: Make LPAD and RPAD return NULL instead of empty string --- sql/structs.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'sql/structs.h') diff --git a/sql/structs.h b/sql/structs.h index 01d99517fed..19c2405e75d 100644 --- a/sql/structs.h +++ b/sql/structs.h @@ -759,6 +759,59 @@ struct Lex_string_with_pos_st: public LEX_CSTRING const char *m_pos; }; +class Lex_select_lock +{ +public: + struct + { + uint defined_lock:1; + uint update_lock:1; + uint defined_timeout:1; + }; + ulong timeout; + + + void empty() + { + defined_lock= update_lock= defined_timeout= FALSE; + timeout= 0; + } +}; + +class Lex_select_limit +{ +public: + bool explicit_limit; + Item *select_limit, *offset_limit; + + void empty() + { + explicit_limit= FALSE; + select_limit= offset_limit= NULL; + } +}; + +struct st_order; +class st_select_lex; + +/** + ORDER BY ... LIMIT parameters; +*/ +class Lex_order_limit_lock +{ +public: + SQL_I_List *order_list; /* ORDER clause */ + Lex_select_lock lock; + Lex_select_limit limit; + + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + Lex_order_limit_lock() :order_list(NULL) + {} + + bool set_to(st_select_lex *sel); +}; + class Load_data_param { -- cgit v1.2.1