Skip to content

File db_vdb.c

FileList > compat > db_vdb.c

Go to the source code of this file

  • #include "config.h"
  • #include <stdlib.h>
  • #include <string.h>
  • #include <stdarg.h>
  • #include <sys/timeb.h>
  • #include <time.h>
  • #include <assert.h>
  • #include "authenticate.h"
  • #include "db.h"
  • #include "dbi.h"
  • #include "db_query.h"
  • #include "error_manager.h"
  • #include "chartype.h"
  • #include "system_parameter.h"
  • #include "environment_variable.h"
  • #include "memory_alloc.h"
  • #include "parser.h"
  • #include "parser_message.h"
  • #include "object_domain.h"
  • #include "object_primitive.h"
  • #include "schema_manager.h"
  • #include "view_transform.h"
  • #include "execute_statement.h"
  • #include "locator_cl.h"
  • #include "server_interface.h"
  • #include "db_session.h"
  • #include "network_interface_cl.h"
  • #include "transaction_cl.h"
  • #include "dbtype.h"
  • #include "util_func.h"
  • #include "xasl.h"
  • #include "query_cl.h"

Public Types

Type Name
enum db__vdb_8c_1af3520ff6d43011872bab77edd27d4de3

Public Attributes

Type Name
int g_open_buffer_control_flags = 0

Public Static Attributes

Type Name
struct timeb base_client_timeb = { 0, 0, 0, 0 }
struct timeb base_server_timeb = { 0, 0, 0, 0 }

Public Functions

Type Name
int db_bind_parameter_name (const char * name, DB_VALUE * value)
int db_check_single_query (DB_SESSION * session)
void db_close_session (DB_SESSION * session)
void db_close_session_local (DB_SESSION * session)
int db_compile_and_execute_local (const char * CSQL_query, void * result, DB_QUERY_ERROR * query_error)
int db_compile_and_execute_queries_internal (const char * CSQL_query, void * result, DB_QUERY_ERROR * query_error, int include_oid, int execute, bool is_new_statement)
int db_compile_statement (DB_SESSION * session)
int db_compile_statement_local (DB_SESSION * session)
void db_drop_all_statements (DB_SESSION * session)
void db_drop_statement (DB_SESSION * session, int stmt)
int db_execute_and_keep_statement (DB_SESSION * session, int stmt_ndx, DB_QUERY_RESULT ** result)
int db_execute_statement (DB_SESSION * session, int stmt_ndx, DB_QUERY_RESULT ** result)
int db_execute_statement_local (DB_SESSION * session, int stmt_ndx, DB_QUERY_RESULT ** result)
void db_free_query (DB_SESSION * session)
DB_OBJLIST * db_get_all_vclasses (void)
DB_OBJLIST * db_get_all_vclasses_on_ldb (void)
bool db_get_cacheinfo (DB_SESSION * session, int stmt_ndx, bool * use_plan_cache, bool * use_query_cache)
DB_SESSION_ERROR * db_get_errors (DB_SESSION * session)
DB_VALUE * db_get_hostvars (DB_SESSION * session)
DB_MARKER * db_get_input_markers (DB_SESSION * session, int stmt)
bool db_get_jdbccachehint (DB_SESSION * session, int stmt_ndx, int * life_time)
int db_get_line_col_of_1st_error (DB_SESSION * session, DB_QUERY_ERROR * linecol)
int db_get_line_of_statement (DB_SESSION * session, int stmt_id)
char ** db_get_lock_classes (DB_SESSION * session)
DB_SESSION_ERROR * db_get_next_error (DB_SESSION_ERROR * errors, int * line, int * col)
DB_SESSION_WARNING * db_get_next_warning (DB_SESSION_WARNING * warnings, int * line, int * col)
DB_MARKER * db_get_output_markers (DB_SESSION * session, int stmt)
DB_PARAMETER * db_get_parameters (DB_SESSION * session, int statement_id)
int db_get_parser_line_col (DB_SESSION * session, int * line, int * col)
DB_QUERY_TYPE * db_get_query_type_list (DB_SESSION * session, int stmt_ndx)
DB_QUERY_TYPE * db_get_query_type_ptr (DB_QUERY_RESULT * result)
int db_get_start_line (DB_SESSION * session, int stmt)
DB_NODE * db_get_statement (DB_SESSION * session, int id)
int db_get_statement_type (DB_SESSION * session, int stmt)
DB_SESSION_WARNING * db_get_warnings (DB_SESSION * session)
DB_CLASS_MODIFICATION_STATUS db_has_modified_class (DB_SESSION * session, int stmt_id)
void db_include_oid (DB_SESSION * session, int include_oid)
void db_init_lexer_lineno ()
void db_invalidate_mvcc_snapshot_before_statement (void)
bool db_is_input_marker (DB_MARKER * marker)
bool db_is_output_marker (DB_MARKER * marker)
DB_SESSION * db_make_session_for_one_statement_execution (FILE * file)
DB_DOMAIN * db_marker_domain (DB_MARKER * marker)
int db_marker_index (DB_MARKER * marker)
DB_MARKER * db_marker_next (DB_MARKER * marker)
int db_number_of_input_markers (DB_SESSION * session, int stmt)
int db_number_of_output_markers (DB_SESSION * session, int stmt)
DB_SESSION * db_open_buffer (const char * buffer)
int db_open_buffer_and_compile_first_statement (const char * CSQL_query, DB_QUERY_ERROR * query_error, int include_oid, DB_SESSION ** session, int * stmt_no)
DB_SESSION * db_open_buffer_local (const char * buffer)
DB_SESSION * db_open_file (FILE * file)
DB_SESSION * db_open_file_name (const char * name)
const char * db_parameter_name (DB_PARAMETER * param)
DB_PARAMETER * db_parameter_next (DB_PARAMETER * param)
int db_parse_one_statement (DB_SESSION * session)
int db_push_values (DB_SESSION * session, int count, DB_VALUE * in_values)
int db_query_produce_updatable_result (DB_SESSION * session, int stmt_ndx)
void db_rewind_statement (DB_SESSION * session)
int db_session_is_last_statement (DB_SESSION * session)
void db_session_set_holdable (DB_SESSION * session, bool holdable)
void db_session_set_return_generated_keys (DB_SESSION * session, bool return_generated_keys)
void db_session_set_xasl_cache_pinned (DB_SESSION * session, bool is_pinned, bool recompile)
int db_set_client_cache_time (DB_SESSION * session, int stmt_ndx, CACHE_TIME * cache_time)
void db_set_read_fetch_instance_version (LC_FETCH_VERSION_TYPE read_Fetch_Instance_Version)
int db_set_statement_auto_commit (DB_SESSION * session, bool auto_commit)
int db_set_system_generated_statement (DB_SESSION * session)
int db_statement_count (DB_SESSION * session)
int db_validate (DB_OBJECT * vc)
int db_validate_query_spec (DB_OBJECT * vclass, const char * query_spec)

Public Static Functions

Type Name
PT_NODE * char_array_to_name_list (PARSER_CONTEXT * parser, char ** names, int length)
void copy_execution_values (EXECUTION_STATE_VALUES * source, EXECUTION_STATE_VALUES * destination)
void db_calculate_current_server_time (PARSER_CONTEXT * parser)
void db_calculate_current_time (struct timeb * tb)
bool db_can_execute_statement_with_autocommit (PARSER_CONTEXT * parser, PT_NODE * statement)
bool db_check_limit_need_recompile (PARSER_CONTEXT * parser, PT_NODE * statement, int xasl_flag)
bool db_check_where_need_recompile (PARSER_CONTEXT * parser, PT_NODE * statement, int xasl_flag)
int db_execute_and_keep_statement_local (DB_SESSION * session, int stmt_ndx, DB_QUERY_RESULT ** result)
DB_OBJLIST * db_get_all_chosen_classes (int(*)(MOBJ o) p)
DB_SESSION * db_open_local (void)
void db_set_base_server_time (DB_VALUE * db_val)
int do_cast_host_variables_to_expected_domain (DB_SESSION * session)
PT_NODE * do_execute_cte_pre (PARSER_CONTEXT * parser, PT_NODE * stmt, void * arg, int * continue_walk)
PT_NODE * do_execute_subquery_pre (PARSER_CONTEXT * parser, PT_NODE * stmt, void * arg, int * continue_walk)
int do_get_prepared_statement_info (DB_SESSION * session, int stmt_idx, int * subquery_num, DB_PREPARE_SUBQUERY_INFO ** subquery_info)
int do_process_deallocate_prepare (DB_SESSION * session, PT_NODE * statement)
int do_process_prepare_statement (DB_SESSION * session, PT_NODE * statement)
PT_NODE * do_process_prepare_subquery_pre (PARSER_CONTEXT * parser, PT_NODE * stmt, void * arg, int * continue_walk)
int do_recompile_and_execute_prepared_statement (DB_SESSION * session, PT_NODE * statement, DB_QUERY_RESULT ** result)
int do_set_user_host_variables (DB_SESSION * session, PT_NODE * using_list)
int get_dimension_of (PT_NODE ** array)
char * get_reasonable_predicate (DB_ATTRIBUTE * att, char * predicate, int predicate_buf_sz)
DB_SESSION * initialize_session (DB_SESSION * session)
bool is_allowed_as_prepared_statement (PT_NODE * node)
bool is_allowed_as_prepared_statement_with_hv (PT_NODE * node)
int is_vclass_object (MOBJ class_)
DB_CLASS_MODIFICATION_STATUS pt_has_modified_class (PARSER_CONTEXT * parser, PT_NODE * statement)
PT_NODE * pt_has_modified_class_helper (PARSER_CONTEXT * parser, PT_NODE * tree, void * arg, int * continue_walk)
int set_prepare_info_into_list (DB_PREPARE_INFO * prepare_info, PT_NODE * statement)
DB_PREPARE_SUBQUERY_INFO * set_prepare_subquery_info (PT_NODE * query, DB_PREPARE_SUBQUERY_INFO * info, int num_query)
void update_execution_values (PARSER_CONTEXT * parser, int result, CUBRID_STMT_TYPE statement_type)
int values_list_to_values_array (PARSER_CONTEXT * parser, PT_NODE * values_list, DB_VALUE_ARRAY * values_array)

Macros

Type Name
define BUF_SIZE 1024
define MAX_SERVER_TIME_CACHE 60 /\* [**secs**](broker__monitor_8c.md#function-timeout) \*/

Public Types Documentation

enum db__vdb_8c_1af3520ff6d43011872bab77edd27d4de3

enum db__vdb_8c_1af3520ff6d43011872bab77edd27d4de3 {
    StatementInitialStage = 0,
    StatementCompiledStage,
    StatementPreparedStage,
    StatementExecutedStage
};

Public Attributes Documentation

variable g_open_buffer_control_flags

int g_open_buffer_control_flags;

Public Static Attributes Documentation

variable base_client_timeb

struct timeb base_client_timeb;

variable base_server_timeb

struct timeb base_server_timeb;

Public Functions Documentation

function db_bind_parameter_name

int db_bind_parameter_name (
    const  char * name,
    DB_VALUE * value
) 

function db_check_single_query

int db_check_single_query (
    DB_SESSION * session
) 

function db_close_session

void db_close_session (
    DB_SESSION * session
) 

function db_close_session_local

void db_close_session_local (
    DB_SESSION * session
) 

function db_compile_and_execute_local

int db_compile_and_execute_local (
    const  char * CSQL_query,
    void * result,
    DB_QUERY_ERROR * query_error
) 

function db_compile_and_execute_queries_internal

int db_compile_and_execute_queries_internal (
    const  char * CSQL_query,
    void * result,
    DB_QUERY_ERROR * query_error,
    int include_oid,
    int execute,
    bool is_new_statement
) 

function db_compile_statement

int db_compile_statement (
    DB_SESSION * session
) 

function db_compile_statement_local

int db_compile_statement_local (
    DB_SESSION * session
) 

function db_drop_all_statements

void db_drop_all_statements (
    DB_SESSION * session
) 

function db_drop_statement

void db_drop_statement (
    DB_SESSION * session,
    int stmt
) 

function db_execute_and_keep_statement

int db_execute_and_keep_statement (
    DB_SESSION * session,
    int stmt_ndx,
    DB_QUERY_RESULT ** result
) 

function db_execute_statement

int db_execute_statement (
    DB_SESSION * session,
    int stmt_ndx,
    DB_QUERY_RESULT ** result
) 

function db_execute_statement_local

int db_execute_statement_local (
    DB_SESSION * session,
    int stmt_ndx,
    DB_QUERY_RESULT ** result
) 

function db_free_query

void db_free_query (
    DB_SESSION * session
) 

function db_get_all_vclasses

DB_OBJLIST * db_get_all_vclasses (
    void
) 

function db_get_all_vclasses_on_ldb

DB_OBJLIST * db_get_all_vclasses_on_ldb (
    void
) 

function db_get_cacheinfo

bool db_get_cacheinfo (
    DB_SESSION * session,
    int stmt_ndx,
    bool * use_plan_cache,
    bool * use_query_cache
) 

function db_get_errors

DB_SESSION_ERROR * db_get_errors (
    DB_SESSION * session
) 

function db_get_hostvars

DB_VALUE * db_get_hostvars (
    DB_SESSION * session
) 

function db_get_input_markers

DB_MARKER * db_get_input_markers (
    DB_SESSION * session,
    int stmt
) 

function db_get_jdbccachehint

bool db_get_jdbccachehint (
    DB_SESSION * session,
    int stmt_ndx,
    int * life_time
) 

function db_get_line_col_of_1st_error

int db_get_line_col_of_1st_error (
    DB_SESSION * session,
    DB_QUERY_ERROR * linecol
) 

function db_get_line_of_statement

int db_get_line_of_statement (
    DB_SESSION * session,
    int stmt_id
) 

function db_get_lock_classes

char ** db_get_lock_classes (
    DB_SESSION * session
) 

function db_get_next_error

DB_SESSION_ERROR * db_get_next_error (
    DB_SESSION_ERROR * errors,
    int * line,
    int * col
) 

function db_get_next_warning

DB_SESSION_WARNING * db_get_next_warning (
    DB_SESSION_WARNING * warnings,
    int * line,
    int * col
) 

function db_get_output_markers

DB_MARKER * db_get_output_markers (
    DB_SESSION * session,
    int stmt
) 

function db_get_parameters

DB_PARAMETER * db_get_parameters (
    DB_SESSION * session,
    int statement_id
) 

function db_get_parser_line_col

int db_get_parser_line_col (
    DB_SESSION * session,
    int * line,
    int * col
) 

function db_get_query_type_list

DB_QUERY_TYPE * db_get_query_type_list (
    DB_SESSION * session,
    int stmt_ndx
) 

function db_get_query_type_ptr

DB_QUERY_TYPE * db_get_query_type_ptr (
    DB_QUERY_RESULT * result
) 

function db_get_start_line

int db_get_start_line (
    DB_SESSION * session,
    int stmt
) 

function db_get_statement

DB_NODE * db_get_statement (
    DB_SESSION * session,
    int id
) 

function db_get_statement_type

int db_get_statement_type (
    DB_SESSION * session,
    int stmt
) 

function db_get_warnings

DB_SESSION_WARNING * db_get_warnings (
    DB_SESSION * session
) 

function db_has_modified_class

DB_CLASS_MODIFICATION_STATUS db_has_modified_class (
    DB_SESSION * session,
    int stmt_id
) 

function db_include_oid

void db_include_oid (
    DB_SESSION * session,
    int include_oid
) 

function db_init_lexer_lineno

void db_init_lexer_lineno () 

function db_invalidate_mvcc_snapshot_before_statement

void db_invalidate_mvcc_snapshot_before_statement (
    void
) 

function db_is_input_marker

bool db_is_input_marker (
    DB_MARKER * marker
) 

function db_is_output_marker

bool db_is_output_marker (
    DB_MARKER * marker
) 

function db_make_session_for_one_statement_execution

DB_SESSION * db_make_session_for_one_statement_execution (
    FILE * file
) 

function db_marker_domain

DB_DOMAIN * db_marker_domain (
    DB_MARKER * marker
) 

function db_marker_index

int db_marker_index (
    DB_MARKER * marker
) 

function db_marker_next

DB_MARKER * db_marker_next (
    DB_MARKER * marker
) 

function db_number_of_input_markers

int db_number_of_input_markers (
    DB_SESSION * session,
    int stmt
) 

function db_number_of_output_markers

int db_number_of_output_markers (
    DB_SESSION * session,
    int stmt
) 

function db_open_buffer

DB_SESSION * db_open_buffer (
    const  char * buffer
) 

function db_open_buffer_and_compile_first_statement

int db_open_buffer_and_compile_first_statement (
    const  char * CSQL_query,
    DB_QUERY_ERROR * query_error,
    int include_oid,
    DB_SESSION ** session,
    int * stmt_no
) 

function db_open_buffer_local

DB_SESSION * db_open_buffer_local (
    const  char * buffer
) 

function db_open_file

DB_SESSION * db_open_file (
    FILE * file
) 

function db_open_file_name

DB_SESSION * db_open_file_name (
    const  char * name
) 

function db_parameter_name

const  char * db_parameter_name (
    DB_PARAMETER * param
) 

function db_parameter_next

DB_PARAMETER * db_parameter_next (
    DB_PARAMETER * param
) 

function db_parse_one_statement

int db_parse_one_statement (
    DB_SESSION * session
) 

function db_push_values

int db_push_values (
    DB_SESSION * session,
    int count,
    DB_VALUE * in_values
) 

function db_query_produce_updatable_result

int db_query_produce_updatable_result (
    DB_SESSION * session,
    int stmt_ndx
) 

function db_rewind_statement

void db_rewind_statement (
    DB_SESSION * session
) 

function db_session_is_last_statement

int db_session_is_last_statement (
    DB_SESSION * session
) 

function db_session_set_holdable

void db_session_set_holdable (
    DB_SESSION * session,
    bool holdable
) 

function db_session_set_return_generated_keys

void db_session_set_return_generated_keys (
    DB_SESSION * session,
    bool return_generated_keys
) 

function db_session_set_xasl_cache_pinned

void db_session_set_xasl_cache_pinned (
    DB_SESSION * session,
    bool is_pinned,
    bool recompile
) 

function db_set_client_cache_time

int db_set_client_cache_time (
    DB_SESSION * session,
    int stmt_ndx,
    CACHE_TIME * cache_time
) 

function db_set_read_fetch_instance_version

void db_set_read_fetch_instance_version (
    LC_FETCH_VERSION_TYPE read_Fetch_Instance_Version
) 

function db_set_statement_auto_commit

int db_set_statement_auto_commit (
    DB_SESSION * session,
    bool auto_commit
) 

function db_set_system_generated_statement

int db_set_system_generated_statement (
    DB_SESSION * session
) 

function db_statement_count

int db_statement_count (
    DB_SESSION * session
) 

function db_validate

int db_validate (
    DB_OBJECT * vc
) 

function db_validate_query_spec

int db_validate_query_spec (
    DB_OBJECT * vclass,
    const  char * query_spec
) 

Public Static Functions Documentation

function char_array_to_name_list

static PT_NODE * char_array_to_name_list (
    PARSER_CONTEXT * parser,
    char ** names,
    int length
) 

function copy_execution_values

static void copy_execution_values (
    EXECUTION_STATE_VALUES * source,
    EXECUTION_STATE_VALUES * destination
) 

function db_calculate_current_server_time

static void db_calculate_current_server_time (
    PARSER_CONTEXT * parser
) 

function db_calculate_current_time

static void db_calculate_current_time (
    struct  timeb * tb
) 

function db_can_execute_statement_with_autocommit

static bool db_can_execute_statement_with_autocommit (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function db_check_limit_need_recompile

static bool db_check_limit_need_recompile (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    int xasl_flag
) 

function db_check_where_need_recompile

static bool db_check_where_need_recompile (
    PARSER_CONTEXT * parser,
    PT_NODE * statement,
    int xasl_flag
) 

function db_execute_and_keep_statement_local

static int db_execute_and_keep_statement_local (
    DB_SESSION * session,
    int stmt_ndx,
    DB_QUERY_RESULT ** result
) 

function db_get_all_chosen_classes

static DB_OBJLIST * db_get_all_chosen_classes (
    int (*)( MOBJ o) p
) 

function db_open_local

static DB_SESSION * db_open_local (
    void
) 

function db_set_base_server_time

static void db_set_base_server_time (
    DB_VALUE * db_val
) 

function do_cast_host_variables_to_expected_domain

static int do_cast_host_variables_to_expected_domain (
    DB_SESSION * session
) 

function do_execute_cte_pre

static PT_NODE * do_execute_cte_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt,
    void * arg,
    int * continue_walk
) 

function do_execute_subquery_pre

static PT_NODE * do_execute_subquery_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt,
    void * arg,
    int * continue_walk
) 

function do_get_prepared_statement_info

static int do_get_prepared_statement_info (
    DB_SESSION * session,
    int stmt_idx,
    int * subquery_num,
    DB_PREPARE_SUBQUERY_INFO ** subquery_info
) 

function do_process_deallocate_prepare

static int do_process_deallocate_prepare (
    DB_SESSION * session,
    PT_NODE * statement
) 

function do_process_prepare_statement

static int do_process_prepare_statement (
    DB_SESSION * session,
    PT_NODE * statement
) 

function do_process_prepare_subquery_pre

static PT_NODE * do_process_prepare_subquery_pre (
    PARSER_CONTEXT * parser,
    PT_NODE * stmt,
    void * arg,
    int * continue_walk
) 

function do_recompile_and_execute_prepared_statement

static int do_recompile_and_execute_prepared_statement (
    DB_SESSION * session,
    PT_NODE * statement,
    DB_QUERY_RESULT ** result
) 

function do_set_user_host_variables

static int do_set_user_host_variables (
    DB_SESSION * session,
    PT_NODE * using_list
) 

function get_dimension_of

static int get_dimension_of (
    PT_NODE ** array
) 

function get_reasonable_predicate

static char * get_reasonable_predicate (
    DB_ATTRIBUTE * att,
    char * predicate,
    int predicate_buf_sz
) 

function initialize_session

static DB_SESSION * initialize_session (
    DB_SESSION * session
) 

function is_allowed_as_prepared_statement

static bool is_allowed_as_prepared_statement (
    PT_NODE * node
) 

function is_allowed_as_prepared_statement_with_hv

static bool is_allowed_as_prepared_statement_with_hv (
    PT_NODE * node
) 

function is_vclass_object

static int is_vclass_object (
    MOBJ class_
) 

function pt_has_modified_class

static DB_CLASS_MODIFICATION_STATUS pt_has_modified_class (
    PARSER_CONTEXT * parser,
    PT_NODE * statement
) 

function pt_has_modified_class_helper

static PT_NODE * pt_has_modified_class_helper (
    PARSER_CONTEXT * parser,
    PT_NODE * tree,
    void * arg,
    int * continue_walk
) 

function set_prepare_info_into_list

static int set_prepare_info_into_list (
    DB_PREPARE_INFO * prepare_info,
    PT_NODE * statement
) 

function set_prepare_subquery_info

static DB_PREPARE_SUBQUERY_INFO * set_prepare_subquery_info (
    PT_NODE * query,
    DB_PREPARE_SUBQUERY_INFO * info,
    int num_query
) 

function update_execution_values

static void update_execution_values (
    PARSER_CONTEXT * parser,
    int result,
    CUBRID_STMT_TYPE statement_type
) 

function values_list_to_values_array

static int values_list_to_values_array (
    PARSER_CONTEXT * parser,
    PT_NODE * values_list,
    DB_VALUE_ARRAY * values_array
) 

Macro Definition Documentation

define BUF_SIZE

#define BUF_SIZE `1024`

define MAX_SERVER_TIME_CACHE

#define MAX_SERVER_TIME_CACHE `60   /* secs */`


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