24#ifndef PARSE_TREE_NODES_INCLUDED
25#define PARSE_TREE_NODES_INCLUDED
45#include "mysqld_error.h"
150template <
class Node_type,
class Parse_context_type>
152 Parse_context_type *pc) {
153 for (Node_type *i : nodes)
154 if (i->contextualize(pc))
return true;
181 "Parse tree display of this statement");
246 for (
ORDER *o =
value.first; o !=
nullptr; o = o->next) {
598 using std::has_single_bit;
599 static_assert(has_single_bit(
unsigned{
JTT_INNER}),
"not a single bit");
600 static_assert(has_single_bit(
unsigned{
JTT_STRAIGHT}),
"not a single bit");
601 static_assert(has_single_bit(
unsigned{
JTT_NATURAL}),
"not a single bit");
602 static_assert(has_single_bit(
unsigned{
JTT_LEFT}),
"not a single bit");
603 static_assert(has_single_bit(
unsigned{
JTT_RIGHT}),
"not a single bit");
658 :
super(pos, tab1_node_arg, join_pos_arg,
type, tab2_node_arg),
673 :
super(pos, tab1_node_arg, join_pos_arg,
type, tab2_node_arg),
702 Item *sample_percentage)
717 obj->
add_alias(
"olap_options", create_dom_ptr<Json_string>(
"ROLLUP"));
815 if (locking_clause->contextualize(pc))
return true;
912 const POS &expr_pos,
Item *opt_expr)
992 const POS &error_pos)
1031 const char *password_arg,
1032 const char *current_password_arg,
1033 bool retain_current,
1034 bool random_password,
1035 const POS &expr_pos_arg)
1059 const POS &pos,
LEX_USER *user_arg,
const char *password_arg,
1060 const char *current_password_arg,
bool retain_current,
bool random_pass,
1061 const POS &expr_pos_arg)
1097 const POS &value_pos_arg)
1114 const POS &tail_pos)
1115 :
super(pos, delimiter_pos_arg, tail, tail_pos),
head(head_arg) {}
1134 const POS &head_pos_arg,
1160 :
super(pos,
"transaction_read_only", (
int32)is_read_only) {}
1168 :
super(pos,
"transaction_isolation", (
int32)level) {}
1199 const POS &end_pos_arg)
1244 const POS &characteristics_pos_arg)
1380 :
super(pos, name_arg) {}
1509 m_from(from_to->m_borders[0]),
1510 m_to(from_to->m_borders[1]),
1542 Item *opt_where_clause_arg,
PT_group *opt_group_clause_arg,
1544 Item *opt_qualify_clause_arg,
bool implicit_from_clause)
1557 assert(implicit_from_clause ?
from_clause.empty() :
true);
1564 Item *opt_where_clause_arg)
1651 :
super(pos, options_arg, item_list_arg, from_clause_arg,
nullptr) {}
1696 if (
m_limit !=
nullptr && !order && limit) {
1719 if (
m_order !=
nullptr &&
m_limit ==
nullptr && !order && limit) {
1813 qe(query_expression),
1828 bool is_rhs_in_parentheses =
false)
1843 return body.has_into_clause();
1848 m_list[
m_list.elements - 1]->has_trailing_into_clause();
1931 bool has_trailing_locking_clauses =
false)
1973 PT_hint_list *opt_hints_arg,
int opt_delete_options_arg,
1977 PT_order *opt_order_clause_arg,
Item *opt_delete_limit_clause_arg)
1994 PT_hint_list *opt_hints_arg,
int opt_delete_options_arg,
1997 Item *opt_where_clause_arg)
2044 bool opt_ignore_arg,
2047 Item *opt_where_clause_arg,
PT_order *opt_order_clause_arg,
2048 Item *opt_limit_clause_arg)
2210 for (
size_t pos = 0; pos <
length; pos++) {
2211 if (std::iscntrl(
str[pos]))
return true;
2398template <
typename Option_type, Option_type KEY_CREATE_INFO::*Property>
2615 uint64_t Property_flag>
2633#define TYPE_AND_REF(x) decltype(x), &x
2821template <u
long Property_flag, table_options_t Yes, table_options_t No>
3010 assert(
value !=
nullptr);
3025 assert(
value !=
nullptr);
3638 m_all(opt_engine.str ==
nullptr) {}
3734 Item *opt_where =
nullptr)
3760 sql_cmd(opt_for_user, opt_using_users) {
3761 assert(opt_using_users ==
nullptr || opt_for_user !=
nullptr);
4127 const char *opt_place)
4152 if (column->contextualize(pc))
return true;
4184 const char *opt_place)
4193 const char *opt_place)