102 #if defined (SUPPRESS_STRLEN_WARNING) 103 #define strlen(s1) ((int) strlen(s1)) 112 #define BOOT_FORMAT_MAX_LENGTH 500 115 #define BOOT_NO_OPT_CAP 0 116 #define BOOT_CHECK_HA_DELAY_CAP NET_CAP_HA_REPL_DELAY 137 {(char) 0xFF, (
char) 0xFF, (char) 0xFF, (
char) 0xFF, (char) 0xFF, (
char) 0xFF, (char) 0xFF,
168 static int boot_client_initialize_css (
DB_INFO * db,
int client_type,
bool check_capabilities,
int opt_cap,
169 bool discriminative,
int connect_order,
bool is_preferred_host);
291 const char *file_addmore_vols,
DKNPAGES npages,
PGLENGTH db_desired_pagesize,
298 int tran_lock_wait_msecs;
302 #if !defined(WINDOWS) 303 bool dl_initialized =
false;
305 const char *hosts[2];
306 #if defined (CS_MODE) 348 if (client_credential->
db_name.empty ())
414 #if !defined (CUBRID_OWFS) 426 length = (
unsigned int) (client_credential->
db_name.length () +
strlen (db_path_info->
db_path) + 2);
427 if (length > (
unsigned) PATH_MAX)
431 client_credential->
get_db_name (), length, PATH_MAX);
455 hosts[0] = db_path_info->
db_host;
474 if (client_credential->
db_user.empty ())
477 int upper_case_name_size;
478 char *upper_case_name;
480 if (user_name !=
NULL)
483 upper_case_name = (
char *) malloc (upper_case_name_size + 1);
484 if (upper_case_name ==
NULL)
487 (
size_t) (upper_case_name_size + 1));
492 client_credential->
db_user = upper_case_name;
496 upper_case_name =
NULL;
498 if (client_credential->
db_user.empty ())
516 if (client_credential->
host_name.empty ())
525 #if !defined(WINDOWS) 526 #if !defined (SOLARIS) && !defined(LINUX) && !defined(AIX) 531 dl_initialized =
true;
558 if (tran_lock_wait_msecs > 0)
560 tran_lock_wait_msecs = tran_lock_wait_msecs * 1000;
573 db_desired_pagesize, log_npages, db_desired_log_page_size, &rootclass_oid, &rootclass_hfid,
574 tran_lock_wait_msecs, tran_isolation);
639 boot_client (tran_index, tran_lock_wait_msecs, tran_isolation);
640 #if defined (CS_MODE) 644 (void) fprintf (stdout, format,
rel_name ());
688 #if !defined(WINDOWS) 689 if (dl_initialized ==
true)
692 dl_initialized =
false;
708 memset (&boot_Server_credential, 0,
sizeof (boot_Server_credential));
742 int tran_lock_wait_msecs;
746 #if !defined(WINDOWS) 747 bool dl_initialized =
false;
751 const char *hosts[2];
756 char *ha_node_list =
NULL;
757 bool check_capabilities;
758 bool skip_preferred_hosts =
false;
759 bool skip_db_info =
false;
845 ptr = (
char *) strstr (client_credential->
get_db_name (),
"@");
876 ha_node_list = ptr + 1;
911 if (client_credential->
db_user.empty ())
940 if (client_credential->
host_name.empty ())
950 #if !defined(WINDOWS) 951 #if !defined (SOLARIS) && !defined(LINUX) && !defined(AIX) 956 dl_initialized =
true;
969 for (i = 0; i < 2; i++)
976 check_capabilities =
true;
987 check_capabilities =
false;
1010 boot_Host_connected[0] =
'\0';
1014 boot_client_initialize_css (tmp_db, client_credential->
client_type, check_capabilities,
1022 "boot_restart_client: boot_client_initialize_css () ER_NET_SERVER_HAND_SHAKE\n");
1024 boot_Host_connected[0] =
'\0';
1028 skip_preferred_hosts =
true;
1036 if (skip_db_info ==
true)
1050 check_capabilities =
true;
1061 boot_client_initialize_css (db, client_credential->
client_type, check_capabilities,
1062 optional_cap,
false, client_credential->
connect_order,
false);
1068 check_capabilities =
false;
1072 boot_client_initialize_css (db, client_credential->
client_type, check_capabilities,
1080 check_capabilities =
true;
1085 check_capabilities =
false;
1090 boot_client_initialize_css (db, client_credential->
client_type, check_capabilities,
1091 optional_cap,
false, client_credential->
connect_order,
false);
1098 check_capabilities =
false;
1101 boot_client_initialize_css (db, client_credential->
client_type, check_capabilities,
1102 optional_cap,
false, client_credential->
connect_order,
false);
1120 skip_db_info =
true;
1137 #if defined(WINDOWS) 1174 "boot_restart_client: register client { type %d db %s user %s password %s " 1175 "program %s login %s host %s pid %d }\n", client_credential->
client_type,
1183 boot_register_client (client_credential, tran_lock_wait_msecs, tran_isolation, &transtate, &boot_Server_credential);
1192 #if defined(CS_MODE) 1227 boot_client (tran_index, tran_lock_wait_msecs, tran_isolation);
1249 #if defined(CS_MODE) 1250 error_code = boot_check_locales (client_credential);
1256 error_code = boot_check_timezone_checksum (client_credential);
1268 if (boot_Server_credential.
lob_path[0] !=
'\0')
1298 if (tran_lock_wait_msecs >= 0)
1308 json_set_alloc_funcs (malloc, free);
1352 #if !defined(WINDOWS) 1353 if (dl_initialized ==
true)
1356 dl_initialized =
false;
1367 #if defined(WINDOWS) 1371 memset (&boot_Server_credential, 0,
sizeof (boot_Server_credential));
1431 #if defined(CS_MODE) 1434 #if defined(WINDOWS) 1514 #if defined(CS_MODE) 1548 if (boot_Server_credential.
lob_path)
1552 if (boot_Server_credential.
db_lang)
1569 #if !defined(WINDOWS) 1589 #if defined(WINDOWS) 1597 memset (&boot_Server_credential, 0,
sizeof (boot_Server_credential));
1606 #if defined(CS_MODE) 1622 boot_client_initialize_css (
DB_INFO * db,
int client_type,
bool check_capabilities,
int opt_cap,
bool discriminative,
1623 int connect_order,
bool is_preferred_host)
1629 bool cap_error =
false, boot_host_connected_exist =
false;
1630 int max_num_delayed_hosts_lookup;
1652 memset (hostlist, 0,
sizeof (hostlist));
1655 if (boot_Host_connected[0] !=
'\0')
1657 boot_host_connected_exist =
true;
1658 hostlist[hn++] = boot_Host_connected;
1662 hostlist[hn++] = db->
hosts[n];
1667 if (boot_Host_connected[0] !=
'\0')
1680 for (n = 0; n < hn; n++)
1708 if (boot_Host_connected != hostlist[n])
1752 && max_num_delayed_hosts_lookup > 0)
1755 if (boot_host_connected_exist ==
true && n == 0)
1773 strcat (strbuf,
":");
1778 if (check_capabilities ==
true && cap_error ==
true)
1802 char domain_string[32];
1804 const char *index_col_names[2] = {
"class_name",
NULL };
2005 char domain_string[32];
2007 const char *index_col_names[4] = {
"class_of",
"attr_name",
"attr_type",
NULL };
2121 char domain_string[32];
2123 const char *index_col_names[2] = {
"object_of",
NULL };
2228 char domain_string[32];
2230 const char *names[3] = {
"class_of",
"meth_name",
NULL };
2311 char domain_string[32];
2313 const char *names[2] = {
"meth_of",
NULL };
2388 char domain_string[32];
2390 const char *index_col_names[2] = {
"meth_sig_of",
NULL };
2460 const char *index_col_names[2] = {
"class_of",
NULL };
2522 const char *index_col_names[2] = {
"class_of",
NULL };
2577 char domain_string[32];
2579 const char *index_col_names[2] = {
"class_of",
NULL };
2698 const char *index_col_names[2] = {
"index_of",
NULL };
2790 const char *index_col_names[2] = {
"grantee",
NULL };
2864 const char *index_col_names[] = {
"class_of",
"pname",
NULL };
2950 "INTEGER",
"FLOAT",
"DOUBLE",
"STRING",
"OBJECT",
2951 "SET",
"MULTISET",
"SEQUENCE",
"ELO",
"TIME",
2952 "TIMESTAMP",
"DATE",
"MONETARY",
NULL ,
NULL ,
2953 NULL , NULL ,
"SHORT", NULL ,
2955 NULL ,
"NUMERIC",
"BIT",
"VARBIT",
"CHAR",
2956 "NCHAR",
"VARNCHAR", NULL , NULL ,
2958 "BIGINT",
"DATETIME",
2959 "BLOB",
"CLOB",
"ENUM",
2960 "TIMESTAMPTZ",
"TIMESTAMPLTZ",
"DATETIMETZ",
"DATETIMELTZ",
2967 if (names[i] !=
NULL)
3053 char args_string[64];
3055 const char *index_col_names[2] = {
"sp_name",
NULL };
3154 const char *index_col_names[2] = {
"sp_name",
NULL };
3233 char domain_string[32];
3237 const char *index_col_names[] = {
"name",
NULL };
3327 error_code =
smt_add_class_method (def,
"change_serial_owner",
"au_change_serial_owner_method");
3420 const char *index_col_names[] = {
"db_name",
"copied_log_path",
NULL };
3664 int count_collations;
3720 assert (found_coll == count_collations);
3815 #define CT_DBCHARSET_CHARSET_ID "charset_id" 3816 #define CT_DBCHARSET_CHARSET_NAME "charset_name" 3817 #define CT_DBCHARSET_DEFAULT_COLLATION "default_collation" 3818 #define CT_DBCHARSET_CHAR_SIZE "char_size" 3834 int count_collations;
3855 if (charset_name ==
NULL)
3939 #define CT_DUAL_DUMMY "dummy" 3956 const char *dummy =
"X";
4025 struct catcls_function
4055 MOP class_mop[
sizeof (clist) /
sizeof (clist[0])];
4058 int num_classes =
sizeof (clist) /
sizeof (clist[0]);
4062 for (i = 0; i < num_classes; i++)
4065 if (class_mop[i] ==
NULL)
4074 for (i = 0; i < num_classes; i++)
4076 error_code = (clist[
i].function) (class_mop[i]);
4102 {
"class_name",
"varchar(255)"},
4103 {
"owner_name",
"varchar(255)"},
4104 {
"class_type",
"varchar(6)"},
4105 {
"is_system_class",
"varchar(3)"},
4106 {
"tde_algorithm",
"varchar(32)"},
4107 {
"partitioned",
"varchar(3)"},
4108 {
"is_reuse_oid_class",
"varchar(3)"},
4109 {
"collation",
"varchar(32)"},
4110 {
"comment",
"varchar(2048)"}
4112 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4118 if (class_mop ==
NULL)
4125 for (i = 0; i < num_cols; i++)
4135 "SELECT [c].[class_name], CAST([c].[owner].[name] AS VARCHAR(255))," 4136 " CASE [c].[class_type] WHEN 0 THEN 'CLASS' WHEN 1 THEN 'VCLASS' ELSE 'UNKNOW' END," 4137 " CASE WHEN MOD([c].[is_system_class], 2) = 1 THEN 'YES' ELSE 'NO' END," 4138 " CASE [c].[tde_algorithm] WHEN 0 THEN 'NONE' WHEN 1 THEN 'AES' WHEN 2 THEN 'ARIA' END," 4139 " CASE WHEN [c].[sub_classes] IS NULL THEN 'NO' ELSE NVL((SELECT 'YES'" 4140 " FROM [%s] [p] WHERE [p].[class_of] = [c] and [p].[pname] IS NULL), 'NO') END," 4141 " CASE WHEN MOD([c].[is_system_class] / 8, 2) = 1 THEN 'YES' ELSE 'NO' END," 4142 " [coll].[coll_name], [c].[comment] FROM [%s] [c], [%s] [coll]" 4143 " WHERE [c].[collation_id] = [coll].[coll_id] AND (CURRENT_USER = 'DBA' OR" 4144 " {[c].[owner].[name]} SUBSETEQ (SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4145 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR {[c]} SUBSETEQ (" 4146 " SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au] WHERE {[au].[grantee].[name]} SUBSETEQ (" 4147 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4148 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4183 {
"class_name",
"varchar(255)"},
4184 {
"super_class_name",
"varchar(255)"}
4186 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4192 if (class_mop ==
NULL)
4199 for (i = 0; i < num_cols; i++)
4209 "SELECT [c].[class_name], [s].[class_name] FROM [%s] [c], TABLE([c].[super_classes]) AS [t]([s])" 4210 " WHERE CURRENT_USER = 'DBA' OR {[c].[owner].[name]} SUBSETEQ (" 4211 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4212 " FROM [%s] [u], TABLE([groups]) AS t([g]) WHERE [u].[name] = CURRENT_USER) OR {[c]} SUBSETEQ (" 4213 " SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au] WHERE {[au].[grantee].[name]} SUBSETEQ (" 4214 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4215 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4249 {
"vclass_name",
"varchar(255)"},
4250 {
"vclass_def",
"varchar(4096)"},
4251 {
"comment",
"varchar(2048)"}
4253 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4259 if (class_mop ==
NULL)
4266 for (i = 0; i < num_cols; i++)
4276 "SELECT [q].[class_of].[class_name], [q].[spec], [c].[comment] FROM [%s] [q], [%s] [c]" 4277 " WHERE ([q].[class_of].[class_name] = [c].[class_name]) AND (CURRENT_USER = 'DBA' OR" 4278 " {[q].[class_of].[owner].[name]} SUBSETEQ (" 4279 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4280 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4281 " {[q].[class_of]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 4282 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4283 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4284 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER ) AND" 4319 {
"attr_name",
"varchar(255)"},
4320 {
"class_name",
"varchar(255)"},
4321 {
"attr_type",
"varchar(8)"},
4322 {
"def_order",
"integer"},
4323 {
"from_class_name",
"varchar(255)"},
4324 {
"from_attr_name",
"varchar(255)"},
4325 {
"data_type",
"varchar(9)"},
4326 {
"prec",
"integer"},
4327 {
"scale",
"integer"},
4328 {
"charset",
"varchar(32)"},
4329 {
"collation",
"varchar(32)"},
4330 {
"domain_class_name",
"varchar(255)"},
4331 {
"default_value",
"varchar(255)"},
4332 {
"is_nullable",
"varchar(3)"},
4333 {
"comment",
"varchar(1024)"}
4335 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4341 if (class_mop ==
NULL)
4348 for (i = 0; i < num_cols; i++)
4358 "SELECT [a].[attr_name], [c].[class_name], CASE WHEN [a].[attr_type] = 0 THEN 'INSTANCE'" 4359 " WHEN [a].[attr_type] = 1 THEN 'CLASS' ELSE 'SHARED' END," 4360 " [a].[def_order], [a].[from_class_of].[class_name]," 4361 " [a].[from_attr_name], [t].[type_name], [d].[prec], [d].[scale]," 4362 " IF ([a].[data_type] IN (4, 25, 26, 27, 35), (SELECT [ch].[charset_name] FROM [%s] [ch]" 4363 " WHERE [d].[code_set] = [ch].[charset_id]), 'Not applicable'), " 4364 " IF ([a].[data_type] IN (4, 25, 26, 27, 35), (SELECT [coll].[coll_name]" 4365 " FROM [%s] [coll] WHERE [d].[collation_id] = [coll].[coll_id]), 'Not applicable'), " 4366 " [d].[class_of].[class_name], [a].[default_value]," 4367 " CASE WHEN [a].[is_nullable] = 1 THEN 'YES' ELSE 'NO' END, [a].[comment]" 4368 " FROM [%s] [c], [%s] [a], [%s] [d], [%s] [t]" 4369 " WHERE [a].[class_of] = [c] AND [d].[object_of] = [a] AND [d].[data_type] = [t].[type_id] AND" 4370 " (CURRENT_USER = 'DBA' OR {[c].[owner].[name]} SUBSETEQ (" 4371 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4372 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4373 " {[c]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 4374 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4375 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4376 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4411 {
"attr_name",
"varchar(255)"},
4412 {
"class_name",
"varchar(255)"},
4413 {
"attr_type",
"varchar(8)"},
4414 {
"data_type",
"varchar(9)"},
4415 {
"prec",
"integer"},
4416 {
"scale",
"integer"},
4417 {
"code_set",
"integer"},
4418 {
"domain_class_name",
"varchar(255)"}
4420 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4426 if (class_mop ==
NULL)
4433 for (i = 0; i < num_cols; i++)
4443 "SELECT [a].[attr_name], [c].[class_name], CASE WHEN [a].[attr_type] = 0 THEN 'INSTANCE'" 4444 " WHEN [a].[attr_type] = 1 THEN 'CLASS' ELSE 'SHARED' END," 4445 " [et].[type_name], [e].[prec], [e].[scale], [e].[code_set], [e].[class_of].[class_name]" 4446 " FROM [%s] [c], [%s] [a], [%s] [d], TABLE([d].[set_domains]) AS [t]([e]), [%s] [et]" 4447 " WHERE [a].[class_of] = [c] AND [d].[object_of] = [a] AND [e].[data_type] = [et].[type_id] AND" 4448 " (CURRENT_USER = 'DBA' OR {[c].[owner].[name]} SUBSETEQ (" 4449 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4450 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4451 " {[c]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 4452 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4453 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4454 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4489 {
"meth_name",
"varchar(255)"},
4490 {
"class_name",
"varchar(255)"},
4491 {
"meth_type",
"varchar(8)"},
4492 {
"from_class_name",
"varchar(255)"},
4493 {
"from_meth_name",
"varchar(255)"},
4494 {
"func_name",
"varchar(255)"}
4496 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4502 if (class_mop ==
NULL)
4509 for (i = 0; i < num_cols; i++)
4519 "SELECT [m].[meth_name], [m].[class_of].[class_name]," 4520 " CASE WHEN [m].[meth_type] = 0 THEN 'INSTANCE' ELSE 'CLASS' END," 4521 " [m].[from_class_of].[class_name], [m].[from_meth_name], [s].[func_name] FROM [%s] [m], [%s] [s]" 4522 " WHERE [s].[meth_of] = [m] AND (CURRENT_USER = 'DBA' OR {[m].[class_of].[owner].[name]} SUBSETEQ (" 4523 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4524 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4525 " {[m].[class_of]} SUBSETEQ (SELECT SUM(set{[au].[class_of]}) FROM [%s] [au]" 4526 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4527 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4528 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4563 {
"meth_name",
"varchar(255)"},
4564 {
"class_name",
"varchar(255)"},
4565 {
"meth_type",
"varchar(8)"},
4566 {
"index_of",
"integer"},
4567 {
"data_type",
"varchar(9)"},
4568 {
"prec",
"integer"},
4569 {
"scale",
"integer"},
4570 {
"code_set",
"integer"},
4571 {
"domain_class_name",
"varchar(255)"}
4573 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4579 if (class_mop ==
NULL)
4586 for (i = 0; i < num_cols; i++)
4596 "SELECT [s].[meth_of].[meth_name], [s].[meth_of].[class_of].[class_name]," 4597 " CASE WHEN [s].[meth_of].[meth_type] = 0 THEN 'INSTANCE' ELSE 'CLASS' END," 4598 " [a].[index_of], [t].[type_name], [d].[prec], [d].[scale], [d].[code_set], [d].[class_of].[class_name]" 4599 " FROM [%s] [s], [%s] [a], [%s] [d], [%s] [t]" 4600 " WHERE [a].[meth_sig_of] = [s] AND [d].[object_of] = [a] AND [d].[data_type] = [t].[type_id] AND" 4601 " (CURRENT_USER = 'DBA' OR {[s].[meth_of].[class_of].[owner].[name]} SUBSETEQ (" 4602 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4603 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4604 " {[s].[meth_of].[class_of]} SUBSETEQ (SELECT sum(set{[au].[class_of]}) FROM [%s] [au]" 4605 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4606 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4607 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4645 {
"meth_name",
"varchar(255)"},
4646 {
"class_name",
"varchar(255)"},
4647 {
"meth_type",
"varchar(8)"},
4648 {
"index_of",
"integer"},
4649 {
"data_type",
"varchar(9)"},
4650 {
"prec",
"integer"},
4651 {
"scale",
"integer"},
4652 {
"code_set",
"integer"},
4653 {
"domain_class_name",
"varchar(255)"}
4655 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4661 if (class_mop ==
NULL)
4668 for (i = 0; i < num_cols; i++)
4678 "SELECT [s].[meth_of].[meth_name], [s].[meth_of].[class_of].[class_name]," 4679 " CASE WHEN [s].[meth_of].[meth_type] = 0 THEN 'INSTANCE' ELSE 'CLASS' END," 4680 " [a].[index_of], [et].[type_name], [e].[prec], [e].[scale], [e].[code_set], [e].[class_of].[class_name]" 4681 " FROM [%s] [s], [%s] [a], [%s] [d], TABLE([d].[set_domains]) AS [t]([e]), [%s] [et]" 4682 " WHERE [a].[meth_sig_of] = [s] AND [d].[object_of] = [a] AND [e].[data_type] = [et].[type_id] AND" 4683 " (CURRENT_USER = 'DBA' OR {[s].[meth_of].[class_of].[owner].[name]} SUBSETEQ (" 4684 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4685 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4686 " {[s].[meth_of].[class_of]} SUBSETEQ (SELECT sum(set{[au].[class_of]}) FROM [%s] [au]" 4687 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4688 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4689 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4724 {
"class_name",
"varchar(255)"},
4725 {
"path_name",
"varchar(255)"},
4726 {
"from_class_name",
"varchar(255)"}
4728 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4734 if (class_mop ==
NULL)
4741 for (i = 0; i < num_cols; i++)
4751 "SELECT [f].[class_of].[class_name], [f].[path_name], [f].[from_class_of].[class_name] FROM [%s] [f]" 4752 " WHERE CURRENT_USER = 'DBA' OR {[f].[class_of].[owner].[name]} SUBSETEQ (" 4753 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4754 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4755 " {[f].[class_of]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 4756 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4757 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4758 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4793 {
"index_name",
"varchar(255)"},
4794 {
"is_unique",
"varchar(3)"},
4795 {
"is_reverse",
"varchar(3)"},
4796 {
"class_name",
"varchar(255)"},
4797 {
"key_count",
"integer"},
4798 {
"is_primary_key",
"varchar(3)"},
4799 {
"is_foreign_key",
"varchar(3)"},
4800 {
"filter_expression",
"varchar(255)"},
4801 {
"have_function",
"varchar(3)"},
4802 {
"comment",
"varchar(1024)"},
4803 {
"status",
"varchar(255)"}
4805 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4811 if (class_mop ==
NULL)
4818 for (i = 0; i < num_cols; i++)
4828 "SELECT [i].[index_name], CASE WHEN [i].[is_unique] = 0 THEN 'NO' ELSE 'YES' END," 4829 " CASE WHEN [i].[is_reverse] = 0 THEN 'NO' ELSE 'YES' END, [i].[class_of].[class_name], [i].[key_count]," 4830 " CASE WHEN [i].[is_primary_key] = 0 THEN 'NO' ELSE 'YES' END," 4831 " CASE WHEN [i].[is_foreign_key] = 0 THEN 'NO' ELSE 'YES' END, [i].[filter_expression]," 4832 " CASE WHEN [i].[have_function] = 0 THEN 'NO' ELSE 'YES' END, [i].[comment]," 4833 " CASE WHEN [i].[status] = 0 THEN 'NO_INDEX' " 4834 " WHEN [i].[status] = 1 THEN 'NORMAL INDEX' " 4835 " WHEN [i].[status] = 2 THEN 'INVISIBLE INDEX'" 4836 " WHEN [i].[status] = 3 THEN 'INDEX IS IN ONLINE BUILDING' " 4839 " WHERE CURRENT_USER = 'DBA' OR {[i].[class_of].[owner].[name]} SUBSETEQ (" 4840 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4841 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4842 " {[i].[class_of]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 4843 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4844 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4845 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4879 {
"index_name",
"varchar(255)"},
4880 {
"class_name",
"varchar(255)"},
4881 {
"key_attr_name",
"varchar(255)"},
4882 {
"key_order",
"integer"},
4883 {
"asc_desc",
"varchar(4)"},
4884 {
"key_prefix_length",
"integer"},
4885 {
"func",
"varchar(255)"}
4887 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4893 if (class_mop ==
NULL)
4900 for (i = 0; i < num_cols; i++)
4910 "SELECT [k].[index_of].[index_name], [k].[index_of].[class_of].[class_name]," 4911 " [k].[key_attr_name], [k].[key_order], CASE [k].[asc_desc] WHEN 0 THEN 'ASC' WHEN 1 THEN 'DESC'" 4912 " ELSE 'UNKN' END, [k].[key_prefix_length], [k].[func] FROM [%s] [k]" 4913 " WHERE CURRENT_USER = 'DBA' OR {[k].[index_of].[class_of].[owner].[name]} SUBSETEQ (" 4914 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4915 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4916 " {[k].[index_of].[class_of]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 4917 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4918 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4919 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 4954 {
"grantor_name",
"varchar(255)"},
4955 {
"grantee_name",
"varchar(255)"},
4956 {
"class_name",
"varchar(255)"},
4957 {
"auth_type",
"varchar(7)"},
4958 {
"is_grantable",
"varchar(3)"}
4960 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
4966 if (class_mop ==
NULL)
4973 for (i = 0; i < num_cols; i++)
4983 "SELECT CAST([a].[grantor].[name] AS VARCHAR(255))," 4984 " CAST([a].[grantee].[name] AS VARCHAR(255)), [a].[class_of].[class_name], [a].[auth_type]," 4985 " CASE WHEN [a].[is_grantable] = 0 THEN 'NO' ELSE 'YES' END FROM [%s] [a]" 4986 " WHERE CURRENT_USER = 'DBA' OR {[a].[class_of].[owner].[name]} SUBSETEQ (" 4987 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4988 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 4989 " {[a].[class_of]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 4990 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 4991 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 4992 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 5027 {
"trigger_name",
"varchar(255)"},
5028 {
"target_class_name",
"varchar(255)"},
5029 {
"target_attr_name",
"varchar(255)"},
5030 {
"target_attr_type",
"varchar(8)"},
5031 {
"action_type",
"integer"},
5032 {
"action_time",
"integer"},
5033 {
"comment",
"varchar(1024)"}
5035 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
5041 if (class_mop ==
NULL)
5048 for (i = 0; i < num_cols; i++)
5058 "SELECT CAST([t].[name] AS VARCHAR(255)), [c].[class_name], CAST([t].[target_attribute] AS VARCHAR(255))," 5059 " CASE [t].[target_class_attribute] WHEN 0 THEN 'INSTANCE' ELSE 'CLASS' END," 5060 " [t].[action_type], [t].[action_time], [t].[comment]" 5061 " FROM [%s] [t] LEFT OUTER JOIN [%s] [c] ON [t].[target_class] = [c].[class_of]" 5062 " WHERE CURRENT_USER = 'DBA' OR {[t].[owner].[name]} SUBSETEQ (SELECT SET{CURRENT_USER} +" 5063 " COALESCE(SUM(SET{[t].[g].[name]}), SET{}) FROM [%s] [u], TABLE([groups]) AS [t]([g])" 5064 " WHERE [u].[name] = CURRENT_USER ) OR {[c]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 5065 " WHERE {[au].[grantee].[name]} SUBSETEQ (SELECT SET{CURRENT_USER} +" 5066 " COALESCE(SUM(SET{[t].[g].[name]}), SET{}) FROM [%s] [u], TABLE([groups]) AS [t]([g])" 5101 {
"class_name",
"varchar(255)"},
5102 {
"partition_name",
"varchar(255)"},
5103 {
"partition_class_name",
"varchar(255)"},
5104 {
"partition_type",
"varchar(32)"},
5105 {
"partition_expr",
"varchar(2048)"},
5106 {
"partition_values",
"sequence of"},
5107 {
"comment",
"varchar(1024)"}
5109 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
5115 if (class_mop ==
NULL)
5122 for (i = 0; i < num_cols; i++)
5132 "SELECT [pp].[super_class_name] AS [class_name], [p].[pname] AS [partition_name]," 5133 " CONCAT([pp].[super_class_name], '__p__', [p].[pname]) AS [partition_class_name]," 5134 " CASE WHEN [p].[ptype] = 0 THEN 'HASH'" 5135 " WHEN [p].[ptype] = 1 THEN 'RANGE' ELSE 'LIST' END AS [partition_type]," 5136 " TRIM(SUBSTRING([pi].[pexpr] FROM 8 FOR (POSITION(' FROM ' IN [pi].[pexpr])-8)))" 5137 " AS [partition_expression], [p].[pvalues] AS [partition_values], [p].[comment] AS [comment]" 5139 " (SELECT * FROM [%s] [sc], [%s] [sp] WHERE [sc].[class_name] = [sp].[class_of].[class_name]) [pp]," 5140 " (SELECT [tt].[ss].[pexpr] AS [pexpr], [ss].[class_name] AS [class_name]" 5141 " FROM [%s] [ss], TABLE ([ss].[partition]) AS [tt]([ss])) [pi]" 5142 " WHERE [pp].[class_name] = [p].[class_of].[class_name] AND" 5143 " [pi].[class_name] = [pp].[super_class_name] AND (CURRENT_USER = 'DBA' OR" 5144 " {[p].[class_of].[owner].[name]} SUBSETEQ (" 5145 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 5146 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) OR" 5147 " {[p].[class_of]} SUBSETEQ (SELECT SUM(SET{[au].[class_of]}) FROM [%s] [au]" 5148 " WHERE {[au].[grantee].[name]} SUBSETEQ (" 5149 " SELECT SET{CURRENT_USER} + COALESCE(SUM(SET{[t].[g].[name]}), SET{})" 5150 " FROM [%s] [u], TABLE([groups]) AS [t]([g]) WHERE [u].[name] = CURRENT_USER) AND" 5185 {
"sp_name",
"varchar(255)"},
5186 {
"sp_type",
"varchar(16)"},
5187 {
"return_type",
"varchar(16)"},
5188 {
"arg_count",
"integer"},
5189 {
"lang",
"varchar(16)"},
5190 {
"target",
"varchar(4096)"},
5191 {
"owner",
"varchar(256)"},
5192 {
"comment",
"varchar(1024)"}
5194 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
5200 if (class_mop ==
NULL)
5207 for (i = 0; i < num_cols; i++)
5217 "SELECT [sp].[sp_name], CASE [sp].[sp_type] WHEN 1 THEN 'PROCEDURE' ELSE 'FUNCTION' END," 5218 " CASE WHEN [sp].[return_type] = 0 THEN 'void' WHEN [sp].[return_type] = 28 THEN 'CURSOR'" 5219 " ELSE (SELECT [dt].[type_name] FROM [%s] [dt] WHERE [sp].[return_type] = [dt].[type_id]) END," 5220 " [sp].[arg_count], CASE [sp].[lang] WHEN 1 THEN 'JAVA' ELSE '' END," 5254 {
"sp_name",
"varchar(255)"},
5255 {
"index_of",
"integer"},
5256 {
"arg_name",
"varchar(256)"},
5257 {
"data_type",
"varchar(16)"},
5258 {
"mode",
"varchar(6)"},
5259 {
"comment",
"varchar(1024)"}
5261 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
5267 if (class_mop ==
NULL)
5274 for (i = 0; i < num_cols; i++)
5284 "SELECT [sp].[sp_name], [sp].[index_of], [sp].[arg_name], CASE [sp].[data_type]" 5285 " WHEN 28 THEN 'CURSOR'" 5286 " ELSE (SELECT [dt].[type_name] FROM [%s] [dt] WHERE [sp].[data_type] = [dt].[type_id]) END, CASE" 5287 " WHEN [sp].[mode] = 1 THEN 'IN' WHEN [sp].[mode] = 2 THEN 'OUT' ELSE 'INOUT' END," 5288 " [sp].[comment] FROM [%s] [sp] ORDER BY [sp].[sp_name], [sp].[index_of]",
CT_DATATYPE_NAME,
5322 {
"coll_id",
"integer"},
5323 {
"coll_name",
"varchar(255)"},
5324 {
"charset_name",
"varchar(255)"},
5325 {
"is_builtin",
"varchar(3)"},
5326 {
"has_expansions",
"varchar(3)"},
5327 {
"contractions",
"integer"},
5328 {
"uca_strength",
"varchar(255)"}
5331 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
5337 if (class_mop ==
NULL)
5344 for (i = 0; i < num_cols; i++)
5354 "SELECT [c].[coll_id], [c].[coll_name], [ch].[charset_name], CASE [c].[built_in] WHEN 0 THEN 'No'" 5355 " WHEN 1 THEN 'Yes' ELSE 'ERROR' END, CASE [c].[expansions] WHEN 0 THEN 'No'" 5356 " WHEN 1 THEN 'Yes' ELSE 'ERROR' END, [c].[contractions], CASE [c].[uca_strength]" 5357 " WHEN 0 THEN 'Not applicable' WHEN 1 THEN 'Primary' WHEN 2 THEN 'Secondary'" 5358 " WHEN 3 THEN 'Tertiary' WHEN 4 THEN 'Quaternary' WHEN 5 THEN 'Identity' ELSE 'Unknown' END" 5359 " FROM [%s] [c] JOIN [%s] [ch] ON [c].[charset_id] = [ch].[charset_id] ORDER BY [c].[coll_id]",
5399 int num_cols =
sizeof (columns) /
sizeof (columns[0]);
5405 if (class_mop ==
NULL)
5412 for (i = 0; i < num_cols; i++)
5422 "SELECT [ch].[charset_id], [ch].[charset_name], [coll].[coll_name], [ch].[char_size] " 5423 "FROM [%s] [ch] JOIN [%s] [coll] ON [ch].[default_collation] = [coll].[coll_id] " 5456 struct catcls_function
5486 size_t num_vclasses =
sizeof (clist) /
sizeof (clist[0]);
5491 for (i = 0; i < num_vclasses; i++)
5493 error_code = (clist[
i].function) ();
5506 #if defined (SA_MODE) 5507 #if defined (ENABLE_UNUSED_FUNCTION) 5516 boot_build_catalog_classes (
const char *
dbname)
5523 fprintf (stdout,
"Database %s already has system catalog class/vclass\n", dbname);
5545 sm_mark_system_class_for_catalog ();
5582 boot_destroy_catalog_classes (
void)
5589 const char *classes[] = {
5625 for (i = 0; classes[
i] !=
NULL; i++)
5674 boot_rebuild_catalog_classes (
const char *
dbname)
5678 error_code = boot_destroy_catalog_classes ();
5685 return boot_build_catalog_classes (dbname);
5690 #if defined(CS_MODE) 5692 boot_get_host_connected (
void)
5694 return boot_Host_connected;
5698 boot_get_ha_server_state (
void)
5709 return boot_Server_credential.
lob_path;
5719 #if defined(CS_MODE) 5720 boot_Host_connected[0] =
'\0';
5739 #if defined(CS_MODE) 5753 int server_coll_cnt, server_locales_cnt;
5754 char cli_text[PATH_MAX];
5757 error_code =
boot_get_server_locales (&server_collations, &server_locales, &server_coll_cnt, &server_locales_cnt);
5764 snprintf (srv_text,
sizeof (srv_text) - 1,
"server '%s'", client_credential->
get_db_name ());
5775 if (server_collations !=
NULL)
5779 if (server_locales !=
NULL)
5807 #if defined(CS_MODE) 5821 char cli_text[PATH_MAX];
5831 snprintf (srv_text,
sizeof (srv_text) - 1,
"server '%s'", client_credential->
get_db_name ());
5854 if (class_mop ==
NULL)
5867 if (class_mop ==
NULL)
#define BOOT_READ_ONLY_CLIENT_TYPE(client_type)
int lang_set_charset(const INTL_CODESET codeset)
static int boot_define_method(MOP class_mop)
#define LANG_MAX_COLLATIONS
int lang_set_language(const char *lang_str)
void tran_free_savepoint_list(void)
const char * get_db_password() const
int check_timezone_compat(const char *client_checksum, const char *server_checksum, const char *client_text, const char *server_text)
DB_INFO * cfg_find_db(const char *db_name)
int pr_Enable_string_compression
int db_drop_class_method(MOP class_, const char *name)
#define LANG_SYS_COLLATION
#define LANG_GET_BINARY_COLLATION(c)
static int boot_define_class(MOP class_mop)
int net_client_ping_server_with_handshake(int client_type, bool check_capabilities, int opt_cap)
int dl_destroy_module(void)
#define ER_NET_DIFFERENT_RELEASE
static int boot_define_view_trigger(void)
#define ER_BO_CONNECTED_TO
float rel_disk_compatible(void)
char ** cfg_get_hosts(const char *prim_host, int *count, bool include_local_host)
static int catcls_vclass_install(void)
DB_TRAN_ISOLATION TRAN_ISOLATION
static int boot_define_view_db_collation(void)
int sm_mark_system_class(MOP classop, int on_or_off)
#define BOOT_LOG_REPLICATOR_TYPE(client_type)
static int boot_define_view_index(void)
#define BOOT_ADMIN_CLIENT_TYPE(client_type)
#define ER_ES_INVALID_PATH
void cfg_free_hosts(char **host_array)
#define BOOT_CSQL_CLIENT_TYPE(client_type)
int db_is_vclass(DB_OBJECT *op)
const char * boot_get_lob_path(void)
const TZ_DATA * tz_get_data(void)
int db_make_varchar(DB_VALUE *value, const int max_char_length, DB_CONST_C_CHAR str, const int char_str_byte_size, const int codeset, const int collation_id)
#define BOOT_BROKER_AND_DEFAULT_CLIENT_TYPE(client_type)
int au_force_write_new_auth(void)
void oid_set_cached_class_oid(const int cache_id, const OID *oid)
static int boot_define_stored_procedure(MOP class_mop)
#define ER_NET_NO_EXPLICIT_SERVER_HOST
#define BOOT_REPLICA_ONLY_BROKER_CLIENT_TYPE(client_type)
static void boot_shutdown_client_at_exit(void)
#define BOOT_IS_PREFERRED_HOSTS_SET(credential)
#define TRAN_DEFAULT_ISOLATION_LEVEL()
static int boot_client_find_and_cache_class_oids(void)
void boot_client_all_finalize(bool is_er_final)
void db_clear_delayed_hosts_count(void)
static int boot_define_view_vclass(void)
int lang_check_locale_compat(const LANG_LOCALE_COMPAT *loc_array, const int loc_cnt, const char *client_text, const char *server_text)
int db_make_numeric(DB_VALUE *value, const DB_C_NUMERIC num, const int precision, const int scale)
#define MSGCAT_GENERAL_DATABASE_INIT
void db_clear_host_status(void)
#define assert_release(e)
#define ER_BO_CANT_LOAD_SYSPRM
#define ER_NET_CANT_CONNECT_SERVER
const char * get_host_name() const
int db_add_query_spec(MOP vclass, const char *query)
#define BOOT_IS_CLIENT_RESTARTED()
void locator_free_areas(void)
int intl_identifier_upper_string_size(const char *src)
static int boot_define_view_class(void)
static int boot_client(int tran_index, int lock_wait, TRAN_ISOLATION tran_isolation)
#define ER_BO_FULL_DATABASE_NAME_IS_TOO_LONG
const char * AU_USER_CLASS_NAME
MOP locator_find_class(const char *classname)
bool tran_is_active_and_has_updated(void)
static int boot_define_view_method(void)
DB_OBJECT * db_create_vclass(const char *name)
MOBJ locator_has_heap(MOP class_mop)
#define ER_NET_NO_SERVER_HOST
static int boot_define_data_type(MOP class_mop)
#define DB_HS_CONN_FAILURE
static int boot_define_view_index_key(void)
void oid_set_root(const OID *oid)
int sysprm_load_and_init_client(const char *db_name, const char *conf_file)
int sysprm_init_intl_param(void)
static int boot_define_collations(MOP class_mop)
static char boot_Client_id_buffer[L_cuserid+1]
#define er_log_debug(...)
static int boot_define_class_authorization(MOP class_mop)
static int boot_Process_id
char * getuserid(char *string, int size)
static int boot_define_view_authorization(void)
DB_OBJECT * db_create_class(const char *name)
const char * AU_PUBLIC_USER_NAME
int er_init(const char *msglog_filename, int exit_ask)
static int boot_define_view_method_file(void)
static char boot_Db_path_buf[PATH_MAX]
void ws_free_string(const char *str)
#define CT_DBCHARSET_CHARSET_ID
int boot_register_client(BOOT_CLIENT_CREDENTIAL *client_credential, int client_lock_wait, TRAN_ISOLATION client_isolation, TRAN_STATE *tran_state, BOOT_SERVER_CREDENTIAL *server_credential)
static bool boot_Set_client_at_exit
int net_client_init(const char *dbname, const char *hostname)
char server_session_key[SERVER_SESSION_KEY_SIZE]
void sysprm_tune_client_parameters(void)
#define OID_INIT_TEMPID()
int boot_restart_client(BOOT_CLIENT_CREDENTIAL *client_credential)
static int boot_define_view_attribute_set_domain(void)
INTL_CODESET lang_charset(void)
DB_OBJECT * db_create_internal(DB_OBJECT *obj)
#define ER_BO_UNKNOWN_DATABASE
int tran_reset_wait_times(int wait_in_msecs)
static int boot_define_partition(MOP class_mop)
void boot_donot_shutdown_client_at_exit(void)
static int boot_define_view_super_class(void)
#define DB_CONNECT_ORDER_SEQ
#define ER_NET_HS_UNKNOWN_SERVER_REL
static int boot_define_dual(MOP class_mop)
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
db_client_type client_type
LANG_COLLATION * lang_get_collation(const int coll_id)
#define ERR_CSS_TCP_CONNECT_TIMEDOUT
CSS_CHECK_SERVER_ALIVE_FN css_check_server_alive_fn
#define DB_MAX_NUMERIC_PRECISION
const char * get_program_name() const
#define BOOT_NORMAL_CLIENT_TYPE(client_type)
void er_final(ER_FINAL_CODE do_global_final)
#define ER_LANG_CODESET_NOT_AVAILABLE
#define BOOT_CHECK_HA_DELAY_CAP
static int boot_define_view_stored_procedure(void)
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)
void sm_create_root(OID *rootclass_oid, HFID *rootclass_hfid)
int prm_get_integer_value(PARAM_ID prm_id)
int db_add_attribute(MOP obj, const char *name, const char *domain, DB_VALUE *default_value)
int db_constrain_non_null(MOP class_, const char *name, int class_attribute, int on_or_off)
void util_shuffle_string_array(char **array, int count)
#define ER_OUT_OF_VIRTUAL_MEMORY
void jsp_close_connection(void)
int tran_commit(bool retain_lock)
#define DB_MAX_IDENTIFIER_LENGTH
#define TM_TRAN_WAIT_MSECS()
void rel_set_disk_compatible(float level)
#define TRAN_LOCK_INFINITE_WAIT
void sm_flush_static_methods()
bool au_has_user_name(void)
int au_change_owner(MOP classmop, MOP owner)
static int boot_add_charsets(MOP class_mop)
int db_get_delayed_hosts_count(void)
void boot_server_die_or_changed(void)
int lang_collation_count(void)
#define DB_HS_CONN_TIMEOUT
#define BOOT_FORMAT_MAX_LENGTH
static int boot_define_meth_argument(MOP class_mop)
int perfmon_initialize(int num_trans)
const char * rel_name(void)
int tran_abort_only_client(bool is_server_down)
void locator_initialize_areas(void)
#define strncpy_bufsize(buf, str)
#define CT_DBCHARSET_CHARSET_NAME
int boot_unregister_client(int tran_index)
#define DB_HS_NON_PREFFERED_HOSTS
static BOOT_SERVER_CREDENTIAL boot_Server_credential
void numeric_coerce_int_to_num(int arg, DB_C_NUMERIC answer)
int sm_force_write_all_classes(void)
char * boot_get_server_session_key(void)
void util_free_string_array(char **array)
static int boot_define_meth_sig(MOP class_mop)
#define db_private_free_and_init(thrd, ptr)
int es_init(const char *uri)
static int boot_define_view_db_charset(void)
void perfmon_finalize(void)
SM_TEMPLATE * smt_edit_class_mop(MOP op, DB_AUTH db_auth_type)
static int boot_define_index(MOP class_mop)
HA_SERVER_STATE ha_server_state
void boot_set_server_session_key(const char *key)
static int boot_define_domain(MOP class_mop)
int db_put_internal(DB_OBJECT *obj, const char *name, DB_VALUE *value)
static int boot_define_view_attribute(void)
void COMPOSE_FULL_NAME(char *buf, size_t buf_size, const char *path, const char *name)
int catcls_compile_catalog_classes(THREAD_ENTRY *thread_p)
#define MSGCAT_SET_GENERAL
int au_grant(MOP user, MOP class_mop, DB_AUTH type, bool grant_option)
void er_set_with_oserror(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
static int boot_define_charsets(MOP class_mop)
#define MSGCAT_CATALOG_CUBRID
static int boot_define_view_method_argument(void)
const char * lang_charset_cubrid_name(const INTL_CODESET codeset)
char ** util_split_string(const char *str, const char *delim)
static int boot_define_view_partition(void)
#define ER_BO_UNABLE_TO_FIND_HOSTNAME
void db_set_connected_host_status(char *host_connected)
int tran_reset_isolation(TRAN_ISOLATION isolation, bool async_ws)
static int boot_define_view_method_argument_set_domain(void)
const char * TR_CLASS_NAME
static char boot_Lob_path_buf[PATH_MAX]
static void error(const char *msg)
#define ER_CSS_CLIENTS_EXCEEDED
#define ER_NET_SERVER_HAND_SHAKE
static int boot_define_query_spec(MOP class_mop)
int lang_set_charset_lang(const char *lang_charset)
static char boot_Db_host_buf[CUB_MAXHOSTNAMELEN+1]
int db_drop_class(MOP class_)
void tran_cache_tran_settings(int tran_index, int lock_timeout, TRAN_ISOLATION tran_isolation)
#define ER_NOT_IN_STANDALONE
int dl_initiate_module(const char *module_name)
void er_print_callstack(const char *file_name, const int line_no, const char *fmt,...)
static char boot_Volume_label[PATH_MAX]
int net_client_final(void)
int css_windows_startup(void)
#define DB_HS_UNUSABLE_DATABASES
char * boot_get_host_name(void)
const char * get_login_name() const
static int boot_define_ha_apply_info(MOP class_mop)
void css_terminate(bool server_error)
const char * get_db_user() const
int db_disable_modification(void)
int boot_shutdown_client(bool is_er_final)
#define free_and_init(ptr)
char * prm_get_string_value(PARAM_ID prm_id)
#define ER_OBJ_INVALID_ARGUMENTS
#define TM_TRAN_ASYNC_WS()
static int boot_define_view_stored_procedure_arguments(void)
int(* DEF_CLASS_FUNCTION)(MOP)
static int boot_define_meth_file(MOP class_mop)
enum intl_codeset INTL_CODESET
void css_windows_shutdown(void)
static int catcls_class_install(void)
bool prm_get_bool_value(PARAM_ID prm_id)
char * au_user_name_dup(void)
int boot_get_server_timezone_checksum(char *timezone_checksum)
static const char * boot_Client_id_unknown_string
static const char * boot_Client_no_user_string
char boot_Host_name[CUB_MAXHOSTNAMELEN]
int au_add_method_check_authorization(void)
static int boot_add_data_type(MOP class_mop)
#define ERR_CSS_ERROR_FROM_SERVER
char * msgcat_message(int cat_id, int set_id, int msg_id)
#define ERR_CSS_TCP_CANNOT_CONNECT_TO_MASTER
static int boot_define_attribute(MOP class_mop)
int boot_add_collations(MOP class_mop)
#define CT_DBCHARSET_DEFAULT_COLLATION
int smt_add_attribute(SM_TEMPLATE *template_, const char *name, const char *domain_string, DB_DOMAIN *domain)
int db_find_or_create_session(const char *db_user, const char *program_name)
#define SERVER_SESSION_KEY_SIZE
#define DB_NUMERIC_BUF_SIZE
char coll_name[COLL_NAME_SIZE]
int db_make_int(DB_VALUE *value, const int num)
int db_get_max_num_delayed_hosts_lookup(void)
int db_revoke(MOP user, MOP class_mop, AU_TYPE auth)
static bool boot_Is_client_all_final
MOP sm_find_class(const char *name)
enum ha_server_state HA_SERVER_STATE
#define ER_BO_CANNOT_ACCESS_MESSAGE_CATALOG
int smt_set_attribute_default(SM_TEMPLATE *template_, const char *name, int class_attribute, DB_VALUE *proposed_value, DB_DEFAULT_EXPR *default_expr)
int lang_check_coll_compat(const LANG_COLL_COMPAT *coll_array, const int coll_cnt, const char *client_text, const char *server_text)
static int boot_define_index_key(MOP class_mop)
const char * au_user_name(void)
#define CUB_MAXHOSTNAMELEN
void sm_mark_system_classes(void)
int tran_wait_server_active_trans(void)
void db_set_host_status(char *hostname, int status)
int smt_add_class_method(SM_TEMPLATE *template_, const char *name, const char *function)
#define DB_CONNECT_ORDER_RANDOM
#define LOB_PATH_DEFAULT_PREFIX
void sm_init(OID *rootclass_oid, HFID *rootclass_hfid)
#define INTL_CODESET_MULT(codeset)
bool er_is_initialized(void)
static int boot_define_stored_procedure_arguments(MOP class_mop)
static char boot_Log_path_buf[PATH_MAX]
static int boot_define_serial(MOP class_mop)
void cfg_free_directory(DB_INFO *databases)
#define GETHOSTNAME(p, l)
int boot_get_server_locales(LANG_COLL_COMPAT **server_collations, LANG_LOCALE_COMPAT **server_locales, int *server_coll_cnt, int *server_locales_cnt)
ES_TYPE es_get_type(const char *uri)
#define CT_DBCHARSET_CHAR_SIZE
int db_set_page_size(PGLENGTH io_page_size, PGLENGTH log_page_size)
int db_add_constraint(MOP classmop, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name, const char **att_names, int class_attributes)
int intl_identifier_upper(const char *src, char *dst)
#define ER_ES_NO_LOB_PATH
#define TM_TRAN_ISOLATION()
int boot_initialize_server(const BOOT_CLIENT_CREDENTIAL *client_credential, BOOT_DB_PATH_INFO *db_path_info, bool db_overwrite, const char *file_addmore_vols, DKNPAGES db_npages, PGLENGTH db_desired_pagesize, DKNPAGES log_npages, PGLENGTH db_desired_log_page_size, OID *rootclass_oid, HFID *rootclass_hfid, int client_lock_wait, TRAN_ISOLATION client_isolation)
const char * get_db_name() const
int basename_r(const char *path, char *pathbuf, size_t buflen)
void boot_clear_host_connected(void)
DB_INFO * cfg_new_db(const char *name, const char *path, const char *logpath, const char *lobpath, const char **hosts)
int sm_update_class(SM_TEMPLATE *template_, MOP *classmop)
#define ER_BO_CONNECT_FAILED