CUBRID Engine  latest
shard_proxy_function.h File Reference
#include "cas_net_buf.h"
#include "shard_proxy_common.h"
Include dependency graph for shard_proxy_function.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef int(* T_PROXY_CLIENT_FUNC) (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
typedef int(* T_PROXY_CAS_FUNC) (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 

Functions

int proxy_check_cas_error (char *read_msg)
 
int proxy_get_cas_error_code (char *read_msg, T_BROKER_VERSION client_version)
 
int proxy_send_request_to_cas (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int func_code)
 
int fn_proxy_client_end_tran (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_prepare (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_execute (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_set_db_parameter (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_get_db_parameter (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_close_req_handle (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_cursor (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_fetch (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_schema_info (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_check_cas (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_con_close (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_get_db_version (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_cursor_close (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_execute_array (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_get_shard_info (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_prepare_and_execute (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_client_not_supported (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)
 
int fn_proxy_cas_end_tran (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_prepare (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_execute (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_execute_array (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_fetch (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_schema_info (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_prepare_and_execute (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_check_cas (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_cas_relay_only (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int fn_proxy_client_conn_error (T_PROXY_CONTEXT *ctx_p)
 
int fn_proxy_cas_conn_error (T_PROXY_CONTEXT *ctx_p)
 
int proxy_send_response_to_client (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)
 
int proxy_send_response_to_client_with_new_event (T_PROXY_CONTEXT *ctx_p, unsigned int type, int from, T_PROXY_EVENT_FUNC resp_func)
 

Typedef Documentation

typedef int(* T_PROXY_CAS_FUNC) (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p)

Definition at line 33 of file shard_proxy_function.h.

typedef int(* T_PROXY_CLIENT_FUNC) (T_PROXY_CONTEXT *ctx_p, T_PROXY_EVENT *event_p, int argc, char **argv)

Definition at line 32 of file shard_proxy_function.h.

Function Documentation

int fn_proxy_cas_conn_error ( T_PROXY_CONTEXT ctx_p)

Definition at line 3912 of file shard_proxy_function.c.

int fn_proxy_cas_execute ( T_PROXY_CONTEXT ctx_p,
T_PROXY_EVENT event_p 
)

Definition at line 3279 of file shard_proxy_function.c.

References proxy_cas_execute_internal().

int fn_proxy_cas_execute_array ( T_PROXY_CONTEXT ctx_p,
T_PROXY_EVENT event_p 
)

Definition at line 3402 of file shard_proxy_function.c.

References proxy_cas_execute_internal().

int fn_proxy_client_execute_array ( T_PROXY_CONTEXT ctx_p,
T_PROXY_EVENT event_p,
int  argc,
char **  argv 
)
int fn_proxy_client_not_supported ( T_PROXY_CONTEXT ctx_p,
T_PROXY_EVENT event_p,
int  argc,
char **  argv 
)
int fn_proxy_client_prepare ( T_PROXY_CONTEXT ctx_p,
T_PROXY_EVENT event_p,
int  argc,
char **  argv 
)

this statement has been used previously. if we use it, we will get the corrupted result of statement.

Definition at line 891 of file shard_proxy_function.c.

References t_proxy_info::appl_server, argc, assert, t_proxy_event::buffer, CAS_ER_ARGS, CAS_ER_INTERNAL, CAS_ERROR_INDICATOR, CAS_FC_PREPARE, t_cas_io::cas_id, t_proxy_context::cas_id, CAS_MAKE_PROTO_VER, t_proxy_context::cid, t_proxy_context::client_id, t_shard_stmt::ctx_cid, t_shard_stmt::ctx_uid, t_io_buffer::data, t_proxy_context::database_user, ENTER_FUNC, error(), EXIT_FUNC, FALSE, t_proxy_context::free_context, FREE_MEM, t_proxy_context::func_code, i, t_proxy_info::ignore_shard_hint, t_shard_stmt::index, t_proxy_context::is_client_in_tran, t_proxy_context::is_in_tran, t_proxy_context::is_prepare_for_execute, t_io_buffer::length, net_arg_get_char, net_arg_get_int(), net_arg_get_str(), NULL, t_proxy_info::num_request_stmt, t_proxy_info::num_request_stmt_in_pool, OFF, t_shard_stmt::parser, t_proxy_context::prepared_stmt, proxy_cas_alloc_by_ctx(), proxy_cas_io_write(), proxy_context_add_stmt(), proxy_context_find_stmt(), proxy_context_set_error(), proxy_context_set_in_tran(), PROXY_DEBUG_LOG, proxy_event_dup(), proxy_event_free(), proxy_get_driver_info_by_ctx(), proxy_get_shard_id(), PROXY_INVALID_SHARD, PROXY_LOG, PROXY_LOG_MODE_ERROR, proxy_send_prepared_stmt_to_client(), proxy_set_force_out_tran(), proxy_str_context(), proxy_waiter_comp_fn(), proxy_waiter_free(), proxy_waiter_new(), t_cas_io::shard_id, t_proxy_context::shard_id, shard_queue_ordered_enqueue(), shard_stmt_check_waiter_and_wakeup(), shard_stmt_find_by_sql(), shard_stmt_free(), shard_stmt_new_exclusive(), shard_stmt_new_prepared_stmt(), shard_stmt_rewrite_sql(), shard_stmt_save_prepare_request(), shard_stmt_set_hint_list(), SHARD_STMT_STATUS_COMPLETE, SHARD_STMT_STATUS_IN_PROGRESS, SHARD_STMT_TYPE_PREPARED, shard_str_sqls(), shard_str_stmt(), SHARD_TEMPORARY_UNAVAILABLE, sp_is_hint_static(), t_shard_stmt::status, t_shard_stmt::stmt_h_id, t_shard_stmt::stmt_type, t_proxy_info::stmt_waiter_count, t_proxy_context::uid, t_proxy_context::wait_timeout, t_proxy_context::waiting_dummy_prepare, t_proxy_context::waiting_event, and t_shard_stmt::waitq.

int fn_proxy_client_prepare_and_execute ( T_PROXY_CONTEXT ctx_p,
T_PROXY_EVENT event_p,
int  argc,
char **  argv 
)

Definition at line 2616 of file shard_proxy_function.c.

References assert, t_proxy_event::buffer, CAS_ER_ARGS, CAS_ER_INTERNAL, CAS_ERROR_INDICATOR, CAS_FC_PREPARE_AND_EXECUTE, t_cas_io::cas_id, t_proxy_context::cas_id, CAS_MAKE_PROTO_VER, CAS_PROTO_MAKE_VER, t_proxy_context::cid, t_proxy_context::client_id, t_io_buffer::data, DOES_CLIENT_UNDERSTAND_THE_PROTOCOL, error(), EXIT_FUNC, FALSE, t_proxy_context::free_context, t_proxy_context::func_code, HT_EOF, HT_INVAL, i, t_proxy_info::ignore_shard_hint, t_proxy_context::is_client_in_tran, net_arg_get_char, net_arg_get_int(), net_arg_get_str(), NULL, OFF, t_proxy_context::prepared_stmt, PROTOCOL_V1, PROTOCOL_V2, proxy_cas_alloc_by_ctx(), proxy_cas_io_write(), proxy_context_add_stmt(), proxy_context_set_error(), proxy_context_set_in_tran(), PROXY_DEBUG_LOG, proxy_event_dup(), proxy_event_free(), proxy_get_driver_info_by_ctx(), proxy_get_shard_id(), PROXY_INVALID_SHARD, PROXY_LOG, PROXY_LOG_MODE_ERROR, proxy_set_wait_timeout(), proxy_str_context(), proxy_update_shard_stats(), proxy_update_shard_stats_without_hint(), query_timeout, t_cas_io::shard_id, t_proxy_context::shard_id, shard_stmt_check_waiter_and_wakeup(), shard_stmt_free(), shard_stmt_get_hint_type(), shard_stmt_new_exclusive(), shard_stmt_set_hint_list(), SHARD_STMT_TYPE_EXCLUSIVE, SHARD_STMT_TYPE_SCHEMA_INFO, shard_str_sqls(), shard_str_stmt(), SHARD_TEMPORARY_UNAVAILABLE, t_shard_stmt::stmt_h_id, t_proxy_context::stmt_h_id, t_proxy_context::stmt_hint_type, t_shard_stmt::stmt_type, t_proxy_context::uid, t_proxy_context::wait_timeout, and t_proxy_context::waiting_event.

int proxy_check_cas_error ( char *  read_msg)
int proxy_get_cas_error_code ( char *  read_msg,
T_BROKER_VERSION  client_version 
)