mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge branch '10.4' into 10.5
This commit is contained in:
@ -145,6 +145,11 @@ public:
|
||||
struct Lex_ident_sys_st: public LEX_CSTRING
|
||||
{
|
||||
public:
|
||||
static void *operator new(size_t size, MEM_ROOT *mem_root) throw ()
|
||||
{ return alloc_root(mem_root, size); }
|
||||
static void operator delete(void *ptr,size_t size) { TRASH_FREE(ptr, size); }
|
||||
static void operator delete(void *ptr, MEM_ROOT *mem_root) {}
|
||||
|
||||
bool copy_ident_cli(THD *thd, const Lex_ident_cli_st *str);
|
||||
bool copy_keyword(THD *thd, const Lex_ident_cli_st *str);
|
||||
bool copy_sys(THD *thd, const LEX_CSTRING *str);
|
||||
@ -178,6 +183,10 @@ public:
|
||||
LEX_CSTRING tmp= {name, length};
|
||||
set_valid_utf8(&tmp);
|
||||
}
|
||||
Lex_ident_sys(THD *thd, const LEX_CSTRING *str)
|
||||
{
|
||||
set_valid_utf8(str);
|
||||
}
|
||||
Lex_ident_sys & operator=(const Lex_ident_sys_st &name)
|
||||
{
|
||||
Lex_ident_sys_st::operator=(name);
|
||||
@ -2445,6 +2454,15 @@ public:
|
||||
void reduce_digest_token(uint token_left, uint token_right);
|
||||
|
||||
private:
|
||||
|
||||
enum Ident_mode
|
||||
{
|
||||
GENERAL_KEYWORD_OR_FUNC_LPAREN,
|
||||
QUALIFIED_SPECIAL_FUNC_LPAREN
|
||||
};
|
||||
|
||||
int scan_ident_common(THD *thd, Lex_ident_cli_st *str, Ident_mode mode);
|
||||
|
||||
/**
|
||||
Set the echo mode.
|
||||
|
||||
@ -2765,8 +2783,8 @@ private:
|
||||
bool consume_comment(int remaining_recursions_permitted);
|
||||
int lex_one_token(union YYSTYPE *yylval, THD *thd);
|
||||
int find_keyword(Lex_ident_cli_st *str, uint len, bool function) const;
|
||||
int find_keyword_qualified_special_func(Lex_ident_cli_st *str, uint len) const;
|
||||
LEX_CSTRING get_token(uint skip, uint length);
|
||||
int scan_ident_sysvar(THD *thd, Lex_ident_cli_st *str);
|
||||
int scan_ident_start(THD *thd, Lex_ident_cli_st *str);
|
||||
int scan_ident_middle(THD *thd, Lex_ident_cli_st *str,
|
||||
CHARSET_INFO **cs, my_lex_states *);
|
||||
@ -4108,8 +4126,41 @@ public:
|
||||
|
||||
Item *create_item_query_expression(THD *thd, st_select_lex_unit *unit);
|
||||
|
||||
Item *make_item_func_call_generic(THD *thd, Lex_ident_cli_st *db,
|
||||
Lex_ident_cli_st *name, List<Item> *args);
|
||||
static const Schema *
|
||||
find_func_schema_by_name_or_error(const Lex_ident_sys &schema_name,
|
||||
const Lex_ident_sys &func_name);
|
||||
Item *make_item_func_replace(THD *thd,
|
||||
const Lex_ident_cli_st &schema_name,
|
||||
const Lex_ident_cli_st &func_name,
|
||||
Item *org, Item *find, Item *replace);
|
||||
Item *make_item_func_replace(THD *thd,
|
||||
const Lex_ident_cli_st &schema_name,
|
||||
const Lex_ident_cli_st &func_name,
|
||||
List<Item> *args);
|
||||
Item *make_item_func_substr(THD *thd,
|
||||
const Lex_ident_cli_st &schema_name,
|
||||
const Lex_ident_cli_st &func_name,
|
||||
const Lex_substring_spec_st &spec);
|
||||
Item *make_item_func_substr(THD *thd,
|
||||
const Lex_ident_cli_st &schema_name,
|
||||
const Lex_ident_cli_st &func_name,
|
||||
List<Item> *args);
|
||||
Item *make_item_func_trim(THD *thd,
|
||||
const Lex_ident_cli_st &schema_name,
|
||||
const Lex_ident_cli_st &func_name,
|
||||
const Lex_trim_st &spec);
|
||||
Item *make_item_func_trim(THD *thd,
|
||||
const Lex_ident_cli_st &schema_name,
|
||||
const Lex_ident_cli_st &func_name,
|
||||
List<Item> *args);
|
||||
Item *make_item_func_call_generic(THD *thd,
|
||||
const Lex_ident_cli_st *db,
|
||||
const Lex_ident_cli_st *name,
|
||||
List<Item> *args);
|
||||
Item *make_item_func_call_generic(THD *thd,
|
||||
const Lex_ident_sys &db,
|
||||
const Lex_ident_sys &name,
|
||||
List<Item> *args);
|
||||
Item *make_item_func_call_generic(THD *thd,
|
||||
Lex_ident_cli_st *db,
|
||||
Lex_ident_cli_st *pkg,
|
||||
|
Reference in New Issue
Block a user