CUBRID Engine
latest
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "cas_common.h"
#include "shard_proxy.h"
#include "shard_proxy_common.h"
#include "shard_statement.h"
#include "shard_shm.h"
Go to the source code of this file.
Functions | |
static int | shard_stmt_lru_insert (T_SHARD_STMT *stmt_p) |
static int | shard_stmt_lru_delete (T_SHARD_STMT *stmt_p) |
static T_SHARD_STMT * | shard_stmt_get_lru (void) |
static int * | shard_stmt_pos_srv_h_id (T_SHARD_STMT *stmt_p, int shard_id, int cas_id) |
static int | shard_stmt_find_srv_h_id (T_SHARD_STMT *stmt_p, int shard_id, int cas_id) |
static int | shard_stmt_set_srv_h_id (T_SHARD_STMT *stmt_p, int shard_id, int cas_id, int srv_h_id) |
static T_SHARD_STMT * | shard_stmt_find_unused (void) |
static T_SHARD_STMT * | shard_stmt_new_internal (int stmt_type, char *sql_stmt, int ctx_cid, unsigned int ctx_uid, T_BROKER_VERSION client_version) |
static int | shard_stmt_change_shard_val_to_id (char **sql_stmt, const char **buf, char appl_server) |
static char * | shard_stmt_write_buf_to_sql (char *sql_stmt, const char *buf, int length, bool is_to_upper, char appl_server) |
static T_BROKER_VERSION | shard_stmt_make_protocol_version (T_BROKER_VERSION client_version) |
static void | shard_stmt_put_statement_to_map (const char *sql_stmt, T_SHARD_STMT *stmt_p) |
static void | shard_stmt_del_statement_from_map (T_SHARD_STMT *stmt_p) |
static void | shard_stmt_set_status (int stmt_h_id, int status) |
T_SHARD_STMT * | shard_stmt_find_by_sql (char *sql_stmt, const char *db_user, T_BROKER_VERSION client_version) |
T_SHARD_STMT * | shard_stmt_find_by_stmt_h_id (int stmt_h_id) |
int | shard_stmt_pin (T_SHARD_STMT *stmt_p) |
int | shard_stmt_unpin (T_SHARD_STMT *stmt_p) |
void | shard_stmt_check_waiter_and_wakeup (T_SHARD_STMT *stmt_p) |
T_SHARD_STMT * | shard_stmt_new_prepared_stmt (char *sql_stmt, int ctx_cid, unsigned int ctx_uid, T_BROKER_VERSION client_version) |
T_SHARD_STMT * | shard_stmt_new_schema_info (int ctx_cid, unsigned int ctx_uid) |
T_SHARD_STMT * | shard_stmt_new_exclusive (char *sql_stmt, int ctx_cid, unsigned int ctx_uid, T_BROKER_VERSION client_version) |
void | shard_stmt_destroy (void) |
void | shard_stmt_free (T_SHARD_STMT *stmt_p) |
int | shard_stmt_find_srv_h_id_for_shard_cas (int stmt_h_id, int shard_id, int cas_id) |
int | shard_stmt_add_srv_h_id_for_shard_cas (int stmt_h_id, int shard_id, int cas_id, int srv_h_id) |
void | shard_stmt_del_srv_h_id_for_shard_cas (int stmt_h_id, int shard_id, int cas_id) |
void | shard_stmt_del_all_srv_h_id_for_shard_cas (int shard_id, int cas_id) |
int | shard_stmt_set_hint_list (T_SHARD_STMT *stmt_p) |
int | shard_stmt_get_hint_type (T_SHARD_STMT *stmt_p) |
int | shard_stmt_save_prepare_request (T_SHARD_STMT *stmt_p, bool has_shard_val_hint, char **prepare_req, int *prepare_req_len, char *argv_sql_stmt, char *argv_remainder, char *orgzd_sql) |
char * | shard_str_stmt (T_SHARD_STMT *stmt_p) |
int | shard_stmt_initialize (int initial_size) |
char * | shard_stmt_rewrite_sql (bool *has_shard_val_hint, char *sql_stmt, char appl_server) |
void | shard_statement_wait_timer (void) |
void | shard_stmt_set_status_invalid (int stmt_h_id) |
void | shard_stmt_set_status_complete (int stmt_h_id) |
Variables | |
T_SHM_SHARD_KEY * | shm_key_p |
T_PROXY_INFO * | proxy_info_p |
T_SHARD_STMT_GLOBAL | shard_Stmt |
int | shard_Stmt_max_num_alloc = SHARD_STMT_MAX_NUM_ALLOC |
void shard_statement_wait_timer | ( | void | ) |
Definition at line 1404 of file shard_statement.c.
References i, t_shard_stmt_global::max_num_stmt, NULL, proxy_waiter_timeout(), SHARD_STMT_STATUS_UNUSED, t_shard_stmt::status, t_shard_stmt_global::stmt_ent, t_proxy_info::stmt_waiter_count, and t_shard_stmt::waitq.
Referenced by proxy_timer_process().
int shard_stmt_add_srv_h_id_for_shard_cas | ( | int | stmt_h_id, |
int | shard_id, | ||
int | cas_id, | ||
int | srv_h_id | ||
) |
Definition at line 715 of file shard_statement.c.
References error(), NULL, PROXY_DEBUG_LOG, PROXY_LOG, PROXY_LOG_MODE_ERROR, shard_stmt_check_waiter_and_wakeup(), shard_stmt_find_by_stmt_h_id(), shard_stmt_set_srv_h_id(), shard_stmt_set_status_complete(), SHARD_STMT_STATUS_IN_PROGRESS, shard_str_stmt(), and t_shard_stmt::status.
Referenced by fn_proxy_cas_prepare(), fn_proxy_cas_prepare_and_execute(), and fn_proxy_cas_schema_info().
|
static |
Definition at line 1314 of file shard_statement.c.
References sp_parser_hint::arg, ER_SP_INVALID_HINT, ER_SP_OUT_OF_MEMORY, error(), sp_parser_hint::hint_type, HT_VAL, t_shard_key::key_column, NO_ERROR, NULL, proxy_find_shard_id_by_hint_value(), PROXY_LOG, PROXY_LOG_MODE_ERROR, t_shard_key_range::shard_id, t_shm_shard_key::shard_key, shard_metadata_find_shard_range(), shard_stmt_write_buf_to_sql(), sp_check_end_of_hint(), sp_create_parser_hint(), sp_free_parser_hint(), sp_get_hint_arg(), and strlen.
Referenced by shard_stmt_rewrite_sql().
void shard_stmt_check_waiter_and_wakeup | ( | T_SHARD_STMT * | stmt_p | ) |
Definition at line 368 of file shard_statement.c.
References assert, t_shard_stmt::ctx_cid, t_wait_context::ctx_cid, t_shard_stmt::ctx_uid, t_wait_context::ctx_uid, ENTER_FUNC, error(), EXIT_FUNC, FREE_MEM, NULL, PROXY_DEBUG_LOG, PROXY_INVALID_CONTEXT, PROXY_LOG, PROXY_LOG_MODE_ERROR, proxy_wakeup_context_by_statement(), shard_queue_dequeue(), SHARD_STMT_TYPE_PREPARED, shard_str_stmt(), t_shard_stmt::stmt_type, t_proxy_info::stmt_waiter_count, and t_shard_stmt::waitq.
Referenced by fn_proxy_cas_prepare(), fn_proxy_cas_schema_info(), fn_proxy_client_prepare(), fn_proxy_client_prepare_and_execute(), proxy_context_clear(), proxy_context_timeout(), and shard_stmt_add_srv_h_id_for_shard_cas().
void shard_stmt_del_all_srv_h_id_for_shard_cas | ( | int | shard_id, |
int | cas_id | ||
) |
Definition at line 777 of file shard_statement.c.
References ENTER_FUNC, EXIT_FUNC, i, t_shard_stmt_global::max_num_stmt, NULL, SHARD_STMT_INVALID_HANDLE_ID, shard_stmt_pos_srv_h_id(), SHARD_STMT_STATUS_UNUSED, t_shard_stmt::status, and t_shard_stmt_global::stmt_ent.
Referenced by proxy_cas_io_free(), proxy_cas_io_free_by_ctx(), and proxy_set_conn_info().
void shard_stmt_del_srv_h_id_for_shard_cas | ( | int | stmt_h_id, |
int | shard_id, | ||
int | cas_id | ||
) |
Definition at line 752 of file shard_statement.c.
References ENTER_FUNC, EXIT_FUNC, NULL, PROXY_LOG, PROXY_LOG_MODE_ERROR, shard_stmt_find_by_stmt_h_id(), SHARD_STMT_INVALID_HANDLE_ID, and shard_stmt_pos_srv_h_id().
Referenced by fn_proxy_client_close_req_handle(), and proxy_cas_execute_internal().
|
static |
Definition at line 1465 of file shard_statement.c.
References assert, t_shard_stmt::hash_next, t_shard_stmt::hash_prev, mht_get(), mht_put(), mht_rem(), NULL, t_shard_stmt::parser, sp_get_sql_stmt(), and t_shard_stmt_global::stmt_map.
Referenced by shard_stmt_free().
void shard_stmt_destroy | ( | void | ) |
Definition at line 557 of file shard_statement.c.
References t_shard_stmt::ctx_cid, t_shard_stmt::ctx_uid, FREE_MEM, i, t_shard_stmt_global::lru, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, t_shard_stmt_global::max_num_shard, t_shard_stmt_global::max_num_stmt, mht_destroy(), NULL, t_shard_stmt_global::num_cas_per_shard, t_shard_stmt::num_pinned, t_shard_stmt::parser, PROXY_DEBUG_LOG, PROXY_INVALID_CONTEXT, t_shard_stmt::reply_buffer, t_shard_stmt::reply_buffer_length, t_shard_stmt::request_buffer, t_shard_stmt::request_buffer_length, shard_queue_destroy(), SHARD_STMT_INVALID_HANDLE_ID, shard_stmt_lru_delete(), SHARD_STMT_STATUS_UNUSED, shard_str_stmt(), sp_destroy_parser(), t_shard_stmt::srv_h_id_ent, t_shard_stmt::status, t_shard_stmt_global::stmt_ent, t_shard_stmt::stmt_h_id, t_shard_stmt_global::stmt_map, and t_shard_stmt::waitq.
Referenced by proxy_term().
T_SHARD_STMT* shard_stmt_find_by_sql | ( | char * | sql_stmt, |
const char * | db_user, | ||
T_BROKER_VERSION | client_version | ||
) |
Definition at line 222 of file shard_statement.c.
References t_proxy_info::appl_server, APPL_SERVER_CAS_MYSQL, assert, t_shard_stmt::client_version, t_shard_stmt::database_user, t_shard_stmt::hash_next, mht_get(), NULL, t_shard_stmt::parser, shard_stmt_make_protocol_version(), SHARD_STMT_STATUS_INVALID, SHARD_STMT_STATUS_UNUSED, SHARD_STMT_TYPE_PREPARED, sp_get_sql_stmt(), t_shard_stmt::status, t_shard_stmt_global::stmt_map, and t_shard_stmt::stmt_type.
Referenced by fn_proxy_client_prepare(), and shard_stmt_new_internal().
T_SHARD_STMT* shard_stmt_find_by_stmt_h_id | ( | int | stmt_h_id | ) |
Definition at line 272 of file shard_statement.c.
References t_shard_stmt_global::max_num_stmt, NULL, SHARD_STMT_STATUS_UNUSED, t_shard_stmt::status, t_shard_stmt_global::stmt_ent, and t_shard_stmt::stmt_h_id.
Referenced by proxy_client_execute_internal(), proxy_context_free_stmt(), shard_stmt_add_srv_h_id_for_shard_cas(), shard_stmt_del_srv_h_id_for_shard_cas(), shard_stmt_find_srv_h_id_for_shard_cas(), and shard_stmt_set_status().
|
static |
Definition at line 169 of file shard_statement.c.
References NULL, and shard_stmt_pos_srv_h_id().
Referenced by shard_stmt_find_srv_h_id_for_shard_cas().
int shard_stmt_find_srv_h_id_for_shard_cas | ( | int | stmt_h_id, |
int | shard_id, | ||
int | cas_id | ||
) |
Definition at line 686 of file shard_statement.c.
References NULL, PROXY_LOG, PROXY_LOG_MODE_ERROR, PROXY_LOG_MODE_SHARD_DETAIL, shard_stmt_find_by_stmt_h_id(), shard_stmt_find_srv_h_id(), SHARD_STMT_INVALID_HANDLE_ID, and shard_str_stmt().
Referenced by fn_proxy_client_close_req_handle(), fn_proxy_client_cursor(), fn_proxy_client_cursor_close(), fn_proxy_client_fetch(), proxy_client_execute_internal(), and proxy_send_request_to_cas_with_new_event().
|
static |
Definition at line 289 of file shard_statement.c.
References i, t_shard_stmt_global::max_num_stmt, NULL, SHARD_STMT_STATUS_UNUSED, t_shard_stmt::status, and t_shard_stmt_global::stmt_ent.
Referenced by shard_stmt_new_internal().
void shard_stmt_free | ( | T_SHARD_STMT * | stmt_p | ) |
Definition at line 618 of file shard_statement.c.
References assert, t_shard_stmt::client_version, t_shard_stmt::ctx_cid, t_shard_stmt::ctx_uid, t_shard_stmt::database_user, ENTER_FUNC, EXIT_FUNC, FREE_MEM, t_shard_stmt::hash_next, t_shard_stmt::hash_prev, i, t_shard_stmt_global::lru, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, t_shard_stmt_global::max_num_shard, NULL, t_shard_stmt_global::num_cas_per_shard, t_shard_stmt::num_pinned, t_shard_stmt::parser, PROXY_DEBUG_LOG, PROXY_INVALID_CONTEXT, t_shard_stmt::reply_buffer, t_shard_stmt::reply_buffer_length, t_shard_stmt::request_buffer, t_shard_stmt::request_buffer_length, shard_queue_destroy(), shard_stmt_del_statement_from_map(), SHARD_STMT_INVALID_HANDLE_ID, shard_stmt_lru_delete(), SHARD_STMT_STATUS_UNUSED, SHARD_STMT_TYPE_PREPARED, shard_str_stmt(), sp_destroy_parser(), t_shard_stmt::srv_h_id_ent, t_shard_stmt::status, t_shard_stmt::stmt_h_id, t_shard_stmt::stmt_type, and t_shard_stmt::waitq.
Referenced by fn_proxy_cas_prepare(), fn_proxy_cas_prepare_and_execute(), fn_proxy_cas_schema_info(), fn_proxy_client_prepare(), fn_proxy_client_prepare_and_execute(), fn_proxy_client_schema_info(), proxy_context_clear(), proxy_context_free_stmt(), proxy_context_timeout(), and shard_stmt_new_internal().
int shard_stmt_get_hint_type | ( | T_SHARD_STMT * | stmt_p | ) |
Definition at line 854 of file shard_statement.c.
References assert, sp_parser_hint::hint_type, HT_INVAL, HT_NONE, NULL, t_shard_stmt::parser, PROXY_LOG, PROXY_LOG_MODE_ERROR, SHARD_STMT_TYPE_PREPARED, SHARD_STMT_TYPE_SCHEMA_INFO, sp_get_first_hint(), and t_shard_stmt::stmt_type.
Referenced by fn_proxy_client_prepare_and_execute(), and proxy_client_execute_internal().
|
static |
Definition at line 141 of file shard_statement.c.
References t_shard_stmt_global::lru.
Referenced by shard_stmt_new_internal().
int shard_stmt_initialize | ( | int | initial_size | ) |
Definition at line 1051 of file shard_statement.c.
References t_shard_stmt::client_version, t_shard_stmt::ctx_cid, t_shard_stmt::ctx_uid, t_shard_stmt::database_user, i, t_shard_stmt::index, t_shard_stmt_global::lru, t_shard_info::max_appl_server, t_shard_stmt_global::max_num_shard, t_shard_stmt_global::max_num_stmt, t_proxy_info::max_shard, mht_1strhash(), mht_compare_strings_are_equal(), mht_create(), t_shard_stmt_global::mru, NULL, t_shard_stmt_global::num_cas_per_shard, PROXY_INVALID_CONTEXT, PROXY_LOG, PROXY_LOG_MODE_ERROR, shard_shm_find_shard_info(), SHARD_STMT_INVALID_HANDLE_ID, shard_Stmt_max_num_alloc, t_shard_stmt::srv_h_id_ent, t_shard_stmt_global::stmt_ent, and t_shard_stmt_global::stmt_map.
Referenced by main().
|
static |
Definition at line 100 of file shard_statement.c.
References assert, ENTER_FUNC, EXIT_FUNC, t_shard_stmt_global::lru, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, t_shard_stmt_global::mru, NULL, PROXY_DEBUG_LOG, and shard_str_stmt().
Referenced by shard_stmt_destroy(), shard_stmt_free(), and shard_stmt_pin().
|
static |
Definition at line 72 of file shard_statement.c.
References assert, t_shard_stmt_global::lru, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, t_shard_stmt_global::mru, NULL, t_shard_stmt::num_pinned, PROXY_DEBUG_LOG, and shard_str_stmt().
Referenced by shard_stmt_unpin().
|
static |
Definition at line 198 of file shard_statement.c.
References CAS_MAKE_VER, CAS_PROTO_CURRENT_VER, CAS_PROTO_MAKE_VER, and PROTOCOL_V1.
Referenced by shard_stmt_find_by_sql(), and shard_stmt_new_internal().
T_SHARD_STMT* shard_stmt_new_exclusive | ( | char * | sql_stmt, |
int | ctx_cid, | ||
unsigned int | ctx_uid, | ||
T_BROKER_VERSION | client_version | ||
) |
Definition at line 548 of file shard_statement.c.
References NULL, shard_stmt_new_internal(), and SHARD_STMT_TYPE_EXCLUSIVE.
Referenced by fn_proxy_client_prepare(), and fn_proxy_client_prepare_and_execute().
|
static |
Definition at line 412 of file shard_statement.c.
References assert, t_shard_stmt::client_version, t_shard_stmt::ctx_cid, t_shard_stmt::ctx_uid, t_shard_stmt::database_user, t_proxy_context::database_user, error(), i, if(), t_shard_stmt::index, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, t_shard_stmt_global::max_num_shard, t_shard_stmt_global::max_num_stmt, NULL, t_shard_stmt::num_alloc, t_shard_stmt_global::num_cas_per_shard, t_shard_stmt::num_pinned, t_shard_stmt::parser, proxy_context_find(), PROXY_LOG, PROXY_LOG_MODE_ERROR, t_shard_stmt::reply_buffer, t_shard_stmt::reply_buffer_length, t_shard_stmt::request_buffer, t_shard_stmt::request_buffer_length, shard_queue_initialize(), shard_stmt_find_by_sql(), shard_stmt_find_unused(), shard_stmt_free(), shard_stmt_get_lru(), SHARD_STMT_INVALID_HANDLE_ID, shard_stmt_make_protocol_version(), shard_Stmt_max_num_alloc, shard_stmt_put_statement_to_map(), SHARD_STMT_STATUS_IN_PROGRESS, SHARD_STMT_TYPE_PREPARED, SHARD_STMT_TYPE_SCHEMA_INFO, shard_str_stmt(), sp_create_parser(), t_shard_stmt::srv_h_id_ent, t_shard_stmt::status, t_shard_stmt::stmt_h_id, t_shard_stmt::stmt_type, strncpy_bufsize, and t_shard_stmt::waitq.
Referenced by shard_stmt_new_exclusive(), shard_stmt_new_prepared_stmt(), and shard_stmt_new_schema_info().
T_SHARD_STMT* shard_stmt_new_prepared_stmt | ( | char * | sql_stmt, |
int | ctx_cid, | ||
unsigned int | ctx_uid, | ||
T_BROKER_VERSION | client_version | ||
) |
Definition at line 530 of file shard_statement.c.
References NULL, shard_stmt_new_internal(), and SHARD_STMT_TYPE_PREPARED.
Referenced by fn_proxy_client_prepare().
T_SHARD_STMT* shard_stmt_new_schema_info | ( | int | ctx_cid, |
unsigned int | ctx_uid | ||
) |
Definition at line 539 of file shard_statement.c.
References NULL, shard_stmt_new_internal(), and SHARD_STMT_TYPE_SCHEMA_INFO.
Referenced by fn_proxy_client_schema_info().
int shard_stmt_pin | ( | T_SHARD_STMT * | stmt_p | ) |
Definition at line 309 of file shard_statement.c.
References assert, error(), t_shard_stmt_global::lru, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, t_shard_stmt::num_pinned, PROXY_DEBUG_LOG, PROXY_LOG, PROXY_LOG_MODE_ERROR, shard_stmt_lru_delete(), SHARD_STMT_STATUS_UNUSED, shard_str_stmt(), and t_shard_stmt::status.
Referenced by proxy_context_add_stmt().
|
static |
Definition at line 147 of file shard_statement.c.
References assert, t_shard_stmt_global::max_num_shard, NULL, t_shard_stmt_global::num_cas_per_shard, PROXY_DEBUG_LOG, shard_str_stmt(), and t_shard_stmt::srv_h_id_ent.
Referenced by shard_stmt_del_all_srv_h_id_for_shard_cas(), shard_stmt_del_srv_h_id_for_shard_cas(), shard_stmt_find_srv_h_id(), and shard_stmt_set_srv_h_id().
|
static |
Definition at line 1438 of file shard_statement.c.
References t_shard_stmt::hash_next, t_shard_stmt::hash_prev, mht_get(), mht_put(), NULL, t_shard_stmt::parser, PROXY_DEBUG_LOG, shard_str_stmt(), sp_get_sql_stmt(), and t_shard_stmt_global::stmt_map.
Referenced by shard_stmt_new_internal().
char* shard_stmt_rewrite_sql | ( | bool * | has_shard_val_hint, |
char * | sql_stmt, | ||
char | appl_server | ||
) |
The 'shard_val(n)' is changed to 'shard_id(N)'. a minimum number of chipers of n is 1; a maximum number of chipers of N is 3; so length of organized sql can be larger than length of original sql.
Definition at line 1133 of file shard_statement.c.
References error(), HT_NONE, HT_VAL, NO_ERROR, NULL, p, shard_stmt_change_shard_val_to_id(), shard_stmt_write_buf_to_sql(), sp_get_hint_type(), sp_get_token_type(), sp_is_exist_pair_token(), sp_is_pair_token(), strlen, TT_CPP_COMMENT, TT_CSQL_COMMENT, TT_DOUBLE_QUOTED, TT_HINT, TT_NEWLINE, TT_NONE, TT_SINGLE_QUOTED, and TT_WHITESPACE.
Referenced by fn_proxy_client_prepare().
int shard_stmt_save_prepare_request | ( | T_SHARD_STMT * | stmt_p, |
bool | has_shard_val_hint, | ||
char ** | prepare_req, | ||
int * | prepare_req_len, | ||
char * | argv_sql_stmt, | ||
char * | argv_remainder, | ||
char * | orgzd_sql | ||
) |
Definition at line 888 of file shard_statement.c.
References assert, FREE_MEM, get_msg_length(), htonl(), i, t_shard_stmt::index, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, t_shard_stmt_global::max_num_shard, t_shard_stmt_global::max_num_stmt, MSG_HEADER_SIZE, net_arg_get_str(), NET_SIZE_INT, NULL, t_shard_stmt::num_alloc, t_shard_stmt_global::num_cas_per_shard, t_shard_stmt::num_pinned, proxy_dup_msg(), PROXY_LOG, PROXY_LOG_MODE_ERROR, t_shard_stmt::request_buffer, t_shard_stmt::request_buffer_length, set_data_length(), t_shard_stmt::status, t_shard_stmt_global::stmt_ent, t_shard_stmt::stmt_h_id, and strlen.
Referenced by fn_proxy_client_prepare().
int shard_stmt_set_hint_list | ( | T_SHARD_STMT * | stmt_p | ) |
Definition at line 806 of file shard_statement.c.
References assert, sp_parser_hint::hint_type, HT_ID, HT_KEY, HT_NONE, NULL, t_shard_stmt::parser, PROXY_LOG, PROXY_LOG_MODE_ERROR, SHARD_STMT_TYPE_PREPARED, SHARD_STMT_TYPE_SCHEMA_INFO, shard_str_stmt(), sp_get_first_hint(), sp_get_next_hint(), sp_parse_sql(), and t_shard_stmt::stmt_type.
Referenced by fn_proxy_client_prepare(), and fn_proxy_client_prepare_and_execute().
|
static |
Definition at line 183 of file shard_statement.c.
References NULL, and shard_stmt_pos_srv_h_id().
Referenced by shard_stmt_add_srv_h_id_for_shard_cas().
|
static |
Definition at line 1517 of file shard_statement.c.
References assert, NULL, shard_stmt_find_by_stmt_h_id(), SHARD_STMT_STATUS_COMPLETE, SHARD_STMT_STATUS_INVALID, and t_shard_stmt::status.
Referenced by shard_stmt_set_status_complete(), and shard_stmt_set_status_invalid().
void shard_stmt_set_status_complete | ( | int | stmt_h_id | ) |
Definition at line 1432 of file shard_statement.c.
References shard_stmt_set_status(), and SHARD_STMT_STATUS_COMPLETE.
Referenced by shard_stmt_add_srv_h_id_for_shard_cas().
void shard_stmt_set_status_invalid | ( | int | stmt_h_id | ) |
Definition at line 1426 of file shard_statement.c.
References shard_stmt_set_status(), and SHARD_STMT_STATUS_INVALID.
Referenced by fn_proxy_cas_prepare(), and proxy_cas_execute_internal().
int shard_stmt_unpin | ( | T_SHARD_STMT * | stmt_p | ) |
Definition at line 338 of file shard_statement.c.
References assert, error(), t_shard_stmt::num_pinned, PROXY_LOG, PROXY_LOG_MODE_ERROR, shard_stmt_lru_insert(), SHARD_STMT_STATUS_UNUSED, shard_str_stmt(), and t_shard_stmt::status.
Referenced by proxy_context_free_stmt().
|
static |
Definition at line 1380 of file shard_statement.c.
References APPL_SERVER_CAS, and i.
Referenced by shard_stmt_change_shard_val_to_id(), and shard_stmt_rewrite_sql().
char* shard_str_stmt | ( | T_SHARD_STMT * | stmt_p | ) |
Definition at line 1030 of file shard_statement.c.
References t_shard_stmt::ctx_cid, t_shard_stmt::ctx_uid, t_shard_stmt::database_user, t_shard_stmt::hash_next, t_shard_stmt::hash_prev, t_shard_stmt::index, t_shard_stmt::lru_next, t_shard_stmt::lru_prev, NULL, t_shard_stmt::num_alloc, t_shard_stmt::num_pinned, t_shard_stmt::parser, shard_str_sqls(), sp_parser_ctx::sql_stmt, t_shard_stmt::status, t_shard_stmt::stmt_h_id, and t_shard_stmt::stmt_type.
Referenced by fn_proxy_cas_prepare(), fn_proxy_cas_prepare_and_execute(), fn_proxy_cas_schema_info(), fn_proxy_client_prepare(), fn_proxy_client_prepare_and_execute(), fn_proxy_client_schema_info(), proxy_client_execute_internal(), proxy_context_add_stmt(), proxy_context_free_stmt(), shard_stmt_add_srv_h_id_for_shard_cas(), shard_stmt_check_waiter_and_wakeup(), shard_stmt_destroy(), shard_stmt_find_srv_h_id_for_shard_cas(), shard_stmt_free(), shard_stmt_lru_delete(), shard_stmt_lru_insert(), shard_stmt_new_internal(), shard_stmt_pin(), shard_stmt_pos_srv_h_id(), shard_stmt_put_statement_to_map(), shard_stmt_set_hint_list(), and shard_stmt_unpin().
T_PROXY_INFO* proxy_info_p |
Definition at line 48 of file shard_proxy.c.
Referenced by admin_reset_cmd(), br_inactivate(), broker_find_available_proxy(), broker_shm_initialize_shm_as(), cas_monitor_worker(), check_shard_conn(), client_monitor(), hang_check_thr_f(), metadata_monitor(), proxy_activate(), proxy_activate_internal(), proxy_check_worker(), proxy_monitor_thr_f(), psize_check_thr_f(), set_monitor_items(), shard_broker_process(), shard_shm_dump_proxy(), shard_shm_find_proxy_info(), shard_shm_initialize_shm_proxy(), shard_shm_set_param_proxy(), and shard_shm_set_param_proxy_internal().
T_SHARD_STMT_GLOBAL shard_Stmt |
Definition at line 67 of file shard_statement.c.
int shard_Stmt_max_num_alloc = SHARD_STMT_MAX_NUM_ALLOC |
Definition at line 69 of file shard_statement.c.
Referenced by shard_stmt_initialize(), and shard_stmt_new_internal().
T_SHM_SHARD_KEY* shm_key_p |
Definition at line 51 of file shard_proxy.c.
Referenced by admin_getid_cmd(), metadata_monitor(), shard_metadata_dump_internal(), shard_metadata_get_key(), shard_metadata_initialize(), shard_metadata_read_key(), and shard_shm_initialize_shm_proxy().