80 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:662
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:126
const Key_column_info & parent_join_column_info() const
Definition: content_tree.h:346
Type type() const
Definition: content_tree.h:262
std::size_t primary_key_column_index() const
Definition: content_tree.h:310
Content_tree_node(MEM_ROOT *mem_root)
Definition: content_tree.h:185
Content_tree_node()=default
bool is_root_object() const
Definition: content_tree.h:266
bool allows_delete() const
Definition: content_tree.h:248
Content_tree_node * parent() const
Definition: content_tree.h:274
Mem_root_array< Content_tree_node * > m_children
List of children nodes.
Definition: content_tree.h:161
bool read_only() const
Definition: content_tree.h:254
Duality_view_tags m_table_tags
Table level DV tags.
Definition: content_tree.h:152
std::map< std::string_view, std::size_t > * key_column_map()
Definition: content_tree.h:297
void set_qualified_table_name(const char *qname)
Definition: content_tree.h:217
void set_table_ref(Table_ref *table_ref)
Definition: content_tree.h:211
Type m_type
Node type.
Definition: content_tree.h:155
bool allows_check() const
Definition: content_tree.h:250
const std::string & quoted_qualified_table_name() const
Definition: content_tree.h:230
uint m_id
Node id. Displayed in I_S.
Definition: content_tree.h:137
bool is_nested_child() const
Definition: content_tree.h:268
void set_table_tags(Duality_view_tags table_tags)
Definition: content_tree.h:237
void set_name(const char *name)
Definition: content_tree.h:191
void set_parent_join_column_index(std::size_t join_col_idx)
Definition: content_tree.h:339
const std::string_view & name() const
Definition: content_tree.h:192
std::string_view m_qualified_table_name
Qualified table name.
Definition: content_tree.h:146
const Mem_root_array< Content_tree_node * > & children() const
Definition: content_tree.h:280
~Content_tree_node()=default
Type
Types of object.
Definition: content_tree.h:129
const Key_column_info & join_column_info() const
Definition: content_tree.h:332
bool allows_update() const
Definition: content_tree.h:246
void set_join_column_index(std::size_t join_col_idx, bool is_parent)
Definition: content_tree.h:354
Mem_root_array< Key_column_info > m_key_column_info_list
List of base columns with tags and key information.
Definition: content_tree.h:164
Duality_view_tags table_tags() const
Definition: content_tree.h:243
void set_join_column_index(std::size_t join_col_idx)
Definition: content_tree.h:323
uint id() const
Definition: content_tree.h:198
std::size_t m_primary_key_column
Index of primary key column in m_key_column_info_list.
Definition: content_tree.h:170
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:167
const Mem_root_array< Key_column_info > & key_column_info_list() const
Definition: content_tree.h:290
std::string m_quoted_qualified_table_name
Qualified table name with quotes.
Definition: content_tree.h:149
std::size_t join_column_index() const
Definition: content_tree.h:326
bool has_join_condition() const
Definition: content_tree.h:328
void set_quoted_qualified_table_name(std::string &&qname)
Definition: content_tree.h:227
void set_parent(Content_tree_node *parent)
Definition: content_tree.h:273
std::size_t m_join_column_index
Index of join condition column in m_key_column_info_list.
Definition: content_tree.h:173
void set_primary_key_column_index(std::size_t key_col_idx)
Definition: content_tree.h:307
int m_dependency_weight
Dependency weight to order DML operations.
Definition: content_tree.h:179
Mem_root_array< Key_column_info > * key_column_info_list()
Definition: content_tree.h:287
const std::map< std::string_view, std::size_t > & key_column_map() const
Definition: content_tree.h:300
const std::string_view & qualified_table_name() const
Definition: content_tree.h:220
std::size_t parent_join_column_index() const
Definition: content_tree.h:342
Content_tree_node * m_parent
Parent node.
Definition: content_tree.h:158
const Table_ref * m_table_ref
Table_ref instance of query table.
Definition: content_tree.h:143
void set_query_expression(Query_expression *qe)
Definition: content_tree.h:203
void set_type(Type type)
Definition: content_tree.h:261
int dependency_weight() const
Definition: content_tree.h:369
const Query_expression * m_query_expression
Object query expression.
Definition: content_tree.h:140
void set_id(uint id)
Definition: content_tree.h:197
const Table_ref * table_ref() const
Definition: content_tree.h:212
void set_dependency_weight(int weight)
Definition: content_tree.h:368
std::string_view m_name
Name of this node.
Definition: content_tree.h:134
bool allows_insert() const
Definition: content_tree.h:244
const Query_expression * query_expression() const
Definition: content_tree.h:204
Mem_root_array< Content_tree_node * > * children()
Definition: content_tree.h:279
const Key_column_info & primary_key_column() const
Definition: content_tree.h:316
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:176
bool is_singleton_child() const
Definition: content_tree.h:267
const char * type_string() const
Definition: content_tree.h:263
std::size_t join_column_index(bool is_parent) const
Definition: content_tree.h:361
bool is_primary_key_column_projected()
Definition: content_tree.h:312
Class to represent each key and column information from JSON duality object.
Definition: content_tree.h:52
Duality_view_tags m_column_tags
Column tags.
Definition: content_tree.h:64
bool allows_delete() const
Definition: content_tree.h:102
const Field * m_field
Field instance of a column.
Definition: content_tree.h:61
bool is_generated_column() const
Definition: content_tree.cc:48
bool allows_check() const
Definition: content_tree.h:105
bool m_is_column_projected
Flag to indicate column is projected or not.
Definition: content_tree.h:67
const std::string_view & key() const
Definition: content_tree.h:80
void set_column_tags(Duality_view_tags tags)
Definition: content_tree.h:93
bool read_only() const
Definition: content_tree.h:109
std::string_view m_key
Key in JDV definition.
Definition: content_tree.h:58
void set_column_name(const char *column_name)
Definition: content_tree.h:73
void set_key(const char *key)
Definition: content_tree.h:79
void set_column_projected(bool col_projected)
Definition: content_tree.h:116
bool is_column_projected() const
Definition: content_tree.h:119
bool allows_update() const
Definition: content_tree.h:99
bool allows_insert() const
Definition: content_tree.h:96
enum_field_types field_type() const
Definition: content_tree.cc:43
Duality_view_tags column_tags() const
Definition: content_tree.h:94
const std::string_view & column_name() const
Definition: content_tree.h:74
std::string_view m_column_name
Base column name.
Definition: content_tree.h:55
void set_field(Field *fld)
Definition: content_tree.h:85
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:56
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:530
Duality_view_tags
Definition: content_tree.h:33
@ DVT_NOINSERT
Definition: content_tree.h:38
@ DVT_NOUPDATE
Definition: content_tree.h:39
@ DVT_UPDATE
Definition: content_tree.h:36
@ DVT_INSERT
Definition: content_tree.h:35
@ DVT_CHECK
Definition: content_tree.h:41
@ DVT_NOCHECK
Definition: content_tree.h:42
@ DVT_DELETE
Definition: content_tree.h:37
@ DVT_INVALID
Definition: content_tree.h:34
@ DVT_NODELETE
Definition: content_tree.h:40
constexpr std::size_t VOID_COLUMN_INDEX
Definition: content_tree.h:45
void destroy_content_tree(Content_tree_node *root)
Deletes the content tree for given JSON duality view.
Definition: content_tree.cc:547
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:4021
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83