 |
MySQL
8.0.23
Source Code Documentation
|
Go to the documentation of this file.
28 #include <sys/types.h>
125 #ifdef HAVE_PSI_INTERFACE
512 #ifdef HAVE_PSI_INTERFACE
529 :
sp_lex_instr(ip, lex->get_sp_current_parsing_ctx(), lex, is_lex_owner),
573 #ifdef HAVE_PSI_INTERFACE
632 #ifdef HAVE_PSI_INTERFACE
700 #ifdef HAVE_PSI_INTERFACE
770 #ifdef HAVE_PSI_INTERFACE
876 expr_item, expr_query) {}
881 expr_item, expr_query, dest) {}
901 #ifdef HAVE_PSI_INTERFACE
922 case_expr_item, case_expr_query),
978 #ifdef HAVE_PSI_INTERFACE
1000 when_expr_item, when_expr_query),
1058 #ifdef HAVE_PSI_INTERFACE
1120 #ifdef HAVE_PSI_INTERFACE
1148 #ifdef HAVE_PSI_INTERFACE
1184 #ifdef HAVE_PSI_INTERFACE
1270 #ifdef HAVE_PSI_INTERFACE
1304 #ifdef HAVE_PSI_INTERFACE
1339 #ifdef HAVE_PSI_INTERFACE
1375 #ifdef HAVE_PSI_INTERFACE
1416 #ifdef HAVE_PSI_INTERFACE
1462 #ifdef HAVE_PSI_INTERFACE
1472 #endif // _SP_INSTR_H_
bool is_invalid() const override
Definition: sp_instr.h:823
Base class for every SP-instruction.
Definition: sp_instr.h:102
uint m_dest
Where we will go.
Definition: sp_instr.h:849
uint opt_mark(sp_head *, List< sp_instr > *) override
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.h:664
void set_lex(LEX *lex, bool is_lex_owner)
Set LEX-object.
Definition: sp_instr.cc:774
bool m_valid
Specify if the stored LEX-object is up-to-date.
Definition: sp_instr.h:510
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1421
Definition: mysql_lex_string.h:39
sp_instr_set_case_expr is used in the "simple CASE" implementation to evaluate and store the CASE-exp...
Definition: sp_instr.h:917
bool on_after_expr_parsing(THD *thd) override
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.h:550
Definition: sql_class.h:807
virtual ~sp_printable()
Definition: sp_instr.h:68
sp_lex_branch_instr(uint ip, sp_pcontext *ctx, LEX *lex, Item *expr_item, LEX_CSTRING expr_query)
Definition: sp_instr.h:786
uint opt_mark(sp_head *, List< sp_instr > *) override
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.h:1453
uint m_count
Definition: sp_instr.h:1302
This file contains the field type.
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:1220
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:772
int m_cursor_idx
Used to identify the cursor in the sp_rcontext.
Definition: sp_instr.h:1373
uint get_cont_dest() const override
Get the continuation destination (instruction pointer for the CONTINUE HANDLER) of this instruction.
Definition: sp_instr.h:817
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1403
Statement instrument information.
Definition: psi_statement_bits.h:110
enum enum_field_types m_return_field_type
RETURN-field type code.
Definition: sp_instr.h:698
static PSI_statement_info psi_info
Definition: sp_instr.h:982
bool m_first_execution
Indicates whether exec_core() has not been already called on the current LEX-object.
Definition: sp_instr.h:431
sp_instr_set_case_expr(uint ip, LEX *lex, uint case_expr_id, Item *case_expr_item, LEX_CSTRING case_expr_query)
Definition: sp_instr.h:919
void free_lex()
Cleanup and destroy assigned LEX-object if needed.
Definition: sp_instr.cc:784
sp_head represents one instance of a stored program.
Definition: sp_head.h:379
bool is_invalid() const override
Definition: sp_instr.h:675
SQL_I_List< Item_trigger_field > m_trig_field_list
List of all the Item_trigger_field's of instruction.
Definition: sp_instr.h:455
bool is_invalid() const override
Definition: sp_instr.h:492
bool opt_is_marked() const
Definition: sp_instr.h:188
sp_instr_freturn represents RETURN statement in stored functions.
Definition: sp_instr.h:645
void operator=(sp_instr &)
void free_items()
Definition: sql_class.cc:1664
void backpatch(uint dest) override
Update all instruction with the given label in the backpatch list to the specified instruction pointe...
Definition: sp_instr.h:841
Item * m_value_item
Value expression item of the SET-statement.
Definition: sp_instr.h:627
void invalidate() override
Invalidate the object.
Definition: sp_instr.h:1248
int m_errcode
The error code, which should be raised by this instruction.
Definition: sp_instr.h:1460
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:936
sp_instr_cpush corresponds to DECLARE CURSOR, implements DECLARE CURSOR and OPEN.
Definition: sp_instr.h:1213
uint opt_shortcut_jump(sp_head *, sp_instr *) override
Override sp_instr_jump's shortcut; we stop here.
Definition: sp_instr.h:1175
static PSI_statement_info psi_info
Definition: sp_instr.h:1274
bool on_after_expr_parsing(THD *thd) override
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.h:968
sp_instr_hpop(uint ip, sp_pcontext *ctx)
Definition: sp_instr.h:1132
Dialog Client Authentication nullptr
Definition: dialog.cc:353
void clear_da(THD *thd) const
Clear diagnostics area.
Definition: sp_instr.h:145
sp_instr_copen represents OPEN statement (opens the cursor).
Definition: sp_instr.h:1318
uint opt_shortcut_jump(sp_head *, sp_instr *) override
Override sp_instr_jump's shortcut; we stop here.
Definition: sp_instr.h:1095
sp_instr_jump_if_not(uint ip, LEX *lex, Item *expr_item, LEX_CSTRING expr_query, uint dest)
Definition: sp_instr.h:878
LEX * lex
Definition: sql_class.h:865
uint m_case_expr_id
Identifier (index) of the CASE-expression in the runtime context.
Definition: sp_instr.h:976
size_t length
Definition: mysql_lex_string.h:41
static PSI_statement_info psi_info
Definition: sp_instr.h:1343
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:832
LEX_CSTRING get_expr_query() const override
Definition: sp_instr.h:829
sp_pcontext * get_parsing_ctx() const
Definition: sp_instr.h:138
LEX_CSTRING m_query
Complete query of the SQL-statement.
Definition: sp_instr.h:507
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:164
static app_data_list nextp(app_data_list l)
Return next element in list of app_data.
Definition: app_data.cc:274
LEX_CSTRING m_trigger_field_name
Trigger field name ("field_name" of the "NEW.field_name").
Definition: sp_instr.h:621
void opt_move(uint dst, List< sp_branch_instr > *ibp) override
Inform the instruction that it has been moved during optimization.
Definition: sp_instr.cc:1757
uint m_opt_hpop
hpop marking end of handler scope.
Definition: sp_instr.h:1114
sp_instr_set_trigger_field(uint ip, LEX *lex, LEX_CSTRING trigger_field_name, Item_trigger_field *trigger_field, Item *value_item, LEX_CSTRING value_query)
Definition: sp_instr.h:588
uint opt_mark(sp_head *sp, List< sp_instr > *leads) override
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.cc:1365
SQL_I_List< Item_trigger_field > * get_instr_trig_field_list() override
Definition: sp_instr.h:267
sp_instr * m_optdest
Definition: sp_instr.h:768
void backpatch(uint dest) override
Update all instruction with the given label in the backpatch list to the specified instruction pointe...
Definition: sp_instr.h:757
sp_instr * m_cont_optdest
Definition: sp_instr.h:856
static PSI_statement_info psi_info
Definition: sp_instr.h:774
virtual LEX_CSTRING get_expr_query() const
Definition: sp_instr.h:386
Query_arena m_arena
Definition: sp_instr.h:194
An interface for all SP-instructions with destinations that need to be updated by the SP-optimizer.
Definition: sp_instr.h:75
uint opt_mark(sp_head *sp, List< sp_instr > *leads) override
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.cc:1167
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1524
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:903
enum_sql_command sql_command
SQL command for this statement.
Definition: sql_lex.h:2432
sp_instr_hpush_jump(uint ip, sp_pcontext *ctx, sp_handler *handler)
Definition: sp_instr.cc:1329
void opt_move(uint dst, List< sp_branch_instr > *ibp) override
Inform the instruction that it has been moved during optimization.
Definition: sp_instr.cc:1191
sp_instr_freturn(uint ip, LEX *lex, Item *expr_item, LEX_CSTRING expr_query, enum enum_field_types return_field_type)
Definition: sp_instr.h:647
Item * m_expr_item
RETURN-expression item.
Definition: sp_instr.h:692
sp_instr_set represents SET-statements, which deal with SP-variables.
Definition: sp_instr.h:525
uint opt_shortcut_jump(sp_head *sp, sp_instr *start) override
Short-cut jumps to jumps during optimization.
Definition: sp_instr.cc:1106
sp_instr_stmt(uint ip, LEX *lex, LEX_CSTRING query)
Definition: sp_instr.h:469
void add_to_varlist(sp_variable *var)
Definition: sp_instr.h:1407
sp_printable defines an interface which should be implemented if a class wants report some internal i...
Definition: sp_instr.h:64
Diagnostics_area * get_stmt_da()
Returns first Diagnostics Area for the current statement.
Definition: sql_class.h:2914
virtual uint opt_shortcut_jump(sp_head *, sp_instr *start)
Short-cut jumps to jumps during optimization.
Definition: sp_instr.h:172
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1310
static PSI_statement_info psi_info
Definition: sp_instr.h:1062
virtual void cleanup_before_parsing(THD *thd)
Destroy items in the free list before re-parsing the statement query string (and thus,...
Definition: sp_instr.cc:799
static PSI_statement_info psi_info
Definition: sp_instr.h:1188
#define true
Definition: config_static.h:44
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1377
static PSI_statement_info psi_info
Definition: sp_instr.h:516
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1731
uint m_ip
Instruction pointer.
Definition: sp_instr.h:202
int m_cursor_idx
Used to identify the cursor in the sp_rcontext.
Definition: sp_instr.h:1337
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:161
LEX_CSTRING m_cursor_query
This attribute keeps the cursor SELECT statement.
Definition: sp_instr.h:1261
~sp_instr_hpush_jump() override
Definition: sp_instr.cc:1338
MEM_ROOT m_lex_mem_root
Mem-root for storing the LEX-tree during reparse.
Definition: sp_instr.h:419
LEX_CSTRING get_expr_query() const override
Definition: sp_instr.h:617
sp_lex_branch_instr(uint ip, sp_pcontext *ctx, LEX *lex, Item *expr_item, LEX_CSTRING expr_query, uint dest)
Definition: sp_instr.h:796
bool on_after_expr_parsing(THD *) override
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.h:500
Item * single_visible_field() const
Definition: sql_resolver.cc:4712
void set_destination(uint old_dest, uint new_dest) override
Update the destination; used by the SP-instruction-optimizer.
Definition: sp_instr.h:753
sp_instr_set(uint ip, LEX *lex, uint offset, Item *value_item, LEX_CSTRING value_query, bool is_lex_owner)
Definition: sp_instr.h:527
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1623
uint m_cont_dest
Where continue handlers will go.
Definition: sp_instr.h:852
void invalidate() override
Invalidate the object.
Definition: sp_instr.h:548
sp_instr_hreturn(uint ip, sp_pcontext *ctx)
Definition: sp_instr.cc:1418
virtual void backpatch(uint dest)=0
Update all instruction with the given label in the backpatch list to the specified instruction pointe...
#define STRING_WITH_LEN(X)
Definition: m_string.h:315
void invalidate() override
Invalidate the object.
Definition: sp_instr.h:677
The instruction corresponds to the FETCH statement.
Definition: sp_instr.h:1390
void my_error(int nr, myf MyFlags,...)
Fill in and print a previously registered error message.
Definition: my_error.cc:215
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.h:325
~sp_instr() override
Definition: sp_instr.h:110
int m_cursor_idx
Used to identify the cursor in the sp_rcontext.
Definition: sp_instr.h:1268
LEX_CSTRING get_expr_query() const override
Definition: sp_instr.h:688
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:1031
TABLE_LIST * m_prelocking_tables
List of additional tables this statement needs to lock when it enters/leaves prelocked mode on its ow...
Definition: sp_instr.h:444
virtual ~sp_branch_instr()
Definition: sp_instr.h:93
bool m_valid
Flag if the LEX-object of this instruction is valid or not.
Definition: sp_instr.h:1265
static PSI_statement_info psi_info
Definition: sp_instr.h:1308
The handler class is the interface for dynamically loadable storage engines.
Definition: handler.h:4048
static PSI_statement_info psi_info
Definition: sp_instr.h:1379
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1692
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1186
sp_instr_error just throws an SQL-condition if the execution flow comes to it.
Definition: sp_instr.h:1432
virtual void adjust_sql_command(LEX *)
Definition: sp_instr.h:374
sp_instr_cclose(uint ip, sp_pcontext *ctx, int cursor_idx)
Definition: sp_instr.h:1356
LEX_CSTRING m_value_query
SQL-query corresponding to the value expression.
Definition: sp_instr.h:571
The class represents parse-time context, which keeps track of declared variables/parameters,...
Definition: sp_pcontext.h:250
virtual SQL_I_List< Item_trigger_field > * get_instr_trig_field_list()
Definition: sp_instr.h:190
sp_lex_branch_instr is a base class for SP-instructions, which might perform conditional jump dependi...
Definition: sp_instr.h:784
Definition: sp_instr.h:1070
sp_instr_cpop instruction is added at the end of BEGIN..END block.
Definition: sp_instr.h:1284
uint opt_mark(sp_head *sp, List< sp_instr > *leads) override
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.cc:1098
virtual bool is_invalid() const =0
static PSI_statement_info psi_info
Definition: sp_instr.h:905
sp_handler * m_handler
Handler.
Definition: sp_instr.h:1111
sp_lex_instr(uint ip, sp_pcontext *ctx, LEX *lex, bool is_lex_owner)
Definition: sp_instr.h:226
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:77
virtual void opt_move(uint dst, List< sp_branch_instr > *ibp)
Inform the instruction that it has been moved during optimization.
Definition: sp_instr.h:183
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1546
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1353
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:1708
void add_condition(sp_condition_value *condition_value)
Definition: sp_instr.cc:1343
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1347
List< sp_variable > m_varlist
List of SP-variables to store fetched values.
Definition: sp_instr.h:1411
void set_destination(uint old_dest, uint new_dest) override
Update the destination; used by the SP-instruction-optimizer.
Definition: sp_instr.h:835
void get_query(String *sql_query) const override
Return the query string, which can be passed to the parser.
Definition: sp_instr.h:1250
bool safe_to_cache_query
Whether this query will return the same answer every time, given unchanged data.
Definition: sql_lex.h:3866
virtual void set_destination(uint old_dest, uint new_dest)=0
Update the destination; used by the SP-instruction-optimizer.
virtual bool on_after_expr_parsing(THD *thd)
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.h:398
enum_field_types
Column types for MySQL.
Definition: field_types.h:57
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1648
unsigned int uint
Definition: uca-dump.cc:29
void cleanup_before_parsing(THD *thd) override
Destroy items in the free list before re-parsing the statement query string (and thus,...
Definition: sp_instr.cc:1077
This class represents condition-value term in DECLARE CONDITION or DECLARE HANDLER statements.
Definition: sp_pcontext.h:131
Item * m_expr_item
Expression item.
Definition: sp_instr.h:859
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1531
bool push_back(T *a)
Definition: sql_list.h:445
Definition: sp_instr.h:1130
sp_instr_error(uint ip, sp_pcontext *ctx, int errcode)
Definition: sp_instr.h:1434
void invalidate() override
Invalidate the object.
Definition: sp_instr.h:1015
Definition: sp_instr.h:1158
bool m_is_lex_owner
Indicates whether this sp_lex_instr instance is responsible for LEX-object deletion.
Definition: sp_instr.h:425
uint get_ip() const
Definition: sp_instr.h:129
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1232
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:1291
LEX * m_lex
LEX-object.
Definition: sp_instr.h:411
void reset_condition_info(THD *thd)
Reset the current condition information stored in the Diagnostics Area.
Definition: sql_error.cc:481
bool on_after_expr_parsing(THD *thd) override
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.h:895
Definition: sql_class.h:226
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1306
~sp_lex_instr() override
Definition: sp_instr.h:236
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:988
sp_handler * get_handler()
Definition: sp_instr.h:1078
SELECT_LEX * select_lex
First query block.
Definition: sql_lex.h:3623
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1272
Represents NEW/OLD version of field of row which is changed/read in trigger.
Definition: item.h:6163
bool validate_lex_and_execute_core(THD *thd, uint *nextp, bool open_tables)
Make a few attempts to execute the instruction.
Definition: sp_instr.cc:681
int m_cursor_idx
Used to identify the cursor in the sp_rcontext.
Definition: sp_instr.h:1414
sp_instr * m_optdest
Definition: sp_instr.h:855
sp_instr_jump(uint ip, sp_pcontext *ctx)
Definition: sp_instr.h:722
#define alloc_root_inited(A)
Definition: my_sys.h:808
void invalidate() override
Invalidate the object.
Definition: sp_instr.h:611
uint opt_mark(sp_head *sp, List< sp_instr > *leads) override
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.cc:1743
uint m_frame
Definition: sp_instr.h:1118
virtual bool exec_core(THD *thd, uint *nextp)=0
Execute core function of instruction after all preparations (e.g.
bool on_after_expr_parsing(THD *thd) override
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.cc:1057
static PSI_statement_info psi_info
Definition: sp_instr.h:1466
bool append(const String &s)
Definition: sql_string.cc:443
bool open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags, Prelocking_strategy *prelocking_strategy)
Open all tables in list.
Definition: sql_base.cc:5709
static char * query
Definition: myisam_ftdump.cc:44
static PSI_statement_info psi_info
Definition: sp_instr.h:575
sp_instr_cpop(uint ip, sp_pcontext *ctx, uint count)
Definition: sp_instr.h:1286
bool on_after_expr_parsing(THD *thd) override
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.h:682
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:702
uint m_dest
Where we will go.
Definition: sp_instr.h:765
LEX_CSTRING get_expr_query() const override
Definition: sp_instr.h:557
bool m_marked
Show if this instruction is reachable within the SP (used by SP-optimizer).
Definition: sp_instr.h:199
The instruction corresponds to the CLOSE statement.
Definition: sp_instr.h:1354
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:514
constexpr const LEX_CSTRING EMPTY_CSTR
Definition: lex_string.h:46
virtual uint opt_mark(sp_head *, List< sp_instr > *leads)
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.h:160
static PSI_statement_info psi_info
Definition: sp_instr.h:636
sp_instr(uint ip, sp_pcontext *ctx)
Definition: sp_instr.h:104
sp_instr_jump_case_when instruction is used in the "simple CASE" implementation.
Definition: sp_instr.h:995
LEX_CSTRING m_expr_query
SQL-query corresponding to the RETURN-expression.
Definition: sp_instr.h:695
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1612
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1060
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1150
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3618
void set_destination(uint old_dest, uint new_dest) override
Update the destination; used by the SP-instruction-optimizer.
Definition: sp_instr.h:956
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1418
sp_instr(const sp_instr &)
sp_instr_set_trigger_field represents SET-statements, which deal with NEW/OLD trigger pseudo-rows.
Definition: sp_instr.h:586
bool execute(THD *thd, uint *nextp) override
Execute this instruction.
Definition: sp_instr.cc:1481
#define DBUG_ASSERT(A)
Definition: my_dbug.h:199
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1341
bool on_after_expr_parsing(THD *) override
Callback function which is called after the statement query string is successfully parsed,...
Definition: sp_instr.h:1254
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:980
static PSI_statement_info psi_info
Definition: sp_instr.h:1420
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1122
This class represents 'DECLARE HANDLER' statement.
Definition: sp_pcontext.h:191
int m_case_expr_id
Identifier (index) of the CASE-expression in the runtime context.
Definition: sp_instr.h:1046
sp_instr_jump(uint ip, sp_pcontext *ctx, uint dest)
Definition: sp_instr.h:725
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:576
void backpatch(uint dest) override
Update all instruction with the given label in the backpatch list to the specified instruction pointe...
Definition: sp_instr.h:1101
static PSI_statement_info psi_info
Definition: sp_instr.h:1152
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1150
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1587
sp_instr_copen(uint ip, sp_pcontext *ctx, int cursor_idx)
Definition: sp_instr.h:1320
ssize_t count
Definition: memcached.c:386
void set_cont_dest(uint cont_dest)
Definition: sp_instr.h:807
static PSI_statement_info psi_info
Definition: sp_instr.h:704
virtual bool execute(THD *thd, uint *nextp)=0
Execute this instruction.
sp_instr_cfetch(uint ip, sp_pcontext *ctx, int cursor_idx)
Definition: sp_instr.h:1392
void print(const THD *, String *str) override
Definition: sp_instr.h:1138
#define MYF(v)
Definition: my_inttypes.h:96
bool execute(THD *, uint *nextp) override
Execute this instruction.
Definition: sp_instr.h:1447
Item_case_expr * m_case_expr_item
Item representing the CASE-expression.
Definition: sp_instr.h:1049
Item * m_value_item
Value expression item of the SET-statement.
Definition: sp_instr.h:568
Item_trigger_field * m_trigger_field
Item corresponding to the NEW/OLD trigger field.
Definition: sp_instr.h:624
bool is_invalid() const override
Definition: sp_instr.h:1246
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:960
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:634
LEX_CSTRING m_value_query
SQL-query corresponding to the value expression.
Definition: sp_instr.h:630
virtual void get_query(String *sql_query) const
Return the query string, which can be passed to the parser.
Definition: sp_instr.cc:812
sp_instr_cpush(uint ip, sp_pcontext *ctx, LEX *cursor_lex, LEX_CSTRING cursor_query, int cursor_idx)
Definition: sp_instr.h:1215
virtual void print(const THD *thd, String *str)=0
Item * m_eq_item
Item corresponding to the main item of the jump-condition-expression: it's the equal function (=) in ...
Definition: sp_instr.h:1056
static PSI_statement_info psi_info
Definition: sp_instr.h:1124
void opt_move(uint dst, List< sp_branch_instr > *ibp) override
Inform the instruction that it has been moved during optimization.
Definition: sp_instr.cc:1121
const char * str
Definition: mysql_lex_string.h:40
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1004
virtual uint get_cont_dest() const
Get the continuation destination (instruction pointer for the CONTINUE HANDLER) of this instruction.
Definition: sp_instr.h:136
Definition: auth_common.h:57
bool is_invalid() const override
Definition: sp_instr.h:546
bool is_invalid() const override
Definition: sp_instr.h:609
bool execute(THD *, uint *nextp) override
Execute this instruction.
Definition: sp_instr.h:738
void backpatch(uint) override
Update all instruction with the given label in the backpatch list to the specified instruction pointe...
Definition: sp_instr.h:960
virtual void invalidate()=0
Invalidate the object.
sp_instr_jump_if_not implements SP-instruction, which does the jump if its SQL-expression is false.
Definition: sp_instr.h:871
This class represents a stored program variable or a parameter (also referenced as 'SP-variable').
Definition: sp_pcontext.h:47
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1498
void adjust_sql_command(LEX *lex) override
Definition: sp_instr.h:559
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1091
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:1138
sp_instr_jump_if_not(uint ip, LEX *lex, Item *expr_item, LEX_CSTRING expr_query)
Definition: sp_instr.h:873
void invalidate() override
Invalidate the object.
Definition: sp_instr.h:825
TABLE_LIST ** m_lex_query_tables_own_last
The value m_lex->query_tables_own_last should be set to this when the statement enters/leaves prelock...
Definition: sp_instr.h:450
uint m_offset
Frame offset.
Definition: sp_instr.h:565
PSI_statement_info * get_psi_info() override
Definition: sp_instr.h:1464
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1050
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1659
bool exec_core(THD *thd, uint *nextp) override
Execute core function of instruction after all preparations (e.g.
Definition: sp_instr.cc:1489
bool on_after_expr_parsing(THD *thd) override
Build CASE-expression item tree: Item_func_eq(case-expression, when-i-expression)
Definition: sp_instr.cc:1245
sp_instr_stmt represents almost all conventional SQL-statements, which are supported outside stored p...
Definition: sp_instr.h:467
sp_instr_jump_case_when(uint ip, LEX *lex, int case_expr_id, Item *when_expr_item, LEX_CSTRING when_expr_query)
Definition: sp_instr.h:997
uint m_frame
Definition: sp_instr.h:1182
sp_lex_instr is a class providing the interface and base implementation for SP-instructions,...
Definition: sp_instr.h:224
void print(const THD *thd, String *str) override
Definition: sp_instr.cc:1442
sp_pcontext * m_parsing_ctx
Instruction parsing context.
Definition: sp_instr.h:205
void get_query(String *sql_query) const override
Return the query string, which can be passed to the parser.
Definition: sp_instr.h:496
bool reset_lex_and_exec_core(THD *thd, uint *nextp, bool open_tables)
Prepare LEX and thread for execution of instruction, if requested open and lock LEX's tables,...
Definition: sp_instr.cc:303
uint opt_mark(sp_head *sp, List< sp_instr > *leads) override
Mark this instruction as reachable during optimization and return the index to the next instruction.
Definition: sp_instr.cc:1456
void reset_diagnostics_area()
Clear this Diagnostics Area.
Definition: sql_error.cc:356
LEX_CSTRING m_expr_query
SQL-query corresponding to the expression.
Definition: sp_instr.h:862
virtual PSI_statement_info * get_psi_info()=0
This is base class for all kinds of jump instructions.
Definition: sp_instr.h:720
void invalidate() override
Invalidate the object.
Definition: sp_instr.h:494
LEX * parse_expr(THD *thd, sp_head *sp)
(Re-)parse the query corresponding to this instruction and return a new LEX-object.
Definition: sp_instr.cc:543
@ SQLCOM_SET_OPTION
Definition: my_sqlcommand.h:77
#define false
Definition: config_static.h:43