118 #if !defined(WINDOWS) 164 db_init (
const char *program,
int print_version,
const char *
dbname,
const char *db_path,
const char *vol_path,
165 const char *log_path,
const char *lob_path,
const char *host_name,
const bool overwrite,
const char *comments,
166 const char *addmore_vols_file,
int npages,
int desired_pagesize,
int log_npages,
int desired_log_page_size,
169 #if defined (CUBRID_DEBUG) 171 const char *env_value;
172 char more_vol_info_temp_file[L_tmpnam];
174 const char *more_vol_info_file =
NULL;
181 #if defined (CUBRID_DEBUG) 182 if (addmore_vols_file ==
NULL)
185 env_value =
envvar_get (
"BOSR_SPLIT_INIT_VOLUME");
186 if (env_value !=
NULL)
188 value = atoi (env_value);
200 db_npages = npages / 4;
202 if (tmpnam (more_vol_info_temp_file) !=
NULL && (more_vols_fp = fopen (more_vol_info_temp_file,
"w")) !=
NULL)
204 fprintf (more_vols_fp,
"%s %s %s %d",
"PURPOSE",
"DATA",
"NPAGES", db_npages);
205 fprintf (more_vols_fp,
"%s %s %s %d",
"PURPOSE",
"INDEX",
"NPAGES", db_npages);
206 fprintf (more_vols_fp,
"%s %s %s %d",
"PURPOSE",
"TEMP",
"NPAGES", db_npages);
207 fclose (more_vols_fp);
209 if ((db_npages * 4) != npages)
211 npages = npages - (db_npages * 4);
218 addmore_vols_file = more_vol_info_file = more_vol_info_temp_file;
224 if (desired_pagesize > 0)
240 if (desired_log_page_size > 0)
253 desired_log_page_size = desired_pagesize;
261 db_path_info.
db_path = (
char *) db_path;
262 db_path_info.
vol_path = (
char *) vol_path;
263 db_path_info.
log_path = (
char *) log_path;
264 db_path_info.
lob_path = (
char *) lob_path;
265 db_path_info.
db_host = (
char *) host_name;
268 error =
boot_initialize_client (&client_credential, &db_path_info, (
bool) overwrite, addmore_vols_file, npages,
272 if (more_vol_info_file !=
NULL)
274 remove (more_vol_info_file);
314 db_add_volume (
const char *ext_path,
const char *ext_name,
const char *ext_comments,
const int ext_npages,
319 ext_info.
path = ext_path;
320 ext_info.
name = ext_name;
324 ext_info.
purpose = ext_purpose;
382 return ((
int) retval);
434 const char *name =
NULL;
443 return ((
char *) name);
473 char *remarks =
NULL;
474 const char *comment =
NULL;
582 for (
size_t i = 0;
i < DIM (db_Host_status_list.
hostlist);
i++)
606 host_status = &db_Host_status_list.
hostlist[
i];
607 if (strcmp (hostname, host_status->
hostname) == 0)
632 host_status = &db_Host_status_list.
hostlist[idx];
634 strncpy (host_status->
hostname, hostname, sizeof (host_status->
hostname) - 1);
655 if (host_status !=
NULL)
686 if (connected_host_status !=
NULL)
722 host_status = &db_Host_status_list.
hostlist[
i];
778 int i, num_hosts = 0;
780 for (i = 0; i <= db_Host_status_list.
last_host_idx && i < list_size; i++)
787 hostlist[num_hosts] =
NULL;
808 retval =
au_login (name, password,
false);
813 #if !defined(WINDOWS) 824 void (*prev_sig) (int);
830 #
if defined(SIG_HOLD)
835 (*prev_sigfpe_handler) (sig);
868 db_restart (
const char *program,
int print_version,
const char *volume)
873 if (program ==
NULL || volume ==
NULL)
888 client_credential.
db_name = volume;
904 #if !defined(WINDOWS) 905 #if defined(SA_MODE) && (defined(LINUX) || defined(x86_SOLARIS)) 935 const char *preferred_hosts,
int client_type)
939 retval =
au_login (db_user, db_password,
false);
949 if (preferred_hosts !=
NULL)
972 #if !defined(WINDOWS) 988 #if defined (CS_MODE) 1214 if (savepoint_name ==
NULL)
1269 if (global_transaction_id <= 0 || info ==
NULL || size <= 0)
1302 if (global_transaction_id <= 0 || buffer ==
NULL || size <= 0)
1329 int global_transaction_id;
1336 return (global_transaction_id);
1380 if (gtrids ==
NULL || size <= 0)
1557 int lock_timeout_in_msecs = -1;
1562 if (lock_timeout_in_msecs > 0)
1564 *lock_wait = lock_timeout_in_msecs / 1000;
1568 *lock_wait = lock_timeout_in_msecs;
1805 retval =
au_grant (user, class_, auth, (
bool) grant_option);
1832 retval =
au_revoke (user, class_mop, auth);
1921 return ((
char *) name);
1935 char *username =
NULL;
1950 len = (int)
strlen (hostname) + (int)
strlen (username) + 2;
1959 strcpy (user, username);
1961 strcat (user, hostname);
2230 for (count = 0; objects[
count] !=
NULL; count++)
2265 if (object_array !=
NULL)
2267 for (object_list = objects, i = 0; object_list !=
NULL; object_list = object_list->
next, i++)
2269 object_array[
i] = object_list->
op;
2271 object_array[len] =
NULL;
2275 for (i = 0; i < len; i++)
2276 object_array[i] =
NULL;
2322 buf_size = (max + 1) *
sizeof (
DB_OBJECT *);
2323 mops = (
DB_OBJECT **) malloc (buf_size);
2332 for (i = 0; i < max && error ==
NO_ERROR; i++)
2355 for (i = 0; i <
max; i++)
2457 if (volume_label ==
NULL)
2478 va_list variable_argument;
2485 va_start (variable_argument, name1);
2488 while (name !=
NULL)
2498 name = va_arg (variable_argument,
const char *);
2500 va_end (variable_argument);
2527 if (methods !=
NULL)
2529 for (method_link = methods; method_link->
method !=
NULL; method_link++)
2550 if (methods !=
NULL)
2552 for (method_link = methods; method_link->
method !=
NULL; method_link++)
2792 memset (data, 0, len);
2810 #if defined(CS_MODE) 2811 return boot_get_host_connected ();
2813 return (
char *)
"localhost";
2830 #if defined(CS_MODE) 2831 ha_state = boot_get_ha_server_state ();
2890 char *server_session_key;
int tran_savepoint_internal(const char *savept_name, SAVEPOINT_TYPE savepoint_type)
DKNPAGES disk_get_total_numpages(VOLID volid)
db_error_log_handler_t db_register_error_log_handler(db_error_log_handler_t f)
int au_find_user_to_drop(const char *user_name, MOP *user)
void db_set_interrupt(int set)
int db_set_system_parameters_for_ha_repl(const char *data)
char db_Program_name[PATH_MAX]
#define CHECK_MODIFICATION_ERROR()
void db_print_stats(void)
bool db_need_ignore_repl_delay(void)
int db_check_authorization_and_grant_option(MOP op, DB_AUTH auth)
#define DB_ROW_COUNT_NOT_SET
int db_2pc_prepare_to_commit_transaction(int global_transaction_id)
#define CHECK_CONNECT_FALSE()
void db_set_client_type(int client_type)
void tran_reset_latest_query_status(void)
void db_get_tran_settings(int *lock_wait, DB_TRAN_ISOLATION *tran_isolation)
MOP ws_mop(const OID *oid, MOP class_mop)
#define CHECK_2ARGS_ERROR(obj1, obj2)
int db_login(const char *name, const char *password)
DB_OBJECT * db_get_owner(DB_OBJECT *class_obj)
void tran_get_tran_settings(int *lock_wait_in_msecs, TRAN_ISOLATION *tran_isolation, bool *async_ws)
DB_OBJECT * db_real_instance(DB_OBJECT *obj)
DB_OBJECT * db_object(DB_IDENTIFIER *oid)
int db_set_password(DB_OBJECT *user, const char *old_passwd, const char *new_passwd)
MOBJ locator_fetch_set(int num_mops, MOP *mop_set, DB_FETCH_MODE inst_purpose, DB_FETCH_MODE class_purpose, int quit_on_errors)
enum db_client_type BOOT_CLIENT_TYPE
int db_init(const char *program, int print_version, const char *dbname, const char *db_path, const char *vol_path, const char *log_path, const char *lob_path, const char *host_name, const bool overwrite, const char *comments, const char *addmore_vols_file, int npages, int desired_pagesize, int log_npages, int desired_log_page_size, const char *lang_charset)
int db_totalpgs(const char *volume_label)
SESSION_ID db_get_session_id(void)
int tran_get_global_tran_info(int gtrid, void *buffer, int size)
void(* prev_sigfpe_handler)(int)
VOLID fileio_find_volume_id_with_label(THREAD_ENTRY *thread_p, const char *vol_label_p)
int db_set_suppress_repl_on_transaction(int set)
void sm_delete_static_method(const char *name)
void db_clear_delayed_hosts_count(void)
int sysprm_set_error(SYSPRM_ERR rc, const char *data)
DB_HOST_STATUS * connected_host_status
int db_abort_to_savepoint_internal(const char *savepoint_name)
bool tran_has_updated(void)
int au_revoke(MOP user, MOP class_mop, DB_AUTH type)
int db_set_system_parameters(const char *data)
int do_check_partitioned_class(DB_OBJECT *classop, int check_map, char *keyattr)
int db_freepgs(const char *volume_label)
void db_clear_host_status(void)
VOLID boot_find_last_permanent(void)
int tran_2pc_prepare_global_tran(int gtrid)
int db_reset_latest_query_status(void)
bool au_is_dba_group_member(MOP user)
void db_free_execution_plan(void)
DB_OBJECT * db_find_user(const char *name)
int locator_get_cache_coherency_number(MOP mop)
int db_2pc_prepared_transactions(int gtrids[], int size)
char * db_get_server_session_key(void)
char hostname[CUB_MAXHOSTNAMELEN]
int csession_get_row_count(int *rows)
int db_fetch_seq(DB_SEQ *seq, DB_FETCH_MODE purpose, int quit_on_error)
void locator_synch_isolation_incons(void)
char * db_vol_label(int volid, char *vol_fullname)
int sm_prelink_methods(DB_OBJLIST *classes)
int jsp_jvm_is_loaded(void)
void db_string_free(char *string)
static int db_Max_num_delayed_hosts_lookup
void sysprm_free_assign_values(SYSPRM_ASSIGN_VALUE **assign_values_ptr)
int set_size(DB_COLLECTION *set)
SYSPRM_ERR sysprm_obtain_parameters(char *data, SYSPRM_ASSIGN_VALUE **prm_values_ptr)
void(* db_error_log_handler_t)(unsigned int)
int db_chn(DB_OBJECT *obj, DB_FETCH_MODE purpose)
void db_ws_free(void *ptr)
bool db_disable_trigger(void)
int db_set_lock_timeout(int seconds)
int er_init(const char *msglog_filename, int exit_ask)
const char * rel_build_number(void)
int db_get_global_transaction_info(int global_transaction_id, void *buffer, int size)
int db_savepoint_transaction_internal(const char *savepoint_name)
void db_set_preferred_hosts(const char *hosts)
int db_lock_read(DB_OBJECT *op)
const char * db_error_string_test(int level)
char * db_get_host_connected(void)
void db_force_method_reload(MOP obj)
int db_get_host_list_with_given_status(char **hostlist, int list_size, int status)
int db_get_system_parameters(char *data, int len)
int csession_get_variable(DB_VALUE *name, DB_VALUE *value)
#define DB_HS_RECONNECT_INDICATOR
int boot_restart_client(BOOT_CLIENT_CREDENTIAL *client_credential)
#define DB_CONNECTION_STATUS_CONNECTED
INTL_CODESET lang_charset(void)
int db_lock_write(DB_OBJECT *op)
int tran_reset_wait_times(int wait_in_msecs)
int db_restart(const char *program, int print_version, const char *volume)
static DB_HOST_STATUS * db_find_host_status(char *hostname)
#define DB_CONNECT_ORDER_SEQ
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
int db_restart_ex(const char *program, const char *db_name, const char *db_user, const char *db_password, const char *preferred_hosts, int client_type)
db_client_type client_type
int boot_initialize_client(BOOT_CLIENT_CREDENTIAL *client_credential, BOOT_DB_PATH_INFO *db_path_info, bool db_overwrite, const char *file_addmore_vols, DKNPAGES npages, PGLENGTH db_desired_pagesize, DKNPAGES log_npages, PGLENGTH db_desired_log_page_size, const char *lang_charset)
int prm_get_integer_value(PARAM_ID prm_id)
MOP au_add_user(const char *name, int *exists)
int au_fetch_class(MOP op, SM_CLASS **class_ptr, AU_FETCHMODE fetchmode, DB_AUTH type)
char * db_get_database_name(void)
int obj_lock(MOP op, int for_write)
DB_IDENTIFIER * db_identifier(DB_OBJECT *obj)
#define CHECK_MODIFICATION_NULL()
char * db_get_user_and_host_name(void)
static void install_static_methods(void)
#define ER_OUT_OF_VIRTUAL_MEMORY
static int db_Delayed_hosts_count
int tran_2pc_prepare(void)
#define CHECK_1ARG_ERROR(obj)
void db_objlist_free(DB_OBJLIST *list)
int au_set_password(MOP user, const char *password)
int db_error_code_test(void)
const char * css_ha_server_state_string(HA_SERVER_STATE state)
int tran_commit(bool retain_lock)
int db_get_ha_server_state(char *buffer, int maxlen)
void locator_set_sig_interrupt(int set)
int sysprm_print_assign_values(SYSPRM_ASSIGN_VALUE *prm_values, char *buffer, int length)
#define DB_MAX_IDENTIFIER_LENGTH
int au_drop_member(MOP group, MOP member)
const char * db_error_string(int level)
void sm_flush_static_methods()
#define CHECK_1ARG_NULL(obj)
int db_Disable_modifications
int db_get_delayed_hosts_count(void)
char * disk_get_remarks(VOLID volid)
DB_OBJECT * db_get_object(const DB_VALUE *value)
int db_abort_to_savepoint(const char *savepoint_name)
void sm_add_static_method(const char *name, void(*function)())
int db_fetch_set(DB_SET *set, DB_FETCH_MODE purpose, int quit_on_error)
int db_reset_system_parameters_from_assignments(const char *data)
int db_abort_transaction(void)
void db_link_static_methods(DB_METHOD_LINK *methods)
int db_grant(MOP user, MOP class_, AU_TYPE auth, int grant_option)
char * disk_get_fullname(VOLID volid, char *vol_fullname)
void db_update_row_count_cache(const int row_count)
static void cleanup(int signo)
int au_add_member(MOP group, MOP member)
int db_drop_member(DB_OBJECT *user, DB_OBJECT *member)
#define strncpy_bufsize(buf, str)
const char * er_msg(void)
MOP au_find_user(const char *user_name)
void db_clear_host_connected(void)
char * boot_get_server_session_key(void)
int db_enable_modification(void)
SYSPRM_ERR sysprm_change_server_parameters(const SYSPRM_ASSIGN_VALUE *assignments)
int db_savepoint_transaction(const char *savepoint_name)
int csession_get_last_insert_id(DB_VALUE *value, bool update_last_insert_id)
int boot_find_number_permanent_volumes(void)
bool db_need_reconnect(void)
SYSPRM_ERR sysprm_validate_change_parameters(const char *data, bool check, SYSPRM_ASSIGN_VALUE **assignments_ptr)
MOBJ locator_fetch_nested(MOP mop, DB_FETCH_MODE purpose, int prune_level, int quit_on_errors)
void boot_set_server_session_key(const char *key)
int log_set_suppress_repl_on_transaction(int set)
#define db_private_alloc(thrd, size)
int set_get_element(DB_COLLECTION *set, int index, DB_VALUE *value)
int db_drop_user(DB_OBJECT *user)
char * db_get_user_name(void)
int au_grant(MOP user, MOP class_mop, DB_AUTH type, bool grant_option)
int count(int &result, const cub_regex_object ®, const std::string &src, const int position, const INTL_CODESET codeset)
#define IO_DEFAULT_PAGE_SIZE
DB_OBJECT * db_get_user(void)
int db_set_isolation(DB_TRAN_ISOLATION isolation)
int db_fetch_list(DB_OBJLIST *objects, DB_FETCH_MODE purpose, int quit_on_error)
int db_2pc_attach_transaction(int global_transaction_id)
int db_fetch_array(DB_OBJECT **objects, DB_FETCH_MODE purpose, int quit_on_error)
#define CHECK_CONNECT_ZERO_TYPE(TYPE)
void db_set_connected_host_status(char *host_connected)
static int db_Client_type
void db_set_server_session_key(const char *key)
SYSPRM_ERR sysprm_make_default_values(const char *data, char *default_val_buf, const int buf_size)
int tran_reset_isolation(TRAN_ISOLATION isolation, bool async_ws)
const char * envvar_get(const char *name)
static void error(const char *msg)
const char * db_get_database_comments(void)
int ml_add(DB_OBJLIST **list, MOP mop, int *added_ptr)
int db_2pc_prepare_transaction(void)
#define CHECK_PARTITION_SUBS
void db_flush_static_methods(void)
MOP au_get_class_owner(MOP classmop)
#define CHECK_CONNECT_NULL()
static int db_Connect_order
int db_add_volume_ex(DBDEF_VOL_EXT_INFO *ext_info)
er_log_handler_t er_register_log_handler(er_log_handler_t handler)
int tran_2pc_attach_global_tran(int gtrid)
void db_set_max_num_delayed_hosts_lookup(int max_num_delayed_hosts_lookup)
void au_link_static_methods(void)
int net_client_ping_server(int client_val, int *server_val, int timeout)
char * boot_get_host_name(void)
#define CHECK_MODIFICATION_MINUSONE()
void db_unlink_static_methods(DB_METHOD_LINK *methods)
bool db_does_connected_host_have_status(int status)
int sm_force_method_link(MOP obj)
int db_get_client_type(void)
static char * db_Preferred_hosts
int db_disable_modification(void)
int boot_shutdown_client(bool is_er_final)
void sysprm_change_parameter_values(const SYSPRM_ASSIGN_VALUE *assignments, bool check, bool set_flag)
#define free_and_init(ptr)
char * db_get_database_version(void)
int csession_find_or_create_session(SESSION_ID *session_id, int *row_count, char *server_session_key, const char *db_user, const char *host, const char *program_name)
int tran_abort_upto_user_savepoint(const char *savepoint_name)
int db_fetch_composition(DB_OBJECT *object, DB_FETCH_MODE purpose, int max_level, int quit_on_error)
#define ER_OBJ_INVALID_ARGUMENTS
#define TM_TRAN_ASYNC_WS()
int db_get_row_count_cache(void)
int db_add_volume(const char *ext_path, const char *ext_name, const char *ext_comments, const int ext_npages, const DB_VOLPURPOSE ext_purpose)
int db_set_user_comment(DB_OBJECT *user, const char *comment)
bool tr_set_execution_state(bool new_state)
void ml_ext_free(DB_OBJLIST *list)
VOLID boot_add_volume_extension(DBDEF_VOL_EXT_INFO *ext_info)
int db_set_global_transaction_info(int global_transaction_id, void *info, int size)
void db_warnspace(const char *volume_label)
OID * ws_identifier_with_check(MOP mop, const bool check_non_referable)
int db_get_variable(DB_VALUE *name, DB_VALUE *value)
static DB_HOST_STATUS * db_add_host_status(char *hostname, int status)
void(* er_log_handler_t)(unsigned int)
DKNPAGES disk_get_free_numpages(VOLID volid)
bool db_enable_trigger(void)
#define CHECK_CONNECT_ZERO()
int au_login(const char *name, const char *password, bool ignore_dba_privilege)
#define DB_VALUE_TYPE(value)
static DB_HOST_STATUS_LIST db_Host_status_list
int db_find_or_create_session(const char *db_user, const char *program_name)
DB_OBJECT * db_add_user(const char *name, int *exists)
char * strdup(const char *str)
char db_Database_name[DB_MAX_IDENTIFIER_LENGTH+1]
DB_HOST_STATUS hostlist[MAX_NUM_DB_HOSTS *2]
void db_set_session_id(const SESSION_ID session_id)
int db_value_clear(DB_VALUE *value)
int db_get_max_num_delayed_hosts_lookup(void)
static int fetch_set_internal(DB_SET *set, DB_FETCH_MODE purpose, int quit_on_error)
int csession_end_session(SESSION_ID session_id)
int db_revoke(MOP user, MOP class_mop, AU_TYPE auth)
MOP sm_find_class(const char *name)
enum ha_server_state HA_SERVER_STATE
int tran_2pc_recovery_prepared(int gtrids[], int size)
void sigfpe_handler(int sig)
char * ws_copy_string(const char *str)
int db_commit_is_needed(void)
int db_get_row_count(int *row_count)
const char * au_user_name(void)
const char * program_name
#define CUB_MAXHOSTNAMELEN
void db_set_host_status(char *hostname, int status)
void db_set_connect_order(int connect_order)
int db_add_member(DB_OBJECT *user, DB_OBJECT *member)
METHOD_LINK_FUNCTION function
void db_preload_classes(const char *name1,...)
int au_drop_user(MOP user)
int db_check_authorization(MOP op, DB_AUTH auth)
int db_list_length(DB_LIST *list)
#define CHECK_CONNECT_VOID()
SYSPRM_ERR sysprm_obtain_server_parameters(SYSPRM_ASSIGN_VALUE **prm_values_ptr)
int db_ping_server(int client_val, int *server_val)
#define CHECK_CONNECT_MINUSONE()
int db_2pc_start_transaction(void)
int db_get_last_insert_id(DB_VALUE *value)
int db_error_init(const char *logfile)
SIGNAL_HANDLER_FUNCTION os_set_signal_handler(const int sig_no, SIGNAL_HANDLER_FUNCTION sig_handler)
#define DB_CONNECTION_STATUS_NOT_CONNECTED
#define GETHOSTNAME(p, l)
void db_synchronize_cache(void)
int au_set_user_comment(MOP user, const char *comment)
int tran_set_global_tran_info(int gtrid, void *info, int size)
int db_commit_transaction(void)
#define CHECK_CONNECT_ERROR()
void boot_clear_host_connected(void)
int db_find_user_to_drop(const char *name, DB_OBJECT **user)