78 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:120
const Key_column_info & parent_join_column_info() const
Definition: content_tree.h:336
Type type() const
Definition: content_tree.h:252
std::size_t primary_key_column_index() const
Definition: content_tree.h:300
Content_tree_node(MEM_ROOT *mem_root)
Definition: content_tree.h:179
Content_tree_node()=default
bool is_root_object() const
Definition: content_tree.h:256
bool allows_delete() const
Definition: content_tree.h:242
Content_tree_node * parent() const
Definition: content_tree.h:264
Mem_root_array< Content_tree_node * > m_children
List of children nodes.
Definition: content_tree.h:155
bool read_only() const
Definition: content_tree.h:244
Duality_view_tags m_table_tags
Table level DV tags.
Definition: content_tree.h:146
std::map< std::string_view, std::size_t > * key_column_map()
Definition: content_tree.h:287
void set_qualified_table_name(const char *qname)
Definition: content_tree.h:211
void set_table_ref(Table_ref *table_ref)
Definition: content_tree.h:205
Type m_type
Node type.
Definition: content_tree.h:149
const std::string & quoted_qualified_table_name() const
Definition: content_tree.h:224
uint m_id
Node id. Displayed in I_S.
Definition: content_tree.h:131
bool is_nested_child() const
Definition: content_tree.h:258
void set_table_tags(Duality_view_tags table_tags)
Definition: content_tree.h:231
void set_name(const char *name)
Definition: content_tree.h:185
void set_parent_join_column_index(std::size_t join_col_idx)
Definition: content_tree.h:329
const std::string_view & name() const
Definition: content_tree.h:186
std::string_view m_qualified_table_name
Qualified table name.
Definition: content_tree.h:140
const Mem_root_array< Content_tree_node * > & children() const
Definition: content_tree.h:270
~Content_tree_node()=default
Type
Types of object.
Definition: content_tree.h:123
const Key_column_info & join_column_info() const
Definition: content_tree.h:322
bool allows_update() const
Definition: content_tree.h:240
void set_join_column_index(std::size_t join_col_idx, bool is_parent)
Definition: content_tree.h:344
Mem_root_array< Key_column_info > m_key_column_info_list
List of base columns with tags and key information.
Definition: content_tree.h:158
Duality_view_tags table_tags() const
Definition: content_tree.h:237
void set_join_column_index(std::size_t join_col_idx)
Definition: content_tree.h:313
uint id() const
Definition: content_tree.h:192
std::size_t m_primary_key_column
Index of primary key column in m_key_column_info_list.
Definition: content_tree.h:164
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:161
const Mem_root_array< Key_column_info > & key_column_info_list() const
Definition: content_tree.h:280
std::string m_quoted_qualified_table_name
Qualified table name with quotes.
Definition: content_tree.h:143
std::size_t join_column_index() const
Definition: content_tree.h:316
bool has_join_condition() const
Definition: content_tree.h:318
void set_quoted_qualified_table_name(std::string &&qname)
Definition: content_tree.h:221
void set_parent(Content_tree_node *parent)
Definition: content_tree.h:263
std::size_t m_join_column_index
Index of join condition column in m_key_column_info_list.
Definition: content_tree.h:167
void set_primary_key_column_index(std::size_t key_col_idx)
Definition: content_tree.h:297
int m_dependency_weight
Dependency weight to order DML operations.
Definition: content_tree.h:173
Mem_root_array< Key_column_info > * key_column_info_list()
Definition: content_tree.h:277
const std::map< std::string_view, std::size_t > & key_column_map() const
Definition: content_tree.h:290
const std::string_view & qualified_table_name() const
Definition: content_tree.h:214
std::size_t parent_join_column_index() const
Definition: content_tree.h:332
Content_tree_node * m_parent
Parent node.
Definition: content_tree.h:152
const Table_ref * m_table_ref
Table_ref instance of query table.
Definition: content_tree.h:137
void set_query_expression(Query_expression *qe)
Definition: content_tree.h:197
void set_type(Type type)
Definition: content_tree.h:251
int dependency_weight() const
Definition: content_tree.h:359
const Query_expression * m_query_expression
Object query expression.
Definition: content_tree.h:134
void set_id(uint id)
Definition: content_tree.h:191
const Table_ref * table_ref() const
Definition: content_tree.h:206
void set_dependency_weight(int weight)
Definition: content_tree.h:358
std::string_view m_name
Name of this node.
Definition: content_tree.h:128
bool allows_insert() const
Definition: content_tree.h:238
const Query_expression * query_expression() const
Definition: content_tree.h:198
Mem_root_array< Content_tree_node * > * children()
Definition: content_tree.h:269
const Key_column_info & primary_key_column() const
Definition: content_tree.h:306
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:170
bool is_singleton_child() const
Definition: content_tree.h:257
const char * type_string() const
Definition: content_tree.h:253
std::size_t join_column_index(bool is_parent) const
Definition: content_tree.h:351
bool is_primary_key_column_projected()
Definition: content_tree.h:302
Class to represent each key and column information from JSON duality object.
Definition: content_tree.h:50
Duality_view_tags m_column_tags
Column tags.
Definition: content_tree.h:62
bool allows_delete() const
Definition: content_tree.h:100
const Field * m_field
Field instance of a column.
Definition: content_tree.h:59
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:65
const std::string_view & key() const
Definition: content_tree.h:78
void set_column_tags(Duality_view_tags tags)
Definition: content_tree.h:91
bool read_only() const
Definition: content_tree.h:103
std::string_view m_key
Key in JDV definition.
Definition: content_tree.h:56
void set_column_name(const char *column_name)
Definition: content_tree.h:71
void set_key(const char *key)
Definition: content_tree.h:77
void set_column_projected(bool col_projected)
Definition: content_tree.h:110
bool is_column_projected() const
Definition: content_tree.h:113
bool allows_update() const
Definition: content_tree.h:97
bool allows_insert() const
Definition: content_tree.h:94
enum_field_types field_type() const
Definition: content_tree.cc:43
Duality_view_tags column_tags() const
Definition: content_tree.h:92
const std::string_view & column_name() const
Definition: content_tree.h:72
std::string_view m_column_name
Base column name.
Definition: content_tree.h:53
void set_field(Field *fld)
Definition: content_tree.h:83
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_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_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:43
void destroy_content_tree(Content_tree_node *root)
Deletes the content tree for given JSON duality view.
Definition: content_tree.cc:389
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:3995
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:83