24#ifndef PARSE_TREE_NODES_INCLUDED
25#define PARSE_TREE_NODES_INCLUDED
44#include "mysqld_error.h"
148template <
class Node_type,
class Parse_context_type>
150 Parse_context_type *pc) {
151 for (Node_type *i : nodes)
152 if (i->contextualize(pc))
return true;
179 "Parse tree display of this statement");
244 for (
ORDER *o =
value.first; o !=
nullptr; o = o->next) {
596 using std::has_single_bit;
597 static_assert(has_single_bit(
unsigned{
JTT_INNER}),
"not a single bit");
598 static_assert(has_single_bit(
unsigned{
JTT_STRAIGHT}),
"not a single bit");
599 static_assert(has_single_bit(
unsigned{
JTT_NATURAL}),
"not a single bit");
600 static_assert(has_single_bit(
unsigned{
JTT_LEFT}),
"not a single bit");
601 static_assert(has_single_bit(
unsigned{
JTT_RIGHT}),
"not a single bit");
656 :
super(pos, tab1_node_arg, join_pos_arg,
type, tab2_node_arg),
671 :
super(pos, tab1_node_arg, join_pos_arg,
type, tab2_node_arg),
700 Item *sample_percentage)
715 obj->
add_alias(
"olap_options", create_dom_ptr<Json_string>(
"ROLLUP"));
813 if (locking_clause->contextualize(pc))
return true;
910 const POS &expr_pos,
Item *opt_expr)
990 const POS &error_pos)
1029 const char *password_arg,
1030 const char *current_password_arg,
1031 bool retain_current,
1032 bool random_password,
1033 const POS &expr_pos_arg)
1057 const POS &pos,
LEX_USER *user_arg,
const char *password_arg,
1058 const char *current_password_arg,
bool retain_current,
bool random_pass,
1059 const POS &expr_pos_arg)
1095 const POS &value_pos_arg)
1112 const POS &tail_pos)
1113 :
super(pos, delimiter_pos_arg, tail, tail_pos),
head(head_arg) {}
1132 const POS &head_pos_arg,
1158 :
super(pos,
"transaction_read_only", (
int32)is_read_only) {}
1166 :
super(pos,
"transaction_isolation", (
int32)level) {}
1197 const POS &end_pos_arg)
1242 const POS &characteristics_pos_arg)
1351 :
super(pos, name_arg) {}
1480 m_from(from_to->m_borders[0]),
1481 m_to(from_to->m_borders[1]),
1513 Item *opt_where_clause_arg,
PT_group *opt_group_clause_arg,
1515 Item *opt_qualify_clause_arg,
bool implicit_from_clause)
1528 assert(implicit_from_clause ?
from_clause.empty() :
true);
1535 Item *opt_where_clause_arg)
1622 :
super(pos, options_arg, item_list_arg, from_clause_arg,
nullptr) {}
1667 if (
m_limit !=
nullptr && !order && limit) {
1690 if (
m_order !=
nullptr &&
m_limit ==
nullptr && !order && limit) {
1784 qe(query_expression),
1799 bool is_rhs_in_parentheses =
false)
1892 bool has_trailing_locking_clauses =
false)
1934 PT_hint_list *opt_hints_arg,
int opt_delete_options_arg,
1938 PT_order *opt_order_clause_arg,
Item *opt_delete_limit_clause_arg)
1955 PT_hint_list *opt_hints_arg,
int opt_delete_options_arg,
1958 Item *opt_where_clause_arg)
2005 bool opt_ignore_arg,
2008 Item *opt_where_clause_arg,
PT_order *opt_order_clause_arg,
2009 Item *opt_limit_clause_arg)
2171 for (
size_t pos = 0; pos <
length; pos++) {
2172 if (std::iscntrl(
str[pos]))
return true;
2359template <
typename Option_type, Option_type KEY_CREATE_INFO::*Property>
2576 uint64_t Property_flag>
2594#define TYPE_AND_REF(x) decltype(x), &x
2782template <u
long Property_flag, table_options_t Yes, table_options_t No>
2971 assert(
value !=
nullptr);
2986 assert(
value !=
nullptr);
3584 m_all(opt_engine.str ==
nullptr) {}
3680 Item *opt_where =
nullptr)
3706 sql_cmd(opt_for_user, opt_using_users) {
3707 assert(opt_using_users ==
nullptr || opt_for_user !=
nullptr);
4073 const char *opt_place)
4098 if (column->contextualize(pc))
return true;
4130 const char *opt_place)
4139 const char *opt_place)