Skip to content

File shard_proxy_function.c

FileList > broker > shard_proxy_function.c

Go to the source code of this file

  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <assert.h>
  • #include <math.h>
  • #include "porting.h"
  • #include "shard_proxy.h"
  • #include "shard_proxy_handler.h"
  • #include "shard_proxy_function.h"
  • #include "shard_statement.h"
  • #include "shard_parser.h"
  • #include "shard_key_func.h"
  • #include "broker_cas_cci.h"

Public Attributes

Type Name
T_PROXY_CONTEXT proxy_Context
T_PROXY_HANDLER proxy_Handler
T_PROXY_INFO * proxy_info_p
T_SHM_SHARD_KEY * shm_key_p

Public Functions

Type Name
int fn_proxy_cas_check_cas (T_PROXY_CONTEXT * ctx_p, T_PROXY_EVENT * event_p)
int fn_proxy_cas_conn_error (T_PROXY_CONTEXT * ctx_p)
int fn_proxy_cas_end_tran (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_prepare (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_relay_only (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_client_check_cas (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_con_close (T_PROXY_CONTEXT * ctx_p, T_PROXY_EVENT * event_p, int argc, char ** argv)
int fn_proxy_client_conn_error (T_PROXY_CONTEXT * ctx_p)
int fn_proxy_client_cursor (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_end_tran (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_execute_array (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_get_db_parameter (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_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)
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_schema_info (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_get_shard_info (T_PROXY_CONTEXT * ctx_p, T_PROXY_EVENT * event_p, int argc, char ** argv)
int make_header_info (T_NET_BUF * net_buf, MSG_HEADER * client_msg_header)
int make_net_buf (T_NET_BUF * net_buf, int size)
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 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)

Public Static Functions

Type Name
int proxy_cas_execute_internal (T_PROXY_CONTEXT * ctx_p, T_PROXY_EVENT * event_p)
int proxy_client_execute_internal (T_PROXY_CONTEXT * ctx_p, T_PROXY_EVENT * event_p, int argc, char ** argv, char _func_code, int query_timeout, int bind_value_index)
T_SHARD_KEY_RANGE * proxy_get_range_by_param (SP_PARSER_HINT * hint_p, void ** argv)
int proxy_get_shard_id (T_SHARD_STMT * stmt_p, void ** argv, T_SHARD_KEY_RANGE ** range_p_out)
bool proxy_has_different_column_info (const char * r1, size_t r1_len, const char * r2, size_t r2_len)
bool proxy_is_invalid_statement (int error_ind, int error_code, char * driver_info, T_BROKER_VERSION client_version)
int proxy_send_prepared_stmt_to_client (T_PROXY_CONTEXT * ctx_p, T_SHARD_STMT * stmt_p)
int proxy_send_request_to_cas_with_new_event (T_PROXY_CONTEXT * ctx_p, unsigned int type, int from, T_PROXY_EVENT_FUNC req_func)
int proxy_send_request_to_cas_with_stored_server_handle_id (T_PROXY_CONTEXT * ctx_p, T_PROXY_EVENT * event_p, int argc, char ** argv)
void proxy_set_wait_timeout (T_PROXY_CONTEXT * ctx_p, int query_timeout)
void proxy_update_shard_stats (T_SHARD_STMT * stmt_p, T_SHARD_KEY_RANGE * range_p)
void proxy_update_shard_stats_without_hint (int shard_id)

Public Attributes Documentation

variable proxy_Context

T_PROXY_CONTEXT proxy_Context;

variable proxy_Handler

T_PROXY_HANDLER proxy_Handler;

variable proxy_info_p

T_PROXY_INFO* proxy_info_p;

variable shm_key_p

T_SHM_SHARD_KEY* shm_key_p;

Public Functions Documentation

function fn_proxy_cas_check_cas

int fn_proxy_cas_check_cas (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_conn_error

int fn_proxy_cas_conn_error (
    T_PROXY_CONTEXT * ctx_p
) 

function fn_proxy_cas_end_tran

int fn_proxy_cas_end_tran (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_execute

int fn_proxy_cas_execute (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_execute_array

int fn_proxy_cas_execute_array (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_fetch

int fn_proxy_cas_fetch (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_prepare

int fn_proxy_cas_prepare (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_prepare_and_execute

int fn_proxy_cas_prepare_and_execute (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_relay_only

int fn_proxy_cas_relay_only (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_cas_schema_info

int fn_proxy_cas_schema_info (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function fn_proxy_client_check_cas

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

function fn_proxy_client_close_req_handle

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

function fn_proxy_client_con_close

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

function fn_proxy_client_conn_error

int fn_proxy_client_conn_error (
    T_PROXY_CONTEXT * ctx_p
) 

function fn_proxy_client_cursor

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

function fn_proxy_client_cursor_close

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

function fn_proxy_client_end_tran

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

function fn_proxy_client_execute

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

function fn_proxy_client_execute_array

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

function fn_proxy_client_fetch

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

function fn_proxy_client_get_db_parameter

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

function fn_proxy_client_get_db_version

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

function fn_proxy_client_not_supported

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

function fn_proxy_client_prepare

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

function fn_proxy_client_prepare_and_execute

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

function fn_proxy_client_schema_info

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

function fn_proxy_client_set_db_parameter

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

function fn_proxy_get_shard_info

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

function make_header_info

int make_header_info (
    T_NET_BUF * net_buf,
    MSG_HEADER * client_msg_header
) 

function make_net_buf

int make_net_buf (
    T_NET_BUF * net_buf,
    int size
) 

function proxy_check_cas_error

int proxy_check_cas_error (
    char * read_msg
) 

function proxy_get_cas_error_code

int proxy_get_cas_error_code (
    char * read_msg,
    T_BROKER_VERSION client_version
) 

function proxy_send_request_to_cas

int proxy_send_request_to_cas (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p,
    int func_code
) 

function proxy_send_response_to_client

int proxy_send_response_to_client (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function proxy_send_response_to_client_with_new_event

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
) 

Public Static Functions Documentation

function proxy_cas_execute_internal

static int proxy_cas_execute_internal (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p
) 

function proxy_client_execute_internal

static int proxy_client_execute_internal (
    T_PROXY_CONTEXT * ctx_p,
    T_PROXY_EVENT * event_p,
    int argc,
    char ** argv,
    char _func_code,
    int query_timeout,
    int bind_value_index
) 

function proxy_get_range_by_param

static T_SHARD_KEY_RANGE * proxy_get_range_by_param (
    SP_PARSER_HINT * hint_p,
    void ** argv
) 

function proxy_get_shard_id

static int proxy_get_shard_id (
    T_SHARD_STMT * stmt_p,
    void ** argv,
    T_SHARD_KEY_RANGE ** range_p_out
) 

function proxy_has_different_column_info

static bool proxy_has_different_column_info (
    const  char * r1,
    size_t r1_len,
    const  char * r2,
    size_t r2_len
) 

function proxy_is_invalid_statement

static bool proxy_is_invalid_statement (
    int error_ind,
    int error_code,
    char * driver_info,
    T_BROKER_VERSION client_version
) 

function proxy_send_prepared_stmt_to_client

static int proxy_send_prepared_stmt_to_client (
    T_PROXY_CONTEXT * ctx_p,
    T_SHARD_STMT * stmt_p
) 

function proxy_send_request_to_cas_with_new_event

static int proxy_send_request_to_cas_with_new_event (
    T_PROXY_CONTEXT * ctx_p,
    unsigned  int type,
    int from,
    T_PROXY_EVENT_FUNC req_func
) 

function proxy_send_request_to_cas_with_stored_server_handle_id

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

function proxy_set_wait_timeout

static void proxy_set_wait_timeout (
    T_PROXY_CONTEXT * ctx_p,
    int query_timeout
) 

function proxy_update_shard_stats

static void proxy_update_shard_stats (
    T_SHARD_STMT * stmt_p,
    T_SHARD_KEY_RANGE * range_p
) 

function proxy_update_shard_stats_without_hint

static void proxy_update_shard_stats_without_hint (
    int shard_id
) 


The documentation for this class was generated from the following file cubrid/src/broker/shard_proxy_function.c