MySQL 9.5.0
Source Code Documentation
sp_instr_inline.cc File Reference
#include "sql/sp_instr_inline.h"
#include "scope_guard.h"
#include "sql/item.h"
#include "sql/mem_root_array.h"
#include "sql/parse_tree_nodes.h"
#include "sql/sp.h"
#include "sql/sp_instr.h"
#include "sql/sp_pcontext.h"
#include "sql/sql_base.h"
#include "sql/sql_class.h"
#include "sql/sql_derived.h"
#include "sql/sql_lex.h"
#include "sql/sql_optimizer.h"
#include "sql/sql_parse.h"
#include "sql/sql_resolver.h"
#include "sql/window.h"

Classes

class  sp_inl::sp_inline_instr
 Base class for instructions within stored programs (currently limited to stored functions) that are eligible for inlining. More...
 
class  sp_inl::sp_inline_instr_set
 The sp_inline_instr_set class provides the base implementation for inlining SET instructions (sp_instr_set) within stored functions. More...
 
class  sp_inl::sp_inline_instr_stmt
 The sp_inline_instr_stmt class provides the base implementation for inlining statement instructions (sp_instr_stmt) within stored functions. More...
 
class  sp_inl::sp_inline_instr_freturn
 The sp_inline_instr_freturn class provides the base implementation for inlining RETURN instructions (sp_instr_freturn) in stored functions. More...
 

Namespaces

namespace  sp_inl
 

Functions

static Itemsp_inl::find_variable_from_offset_inner (uint offset, std::unordered_map< uint, Item * > &map_var_offset_to_value, Item **args, uint arg_count)
 
static Itemsp_inl::find_variable_from_offset (Item *var_item, std::unordered_map< uint, Item * > &map_var_offset_to_value, Item **args, uint arg_count)
 
void sp_inl::report_stored_function_inlining_error (THD *thd, const char *func_name, std::string &err_reason)
 Finalizes the error message for stored function inlining and reports the error. More...
 
bool sp_inl::needs_stored_function_inlining (THD *thd)
 Main functions for stored function inlining. More...
 
bool sp_inl::can_inline_stored_function (THD *thd, sp_head *sp, uint sp_arg_count)
 Checks if general stored function properties are eligible for inlining. More...
 
Mem_root_array< sp_inline_instr * > * sp_inl::prepare (THD *thd, sp_head *sp, std::unordered_set< sp_head * > &used_sp_functions)
 Creates the list of prepared instructions. More...
 
Itemsp_inl::inline_stored_function (THD *thd, Mem_root_array< sp_inline_instr * > *prepared_instructions, Item **sp_args, uint sp_arg_count, sp_head *sp_head, Name_resolution_context *sp_name_resolution_ctx)
 Inlines the given stored function instructions into a single Item. More...