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
Public Attributes
Public Static Attributes
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
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
)
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
)
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
)
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 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