76 const std::string_view &
key()
const {
return m_key; }
A typesafe replacement for DYNAMIC_ARRAY.
Definition: mem_root_array.h:432
This class represents a query expression (one query block or several query blocks combined with UNION...
Definition: sql_lex.h:643
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Definition: content_tree.h:118
const Key_column_info & parent_join_column_info() const
Definition: content_tree.h:334
Type type() const
Definition: content_tree.h:250
std::size_t primary_key_column_index() const
Definition: content_tree.h:298
void set_tmp_table_id(uint id)
Definition: content_tree.h:189
Content_tree_node(MEM_ROOT *mem_root)
Definition: content_tree.h:177
Content_tree_node()=default
bool is_root_object() const
Definition: content_tree.h:254
bool allows_delete() const
Definition: content_tree.h:239
Content_tree_node * parent() const
Definition: content_tree.h:262
Mem_root_array< Content_tree_node * > m_children
List of children nodes.
Definition: content_tree.h:153
bool read_only() const
Definition: content_tree.h:242
Duality_view_tags m_table_tags
Table level DV tags.
Definition: content_tree.h:144
std::map< std::string_view, std::size_t > * key_column_map()
Definition: content_tree.h:285
void set_qualified_table_name(const char *qname)
Definition: content_tree.h:209
void set_table_ref(Table_ref *table_ref)
Definition: content_tree.h:203
Type m_type
Node type.
Definition: content_tree.h:147
const std::string & quoted_qualified_table_name() const
Definition: content_tree.h:222
bool is_nested_child() const
Definition: content_tree.h:256
void set_table_tags(Duality_view_tags table_tags)
Definition: content_tree.h:229
void set_name(const char *name)
Definition: content_tree.h:183
void set_parent_join_column_index(std::size_t join_col_idx)
Definition: content_tree.h:327
const std::string_view & name() const
Definition: content_tree.h:184
std::string_view m_qualified_table_name
Qualified table name.
Definition: content_tree.h:138
const Mem_root_array< Content_tree_node * > & children() const
Definition: content_tree.h:268
~Content_tree_node()=default
Type
Types of object.
Definition: content_tree.h:121
const Key_column_info & join_column_info() const
Definition: content_tree.h:320
bool allows_update() const
Definition: content_tree.h:236
void set_join_column_index(std::size_t join_col_idx, bool is_parent)
Definition: content_tree.h:342
Mem_root_array< Key_column_info > m_key_column_info_list
List of base columns with tags and key information.
Definition: content_tree.h:156
Duality_view_tags table_tags() const
Definition: content_tree.h:232
void set_join_column_index(std::size_t join_col_idx)
Definition: content_tree.h:311
std::size_t m_primary_key_column
Index of primary key column in m_key_column_info_list.
Definition: content_tree.h:162
std::map< std::string_view, std::size_t > m_key_column_map
Key to base columns in m_key_column_info_list map.
Definition: content_tree.h:159
uint tmp_table_id() const
Definition: content_tree.h:190
const Mem_root_array< Key_column_info > & key_column_info_list() const
Definition: content_tree.h:278
std::string m_quoted_qualified_table_name
Qualified table name with quotes.
Definition: content_tree.h:141
std::size_t join_column_index() const
Definition: content_tree.h:314
bool has_join_condition() const
Definition: content_tree.h:316
void set_quoted_qualified_table_name(std::string &&qname)
Definition: content_tree.h:219
void set_parent(Content_tree_node *parent)
Definition: content_tree.h:261
std::size_t m_join_column_index
Index of join condition column in m_key_column_info_list.
Definition: content_tree.h:165
void set_primary_key_column_index(std::size_t key_col_idx)
Definition: content_tree.h:295
int m_dependency_weight
Dependency weight to order DML operations.
Definition: content_tree.h:171
Mem_root_array< Key_column_info > * key_column_info_list()
Definition: content_tree.h:275
const std::map< std::string_view, std::size_t > & key_column_map() const
Definition: content_tree.h:288
const std::string_view & qualified_table_name() const
Definition: content_tree.h:212
std::size_t parent_join_column_index() const
Definition: content_tree.h:330
Content_tree_node * m_parent
Parent node.
Definition: content_tree.h:150
const Table_ref * m_table_ref
Table_ref instance of query table.
Definition: content_tree.h:135
void set_query_expression(Query_expression *qe)
Definition: content_tree.h:195
void set_type(Type type)
Definition: content_tree.h:249
int dependency_weight() const
Definition: content_tree.h:357
const Query_expression * m_query_expression
Object query expression.
Definition: content_tree.h:132
const Table_ref * table_ref() const
Definition: content_tree.h:204
void set_dependency_weight(int weight)
Definition: content_tree.h:356
std::string_view m_name
Name of this node.
Definition: content_tree.h:126
bool allows_insert() const
Definition: content_tree.h:233
const Query_expression * query_expression() const
Definition: content_tree.h:196
uint m_tmp_table_id
Temporary id created for I_S.
Definition: content_tree.h:129
Mem_root_array< Content_tree_node * > * children()
Definition: content_tree.h:267
const Key_column_info & primary_key_column() const
Definition: content_tree.h:304
std::size_t m_parent_join_column_index
Index of join condition column in Parent's m_key_column_info_list.
Definition: content_tree.h:168
bool is_singleton_child() const
Definition: content_tree.h:255
const char * type_string() const
Definition: content_tree.h:251
std::size_t join_column_index(bool is_parent) const
Definition: content_tree.h:349
bool is_primary_key_column_projected()
Definition: content_tree.h:300
Class to represent each key and column information from JSON duality object.
Definition: content_tree.h:48
Duality_view_tags m_column_tags
Column tags.
Definition: content_tree.h:60
bool allows_delete() const
Definition: content_tree.h:98
const Field * m_field
Field instance of a column.
Definition: content_tree.h:57
bool is_generated_column() const
Definition: content_tree.cc:48
bool m_is_column_projected
Flag to indicate column is projected or not.
Definition: content_tree.h:63
const std::string_view & key() const
Definition: content_tree.h:76
void set_column_tags(Duality_view_tags tags)
Definition: content_tree.h:89
bool read_only() const
Definition: content_tree.h:101
std::string_view m_key
Key in JDV definition.
Definition: content_tree.h:54
void set_column_name(const char *column_name)
Definition: content_tree.h:69
void set_key(const char *key)
Definition: content_tree.h:75
void set_column_projected(bool col_projected)
Definition: content_tree.h:108
bool is_column_projected() const
Definition: content_tree.h:111
bool allows_update() const
Definition: content_tree.h:95
bool allows_insert() const
Definition: content_tree.h:92
enum_field_types field_type() const
Definition: content_tree.cc:43
Duality_view_tags column_tags() const
Definition: content_tree.h:90
const std::string_view & column_name() const
Definition: content_tree.h:70
std::string_view m_column_name
Base column name.
Definition: content_tree.h:51
void set_field(Field *fld)
Definition: content_tree.h:81
const Field * field() const
Definition: content_tree.cc:41
static MEM_ROOT mem_root
Definition: client_plugin.cc:114
enum_field_types
Column types for MySQL Note: Keep include/mysql/components/services/bits/stored_program_bits....
Definition: field_types.h:55
Definition: content_tree.cc:39
Content_tree_node * prepare_content_tree(THD *thd, LEX *view_lex)
Constructs the content tree for given JSON duality view.
Definition: content_tree.cc:372
Duality_view_tags
Definition: content_tree.h:33
@ DVT_NOUPDATE
Definition: content_tree.h:38
@ DVT_UPDATE
Definition: content_tree.h:36
@ DVT_INSERT
Definition: content_tree.h:35
@ DVT_DELETE
Definition: content_tree.h:37
@ DVT_INVALID
Definition: content_tree.h:34
constexpr std::size_t VOID_COLUMN_INDEX
Definition: content_tree.h:41
void destroy_content_tree(Content_tree_node *root)
Deletes the content tree for given JSON duality view.
Definition: content_tree.cc:388
ValueType max(X &&first)
Definition: gtid.h:103
required uint64 weight
Definition: replication_asynchronous_connection_failover.proto:35
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3994
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83
unsigned long id[MAX_DEAD]
Definition: xcom_base.cc:510