![]() |
MySQL 9.5.0
Source Code Documentation
|
Prepared_statement_handle enables support for prepared statement execution. More...
#include <statement.h>
Public Member Functions | |
| Prepared_statement_handle (THD *thd, const char *query, uint length) | |
| bool | prepare () |
| Prepares the statement using m_query. More... | |
| bool | set_parameter (uint idx, bool is_null, enum_field_types type, bool is_unsigned, const void *data, unsigned long data_length, const char *name, unsigned long name_length) |
| Set the parameter value in a prepared statement. More... | |
| Item_param * | get_parameter (size_t index) |
| Get the parameter object. More... | |
| bool | execute () override |
| Execute the statement that is prepared. More... | |
| bool | fetch () |
| Fetch rows from statement using cursor. More... | |
| bool | is_cursor_open () |
| Check if the statement uses cursor and it is open. More... | |
| bool | uses_cursor () |
| Check if the statement uses cursor. More... | |
| bool | reset () |
| Reset the statement parameters and cursors. More... | |
| bool | close () |
| Close the statement that is prepared. More... | |
| uint | get_param_count () |
| Get number of parameters used in the statement. More... | |
| bool | is_prepared_statement () override |
| Convey that this is prepared statement. More... | |
| bool | is_executed_or_prepared () override |
| Check if the statement has been executed or prepared. More... | |
| virtual | ~Prepared_statement_handle () override |
| Virtual destroy for Prepared_statement_handle object. More... | |
Public Member Functions inherited from Statement_handle | |
| Statement_handle (THD *thd, const char *query, size_t length) | |
| bool | is_error () const |
| Check if error is reported. More... | |
| LEX_CSTRING | get_last_error () |
| Check if error is reported. More... | |
| unsigned int | get_last_errno () const |
| Get the last mysql errno. More... | |
| LEX_CSTRING | get_mysql_state () |
| Get the mysql error state. More... | |
| ulonglong | warning_count () const |
| Get number of warnings generated. More... | |
| Warning * | get_warnings () |
| Get list of all warnings. More... | |
| void | set_clear_diagnostics_area_on_success (bool clear_da) |
| Set the flag to indicate clear diagnostics area on successful execution of a statement. More... | |
| bool | clear_diagnostics_area_on_success () const |
| Get value of a flag which indicates whether diagnostics area should be cleared on successful execution of a statement or not. More... | |
| Result_set * | get_result_sets () |
| Get the next result sets generated while executing the statement. More... | |
| Result_set * | get_current_result_set () |
| Get the current result set object. More... | |
| void | next_result_set () |
| Make the next result set the current result set. More... | |
| void | free_old_result () |
| Feel all the result collected so far, from query execution. More... | |
| std::string_view | get_query () |
| Get the query string being executed. More... | |
| void | set_capacity (size_t capacity) |
| Set the capacity in bytes allowed for caching results. More... | |
| size_t | get_capacity () |
| Get the capacity in bytes allowed for caching results. More... | |
| void | set_use_thd_protocol (bool use_thd_protocol) |
| Set thd protocol to enable result pass through. More... | |
| bool | is_using_thd_protocol () const |
| Check if thd protocol is used. More... | |
| void | set_thd_protocol () |
| Set either Protocol_local_v2 when m_use_thd_protocol is not set or or classical protocol when m_use_thd_protocol is set to THD. More... | |
| void | reset_thd_protocol () |
| Reset THD protocol. More... | |
| void | set_expected_charset (const char *charset_name) |
| Set the expected charset. More... | |
| const char * | get_expected_charset () |
| Get the expected charset. More... | |
| size_t | get_num_rows_per_fetch () |
| Get the num rows per fetch. More... | |
| void | set_num_rows_per_fetch (size_t num_rows_per_fetch) |
| Set the num of rows to be retrieved per fetch. More... | |
| virtual | ~Statement_handle () |
| Destroy the Statement_handle object. More... | |
Static Public Attributes | |
| static PSI_statement_info | prepare_psi_info |
| static PSI_statement_info | execute_psi_info |
| static PSI_statement_info | fetch_psi_info |
| static PSI_statement_info | reset_psi_info |
| static PSI_statement_info | close_psi_info |
Private Member Functions | |
| template<typename Function > | |
| bool | run (Function exec_func, PSI_statement_info *psi_info) |
| This is a wrapper function used to execute and operation on Prepared_statement. More... | |
| bool | internal_prepare () |
| bool | internal_execute () |
| bool | internal_fetch () |
| bool | internal_reset () |
| bool | internal_reset (bool invalidate_params) |
| Reset the statement parameters and cursors. More... | |
| bool | internal_close () |
| bool | enable_cursor () |
| Method to enable cursor. More... | |
| bool | create_parameter_buffers () |
| Create a parameter buffers. More... | |
Private Attributes | |
| Prepared_statement * | m_stmt {nullptr} |
| PS_PARAM * | m_parameters {nullptr} |
| MEM_ROOT | m_parameter_mem_root |
| ulong * | m_parameter_buffer_max {nullptr} |
| bool | m_bound_new_parameter_types {true} |
Prepared_statement_handle enables support for prepared statement execution.
Supports parameters and cursors.
|
inline |
|
inlineoverridevirtual |
Virtual destroy for Prepared_statement_handle object.
| bool Prepared_statement_handle::close | ( | void | ) |
Close the statement that is prepared.
|
private |
Create a parameter buffers.
|
private |
Method to enable cursor.
|
overridevirtual |
Execute the statement that is prepared.
If a statement is not yet prepared, we fail.
If a statement was already in EXECUTED state, we close the cursor and execute the statement again.
Implements Statement_handle.
| bool Prepared_statement_handle::fetch | ( | ) |
Fetch rows from statement using cursor.
Not all statement uses cursor. Check is_cursor_open() and then invoke this call.
Attempt to call fetch rows without preparing or executing the statement will cause failure.
Attempt to call fetch() without cursor in use, will cause failure.
|
inline |
Get number of parameters used in the statement.
This should be called after preparing a statement.
| Item_param * Prepared_statement_handle::get_parameter | ( | size_t | index | ) |
Get the parameter object.
| index | of the parameter |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Reset the statement parameters and cursors.
| invalidate_params | When set to true parameters are invalidated. |
|
inline |
Check if the statement uses cursor and it is open.
If the API is called without preparing the statement will result in 'false'
|
inlineoverridevirtual |
Check if the statement has been executed or prepared.
Implements Statement_handle.
|
inlineoverridevirtual |
| bool Prepared_statement_handle::prepare | ( | ) |
Prepares the statement using m_query.
If the statement is already in executing mode, close the cursor deallocate the previous statement and start preparing new statement using m_query.
| bool Prepared_statement_handle::reset | ( | void | ) |
Reset the statement parameters and cursors.
Invoking this API will close the cursor in use. This is invoked generally before executing the statement for the second time, after prepare.
|
private |
This is a wrapper function used to execute and operation on Prepared_statement.
This takes case of using relevant protocol, diagnostic area, backup the current query arena before executing the prepared statement operation.
| Function | type of function to run |
| exec_func | function to run |
| psi_info | PSI_statement_info instance. |
| bool Prepared_statement_handle::set_parameter | ( | uint | idx, |
| bool | is_null, | ||
| enum_field_types | type, | ||
| bool | is_unsigned, | ||
| const void * | data, | ||
| unsigned long | data_length, | ||
| const char * | name, | ||
| unsigned long | name_length | ||
| ) |
Set the parameter value in a prepared statement.
| idx | Index of '?' in prepared statement. |
| is_null | Set parameter to NULL value. |
| type | Set the parameters field type. |
| is_unsigned | Mark parameter as unsigned. |
| data | Pointer to buffer containing the value. |
| data_length | Length of buffer 'data' |
| name | Name of parameter (mostly unused) |
| name_length | Length of 'name' |
|
inline |
Check if the statement uses cursor.
If the API is called without executing the statement will result in 'false'
|
static |
|
static |
|
static |
|
private |
|
private |
|
private |
|
private |
|
static |
|
static |