MySQL 26.10.0
Source Code Documentation
content_tree.cc File Reference
#include "content_tree.h"
#include "m_string.h"
#include "mysql/components/services/log_builtins.h"
#include "mysql/strings/m_ctype.h"
#include "mysql_com.h"
#include "mysqld_error.h"
#include "option_usage.h"
#include "utils.h"
#include "sql/field.h"
#include "sql/item_json_func.h"
#include "sql/item_sum.h"
#include "sql/mem_root_array.h"
#include "sql/sql_lex.h"

Namespaces

namespace  jdv
 

Functions

static const char * jdv::get_primary_key_column_name (const Table_ref *table_ref)
 Returns primary key name given table. More...
 
static Field * jdv::get_field_for_column (const Table_ref *table_ref, const char *fld_name)
 Get the field instance of a column. More...
 
static bool jdv::set_join_column_index_for_node (Content_tree_node *child_node, Content_tree_node *parent_node, Item_ident *side_ident, bool is_parent)
 Helper function to set join column index for a given node. More...
 
static bool jdv::prepare_join_condition (THD *thd, Query_block *sl, Content_tree_node *node)
 Helper function to prepare join condition for sub-object. More...
 
static std::string jdv::get_projection_path (const Content_tree_node *node, std::string_view key)
 Builds the dotted JSON path for a projection from its content-tree ancestry. More...
 
static Duality_view_tags jdv::resolve_effective_table_tags (Duality_view_tags specified_tags)
 Returns the effective table tags. More...
 
static bool jdv::resolve_effective_column_tags (const Content_tree_node *node, Duality_view_tags table_tags, std::string_view key, bool is_primary_key, Duality_view_tags specified_column_tags, Duality_view_tags *effective_column_tags)
 Resolves the effective tags for a projected column. More...
 
static bool jdv::initialize_table_identity (THD *thd, Query_block *query_block, Content_tree_node *node)
 Sets the base-table identity stored on a content-tree node. More...
 
static Item_func_json_duality_object * jdv::get_duality_object_item (Item *visible_field, Content_tree_node *node)
 Returns the JSON_DUALITY_OBJECT item represented by a visible field and sets the node type. More...
 
static bool jdv::add_child_projection (THD *thd, Content_tree_node *node, String *key, Item *value, Duality_view_tags specified_tags)
 Adds a child object projection to the current node. More...
 
static bool jdv::add_column_projection (Content_tree_node *node, String *key, Item *value, const char *primary_key_column_name, Duality_view_tags specified_column_tags, std::unordered_set< std::string > *column_names_seen)
 Adds a projected base-table column and its effective tags to the current node. More...
 
static bool jdv::add_object_projections (THD *thd, Content_tree_node *node, Item_func_json_duality_object *duality_object, const char *primary_key_column_name)
 Adds the column and child object projections of one JSON_DUALITY_OBJECT to a content-tree node. More...
 
static void jdv::set_dependency_weight (Content_tree_node *node)
 Sets a node's dependency weight. More...
 
static bool jdv::prepare_content_tree_node (THD *thd, Content_tree_node *node)
 Prepares one content-tree node and recursively prepares its children. More...
 
Content_tree_node * jdv::prepare_content_tree (THD *thd, LEX *view_lex)
 Constructs the content tree for given JSON duality view. More...
 
void jdv::destroy_content_tree (Content_tree_node *root)
 Deletes the content tree for given JSON duality view. More...
 

Variables

static thread_local uint jdv::next_id = 0