38 #include <sys/errno.h> 41 #include <editline/readline.h> 42 #include <sys/socket.h> 43 #include <arpa/inet.h> 77 #if defined (SUPPRESS_STRLEN_WARNING) 78 #define strlen(s1) ((int) strlen(s1)) 97 #define CSQL_SESSION_COMMAND_PREFIX(C) (((C) == ';') || ((C) == '!')) 100 #define LINE_BUFFER_SIZE (4000) 101 #define COLUMN_WIDTH_INFO_LIST_INIT_SIZE 24 104 #if defined (ENABLE_UNUSED_FUNCTION) 105 #if !defined(WINDOWS) 108 static int csql_Keyword_num;
190 #if defined (ENABLE_UNUSED_FUNCTION) 191 #if !defined(WINDOWS) 192 static char *csql_keyword_generator (
const char *text,
int state);
193 static char **csql_cmd_completion_handler (
const char *text,
int start,
int end);
194 static void init_readline ();
227 #if defined (ENABLE_UNUSED_FUNCTION) 228 #if !defined(WINDOWS) 239 csql_keyword_generator (
const char *text,
int state)
241 static int list_index, len;
252 return ((
char *)
NULL);
254 if (csql_Keyword_list ==
NULL)
256 return ((
char *)
NULL);
260 while (list_index < csql_Keyword_num)
262 if (strncasecmp ((csql_Keyword_list + list_index)->keyword, text, len) == 0)
264 char *ret_str =
strdup ((csql_Keyword_list + list_index)->keyword);
273 return ((
char *)
NULL);
284 csql_cmd_completion_handler (
const char *text,
int start,
int end)
288 matches = (
char **)
NULL;
289 matches = completion_matches (text, csql_keyword_generator);
290 rl_attempted_completion_over = 1;
302 rl_attempted_completion_function = csql_cmd_completion_handler;
316 if (csql_column_width_info_list ==
NULL)
326 if (csql_column_width_info_list[i].
name !=
NULL)
332 if (csql_column_width_info_list !=
NULL)
337 csql_column_width_info_list_size = 0;
350 csql_column_width_info_list =
352 if (csql_column_width_info_list ==
NULL)
363 csql_column_width_info_list[
i].
name =
NULL;
364 csql_column_width_info_list[
i].
width = 0;
404 #if !defined(WINDOWS) 408 #if !defined(WINDOWS) 414 char *edit_contents, *
p;
420 while (edit_contents !=
NULL && *edit_contents !=
'\0')
422 fprintf (pf,
"%4d ", l++);
423 p = strchr (edit_contents,
'\n');
426 fwrite (edit_contents, 1, p - edit_contents, pf);
427 edit_contents = p + 1;
431 fwrite (edit_contents, 1,
strlen (edit_contents), pf);
432 edit_contents =
NULL;
440 #if !defined(WINDOWS) 476 char *line_read =
NULL;
480 char *line_read_alloced =
NULL;
481 bool is_first_read_line =
true;
482 bool read_whole_line;
485 bool is_in_block =
false;
548 #if !defined(WINDOWS) 551 #if defined (ENABLE_UNUSED_FUNCTION) 556 #if defined (ENABLE_UNUSED_FUNCTION) 562 for (line_no = 1;; line_no++)
570 read_whole_line =
false;
579 line_read = fgets ((
char *) line_buf, LINE_BUFFER_SIZE,
csql_Input_fp);
583 if (line_read_alloced !=
NULL)
585 free (line_read_alloced);
586 line_read_alloced =
NULL;
589 line_read_alloced = line_read;
593 read_whole_line =
true;
601 line_read = fgets ((
char *) line_buf, LINE_BUFFER_SIZE,
csql_Input_fp);
606 if (line_read ==
NULL)
615 if (line_read_alloced !=
NULL)
617 free (line_read_alloced);
618 line_read_alloced =
NULL;
624 line_length =
strlen (line_read);
628 char *utf8_line_read =
NULL;
632 int utf8_line_buf_size =
sizeof (utf8_line_buf);
634 utf8_line_read = (
char *) utf8_line_buf;
640 if (utf8_line_read !=
NULL)
642 line_read = utf8_line_read;
643 line_length =
strlen (line_read);
654 is_first_read_line =
false;
656 for (ptr = line_read + line_length - 1; line_length > 0; ptr--)
660 read_whole_line =
true;
663 if (*ptr ==
'\n' || *ptr ==
'\r')
680 if (line_read_alloced !=
NULL)
682 free (line_read_alloced);
683 line_read_alloced =
NULL;
701 bool csql_execute =
false;
794 char *sess_end =
NULL;
795 char sess_end_char =
'\0';
799 char *argument_end =
NULL;
800 int argument_len = 0;
802 #if !defined(WINDOWS) 803 HIST_ENTRY *hist_entry;
814 for (ptr++; *ptr !=
'\0' && iswspace ((wint_t) (*ptr)); ptr++)
818 sess_cmd = (
char *) ptr;
819 for (; *ptr !=
'\0' && !iswspace ((wint_t) (*ptr)); ptr++)
823 if (iswspace ((wint_t) (*ptr)))
826 sess_end_char = *ptr;
831 sess_end_char =
'\0';
833 for (; *ptr !=
'\0' && iswspace ((wint_t) (*ptr)); ptr++)
837 argument = (
char *) ptr;
840 argument_len =
strlen (argument);
841 if (argument_len > 0)
843 argument_end = argument + argument_len - 1;
844 for (; argument_end != argument && iswspace ((wint_t) (*argument_end)); --argument_end)
846 *argument_end =
'\0';
865 if (sess_end !=
NULL)
867 *sess_end = sess_end_char;
870 #if !defined(WINDOWS) 873 add_history (line_read);
962 if (!strcasecmp (argument,
"on"))
966 else if (!strcasecmp (argument,
"off"))
991 fprintf (
csql_Output_fp,
"Checkpointing is only allowed for" " the csql started with --sysadm\n");
1002 fprintf (
csql_Output_fp,
"Killing transaction is only allowed" " for the csql started with --sysadm\n");
1043 if (*argument ==
'\0')
1115 if (!strcasecmp (argument,
"on"))
1119 else if (!strcasecmp (argument,
"off"))
1131 time_t tloc = time (
NULL);
1135 strftime (str, 80,
"%a %B %d %H:%M:%S %Z %Y", &tmloc);
1141 if (!strcasecmp (argument,
"on"))
1145 else if (!strcasecmp (argument,
"off"))
1156 if (strcasecmp (argument,
"on") == 0)
1166 else if (strcasecmp (argument,
"off") == 0)
1178 char *column_name =
NULL;
1179 int width = 0, result;
1181 if (*argument ==
'\0')
1187 if (csql_column_width_info_list[i].name ==
NULL)
1192 if (csql_column_width_info_list[i].width <= 0)
1197 fprintf (
csql_Output_fp,
"COLUMN-WIDTH %s : %d\n", csql_column_width_info_list[i].name,
1198 csql_column_width_info_list[i].width);
1203 char *val_str =
NULL;
1208 fprintf (
csql_Error_fp,
"ERROR: Column name is too long.\n");
1212 if (val_str ==
NULL)
1215 fprintf (
csql_Output_fp,
"COLUMN-WIDTH %s : %d\n", column_name, width);
1220 result =
parse_int (&width, val_str, 10);
1221 if (result != 0 || width < 0)
1223 fprintf (
csql_Error_fp,
"ERROR: Invalid argument(%s).\n", val_str);
1238 int string_width = 0, result;
1240 if (*argument !=
'\0')
1244 result =
parse_int (&string_width, argument, 10);
1246 if (result != 0 || string_width < 0)
1248 fprintf (
csql_Error_fp,
"ERROR: Invalid string-width(%s).\n", argument);
1263 if (!strcasecmp (argument,
"on"))
1281 else if (!strcasecmp (argument,
"off"))
1294 "Histogram is possible when the csql started with " "`communication_histogram=yes'\n");
1313 "Histogram on execution statistics " "is only allowed for the csql started " 1314 "with `communication_histogram=yes'\n");
1337 "Histogram on execution statistics " "is only allowed for the csql started " 1338 "with `communication_histogram=yes'\n");
1362 "Histogram on execution statistics " "is only allowed for the csql started " 1363 "with `communication_histogram=yes'\n");
1368 #if !defined(WINDOWS) 1371 if (argument[0] !=
'\0')
1373 int i = atoi (argument);
1377 hist = history_get (history_base + i - 1);
1387 fprintf (
csql_Error_fp,
"ERROR: Invalid history number(%s).\n", argument);
1397 fprintf (
csql_Error_fp,
"ERROR: HISTORYRead {history_number}\n");
1404 "ERROR: Windows do not support HISTORYList" " and HISTORYRead session commands in csql.\n");
1410 #if !defined(WINDOWS) 1413 for (
int i = 0;
i < history_length;
i++)
1415 hist_entry = history_get (
i + 1);
1416 if (hist_entry !=
NULL && hist_entry->line !=
NULL)
1427 "ERROR: Windows do not support HISTORYList" " and HISTORYRead session commands in csql.\n");
1432 if (csql_arg->
sa_mode ==
false)
1438 fprintf (
csql_Error_fp,
"Auto trace isn't allowed in SA mode.\n");
1454 static char current_file[PATH_MAX] =
"";
1456 FILE *fp = (FILE *)
NULL;
1460 if (p ==
NULL || p[0] ==
'\0')
1466 if (current_file[0] !=
'\0')
1477 for (q = p; *q !=
'\0' && !iswspace ((wint_t) (*q)); q++)
1481 for (; *q !=
'\0' && iswspace ((wint_t) (*q)); q++)
1492 fp = fopen (p,
"r");
1534 static char current_file[PATH_MAX] =
"";
1537 FILE *fp = (FILE *)
NULL;
1541 if (p ==
NULL || p[0] ==
'\0')
1547 if (current_file[0] !=
'\0')
1556 for (q = p; *q !=
'\0' && !iswspace ((wint_t) (*q)); q++)
1560 for (; *q !=
'\0' && iswspace ((wint_t) (*q)); q++)
1571 fp = fopen (p, (append_flag) ?
"a" :
"w");
1632 fflush (file.get ());
1664 char buf[100 + PATH_MAX];
1670 if (dirname ==
NULL)
1672 #if defined (WINDOWS) 1673 static char home_path[PATH_MAX];
1675 sprintf (home_path,
"%s%s", getenv (
"HOMEDRIVE"), getenv (
"HOMEPATH"));
1676 dirname = home_path;
1678 dirname = getenv (
"HOME");
1682 if (dirname ==
NULL || chdir (dirname) == -1)
1689 snprintf (buf,
sizeof (buf) - 1,
"\n%s %s.\n\n", msg, dirname);
1735 int stmt_start_line_no = 0;
1739 bool do_abort_transaction =
false;
1796 #if !defined(WINDOWS) 1799 add_history (stmts);
1807 #if !defined(WINDOWS) 1810 add_history (stmts);
1815 total = MAX (total, 1);
1822 for (num_stmts = 0; num_stmts < total; num_stmts++)
1867 do_abort_transaction =
true;
1884 if (do_abort_transaction)
1887 do_abort_transaction =
false;
1918 stmt_start_line_no = line_no;
1938 do_abort_transaction =
true;
1943 if (do_abort_transaction)
1946 do_abort_transaction =
false;
1975 csql_results (csql_arg, result, attr_spec, stmt_start_line_no, stmt_type);
2052 sprintf (time,
" (%ld.%06ld sec) ", elapsed_time.tv_sec, elapsed_time.tv_usec);
2053 strncat (stmt_msg, time,
sizeof (stmt_msg) -
strlen (stmt_msg) - 1);
2064 do_abort_transaction =
true;
2069 if (do_abort_transaction)
2072 do_abort_transaction =
false;
2124 do_abort_transaction ==
2167 if (do_abort_transaction)
2170 do_abort_transaction =
false;
2214 if (*attr_spec !=
NULL)
2227 struct sockaddr_in sin;
2228 const char *
db_name, *host_name;
2237 if (db_name ==
NULL || host_name ==
NULL)
2243 sin.sin_family = AF_INET;
2244 sin.sin_addr.s_addr = inet_addr (host_name);
2247 getnameinfo ((
struct sockaddr *) &sin,
sizeof (sin), converted_host_name,
sizeof (converted_host_name),
NULL, 0,
2259 if (strcasecmp (converted_host_name,
"localhost") == 0
2260 || strcasecmp (converted_host_name,
"localhost.localdomain") == 0)
2273 pstr = (
char *) strchr (db_name,
'@');
2281 fprintf (
csql_Output_fp,
"\n\t%s@%s\n\n", db_name, converted_host_name);
2286 fprintf (
csql_Output_fp,
"\n\t%s@%s [%s]\n\n", db_name, converted_host_name, ha_state);
2309 int len =
sizeof (ans);
2311 if (arg_str ==
NULL)
2314 if (strncmp (arg_str,
"cost", 4) == 0 && sscanf (arg_str,
"cost %127s %127s", plantype, val) == 2)
2318 snprintf (ans, len - 1,
"cost %s: %s", plantype, val);
2322 snprintf (ans, len - 1,
"error: unknown cost parameter %s", plantype);
2325 else if (strncmp (arg_str,
"level", 5) == 0 && sscanf (arg_str,
"level %d", &level) == 1)
2328 snprintf (ans, len - 1,
"level %d", level);
2332 strncpy (ans, arg_str, len - 1);
2335 snprintf (ans, len,
"error: set %s", arg_str);
2356 int len =
sizeof (ans);
2358 if (arg_str ==
NULL)
2361 if (strncmp (arg_str,
"cost", 4) == 0 && sscanf (arg_str,
"cost %127s", plantype) == 1)
2366 snprintf (ans, len,
"error: unknown cost parameter %s", arg_str);
2370 snprintf (ans, len,
"cost %s: %c", arg_str, (
char) cost);
2373 else if (strcmp (arg_str,
"level") == 0)
2376 snprintf (ans, len,
"level %d", level);
2380 strncpy (ans, arg_str, len - 1);
2383 snprintf (ans, len - 1,
"error: get %s", arg_str);
2405 if (arg_str !=
NULL)
2407 if (!strncmp (arg_str,
"simple", 6))
2413 else if (!strncmp (arg_str,
"detail", 6))
2419 else if (!strncmp (arg_str,
"off", 3))
2421 level &= ~(0x100 | 0x200);
2430 snprintf (line, 128,
"plan simple (opt level %d)", level);
2434 snprintf (line, 128,
"plan detail (opt level %d)", level);
2439 snprintf (line, 128,
"plan off (opt level %d)", level);
2452 #if defined(WINDOWS) 2465 #if defined(WINDOWS) 2466 if (sig_no == CTRL_C_EVENT)
2487 static int cont = 0;
2489 #if defined(WINDOWS) 2493 if (sig_no == SIGTSTP)
2528 bool commit_on_shutdown =
false;
2551 if (line_buf[0] ==
'y' || line_buf[0] ==
'Y')
2553 commit_on_shutdown =
true;
2557 if (line_buf[0] ==
'n' || line_buf[0] ==
'N')
2559 commit_on_shutdown =
false;
2594 csql_exit (error ? EXIT_FAILURE : EXIT_SUCCESS);
2709 unsigned char ip_addr[16] = {
"0" };
2748 #if defined(WINDOWS) 2759 #if defined(WINDOWS) 2781 printf (
"Failed to initialize error manager.\n");
2881 #if defined(CSQL_NO_LOGGING) 2894 env = getenv (
"EDITOR");
2900 env = getenv (
"SHELL");
2916 #if defined(WINDOWS) 2926 #if !defined(WINDOWS) 2945 return EXIT_FAILURE;
2973 if (column_name ==
NULL || column_width < 0)
2980 if (csql_column_width_info_list ==
NULL)
2993 if (temp_list ==
NULL)
3001 csql_column_width_info_list = temp_list;
3004 csql_column_width_info_list[
i].
name =
NULL;
3005 csql_column_width_info_list[
i].
width = 0;
3012 if (strcasecmp (column_name, csql_column_width_info_list[i].name) == 0)
3022 csql_column_width_info_list_index++;
3025 if (csql_column_width_info_list[index].name ==
NULL)
3027 temp_name =
strdup (column_name);
3028 if (temp_name ==
NULL)
3035 csql_column_width_info_list[
index].
name = temp_name;
3036 csql_column_width_info_list[
index].
width = column_width;
3040 csql_column_width_info_list[
index].
width = column_width;
3054 char name_without_space[1024];
3058 if (column_name ==
NULL)
3063 if (csql_column_width_info_list ==
NULL)
3068 strncpy (name_without_space, column_name,
sizeof (name_without_space) - 1);
3069 name_without_space[
sizeof (name_without_space) - 1] =
'\0';
3070 result =
trim (name_without_space);
3078 if (strcasecmp (result, csql_column_width_info_list[i].name) == 0)
3080 return csql_column_width_info_list[
i].
width;
3101 *column_name =
NULL;
3105 *column_name = argument;
3107 p = strrchr (*column_name,
'=');
3114 trim (*column_name);
3117 if (
strlen (*column_name) > 254)
3134 char format[128], *
p;
3136 if (arg_str !=
NULL)
3138 if (strncmp (arg_str,
"on", 2) == 0)
3143 if (sscanf (arg_str,
"on %127s", format) == 1)
3147 if (strncmp (p,
"text", 4) == 0)
3151 else if (strncmp (p,
"json", 4) == 0)
3157 else if (!strncmp (arg_str,
"off", 3))
3168 snprintf (line, 128,
"trace on json");
3172 snprintf (line, 128,
"trace on text");
3177 snprintf (line, 128,
"trace off");
3192 const char *stmts =
NULL;
3194 int stmt_id, dummy, db_error;
3205 stmts =
"SHOW TRACE";
3208 if (session ==
NULL)
3242 fprintf (pf,
"\n=== Auto Trace ===\n");
3243 fprintf (pf,
"%s\n",
db_get_char (&trace, &dummy));
3254 if (session !=
NULL)
3278 if (gethostname (hostname,
sizeof (hostname)) < 0)
3282 if ((hp = gethostbyname (hostname)) ==
NULL)
3287 ip = inet_ntoa (*(
struct in_addr *) *hp->h_addr_list);
3288 memcpy (ip_addr, ip,
strlen (ip));
static bool csql_Is_echo_on
static void csql_pipe_handler(int sig_no)
void csql_edit_contents_finalize(void)
const char * csql_get_message(int message_index)
static int csql_column_width_info_list_size
void logddl_set_msg(const char *fmt,...)
void db_set_interrupt(int set)
#define LOGDDL_MSG_AUTO_ROLLBACK
void csql_invoke_system(const char *command)
char * dirname(const char *path)
void csql_help_trigger(const char *class_name)
void qo_get_optimization_param(void *, QO_PARAM,...)
void logddl_write_end_for_csql_fileinput(const char *fmt,...)
bool csql_is_statement_in_block(void)
void csql_display_session_err(DB_SESSION *session, int line_no)
void logddl_set_db_name(const char *db_name)
#define MSGCAT_CATALOG_CSQL
void csql_help_schema(const char *class_name)
static bool csql_Query_trace
void histo_print(FILE *stream)
#define DETAILED_DUMP(level)
void csql_walk_statement(const char *str)
int parse_int(int *ret_p, const char *str_p, int base)
void qo_set_optimization_param(void *, QO_PARAM,...)
void csql_fputs_console_conv(const char *str, FILE *fp)
static int get_host_ip(unsigned char *ip_addr)
int csql_set_column_width_info(const char *column_name, int column_width)
int db_set_system_parameters(const char *data)
int db_query_end(DB_QUERY_RESULT *result)
int(* text_to_utf8_func)(const char *, const int, char **, int *)
static void signal_stop(int sig_no)
#define ER_IT_EMPTY_STATEMENT
int db_reset_latest_query_status(void)
void csql_results(const CSQL_ARGUMENT *csql_arg, DB_QUERY_RESULT *result, DB_QUERY_TYPE *attr_spec, int line_no, CUBRID_STMT_TYPE stmt_type)
bool au_is_dba_group_member(MOP user)
void csql_display_msg(const char *string)
int db_get_start_line(DB_SESSION *session, int stmt)
static jmp_buf csql_Jmp_buf
void db_query_format_free(DB_QUERY_TYPE *query_type)
static void start_csql(CSQL_ARGUMENT *csql_arg)
struct timeval TSCTIMEVAL
DB_CONST_C_CHAR db_get_char(const DB_VALUE *value, int *length)
#define LOGDDL_MSG_AUTO_COMMIT
void tsc_elapsed_time_usec(TSCTIMEVAL *tv, TSC_TICKS end_tick, TSC_TICKS start_tick)
static void display_error(DB_SESSION *session, int stmt_start_line_no)
#define LOGDDL_TRAN_TYPE_COMMIT
const char * qo_plan_set_cost_fn(const char *, int)
void os_send_signal(const int sig_no)
int csql_edit_contents_append(const char *str, bool flag_append_new_line)
void prm_set_integer_value(PARAM_ID prm_id, int value)
void db_ws_free(void *ptr)
void logddl_set_logging_enabled(bool enable)
void logddl_set_sql_text(char *sql_text, int len)
bool db_disable_trigger(void)
#define SIMPLE_DUMP(level)
int er_init(const char *msglog_filename, int exit_ask)
void er_set_print_property(int print_console)
void csql_help_info(const char *command, int aucommit_flag)
static void free_csql_column_width_info_list()
char * db_get_host_connected(void)
void csql_fputs(const char *str, FILE *fp)
static int csql_do_session_cmd(char *line_read, CSQL_ARGUMENT *csql_arg)
int db_get_system_parameters(char *data, int len)
int csql_append_more_line(int indent, const char *line)
int csql_get_session_cmd_no(const char *input)
int(* csql_text_console_to_utf8)(const char *, const int, char **, int *)
static jmp_buf csql_Exit_env
#define DB_CONNECTION_STATUS_CONNECTED
INTL_CODESET lang_charset(void)
static void csql_set_plan_dump(const char *arg_str)
char * csql_edit_contents_get(void)
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)
std::unique_ptr< FILE, file_closer > auto_close_file
static int get_column_name_argument(char **column_name, char **val_str, char *argument)
void logddl_set_csql_input_type(T_CSQL_INPUT_TYPE input_type)
void er_final(ER_FINAL_CODE do_global_final)
void csql_check_server_down(void)
static void csql_set_trace(const char *arg_str)
static void csql_get_sys_param(const char *arg_str)
static bool csql_is_auto_commit_requested(const CSQL_ARGUMENT *csql_arg)
int prm_get_integer_value(PARAM_ID prm_id)
char * db_get_database_name(void)
void csql_help_menu(void)
char * csql_get_real_path(const char *pathname)
int db_query_first_tuple(DB_QUERY_RESULT *result)
static FILE * csql_Tty_fp
static int csql_execute_statements(const CSQL_ARGUMENT *csql_arg, int type, const void *stream, int line_no)
void csql_killtran(const char *argument)
int db_get_ha_server_state(char *buffer, int maxlen)
int utility_localtime(const time_t *ts, struct tm *result)
void db_drop_statement(DB_SESSION *session, int stmt)
void logddl_set_load_filename(const char *load_filename)
#define CSQL_SESSION_COMMAND_PREFIX(C)
const char * out_file_name
static void csql_exit_cleanup(void)
bool intl_is_bom_magic(const char *buf, const int size)
int db_abort_transaction(void)
void db_update_row_count_cache(const int row_count)
void csql_display_csql_err(int line_no, int col_no)
int db_execute_statement(DB_SESSION *session, int stmt_ndx, DB_QUERY_RESULT **result)
static bool csql_Is_sigint_caught
#define strncpy_bufsize(buf, str)
void lang_init_console_txt_conv(void)
#define DDL_LOG_BUFFER_SIZE
void tsc_getticks(TSC_TICKS *tck)
bool prm_get_commit_on_shutdown(void)
DB_SESSION * db_open_buffer(const char *buffer)
static void csql_display_trace(void)
int db_compile_statement(DB_SESSION *session)
void db_close_session(DB_SESSION *session)
void db_free_query(DB_SESSION *session)
#define MSGCAT_CSQL_SET_CSQL
static char csql_Name[100]
bool single_line_execution
char csql_Scratch_text[SCRATCH_TEXT_LEN]
int csql(const char *argv0, CSQL_ARGUMENT *csql_arg)
FILE * csql_popen(const char *cmd, FILE *fd)
static CSQL_COLUMN_WIDTH_INFO * csql_column_width_info_list
void csql_pclose(FILE *pf, FILE *fd)
void csql_free_more_lines(void)
void csql_edit_contents_clear(void)
bool histo_is_supported(void)
void csql_display_more_lines(const char *title)
bool csql_is_statement_complete(void)
int csql_edit_write_file(FILE *fp)
int jsp_send_destroy_request_all()
static void(* csql_pipe_save)(int sig)
#define INTL_UTF8_MAX_CHAR_SIZE
static char csql_Prompt[100]
static void error(const char *msg)
int db_get_statement_type(DB_SESSION *session, int stmt)
static void free_attr_spec(DB_QUERY_TYPE **attr_spec)
char csql_Print_cmd[PATH_MAX]
static bool csql_Is_time_on
#define ER_AU_INVALID_PASSWORD
int histo_start(bool for_all_trans)
static void csql_read_file(const char *file_name)
char csql_Pager_cmd[PATH_MAX]
std::pair< std::string, FILE * > open_temp_file(const char *prefix, const char *mode="w", int flags=0)
static void signal_intr(int sig_no)
static char * csql_get_external_command(SESSION_CMD cmd_no)
std::unique_ptr< const char, file_deleter > auto_delete_file
void logddl_set_pid(const int pid)
int(* csql_text_utf8_to_console)(const char *, const int, char **, int *)
int csql_get_column_width(const char *column_name)
int db_get_client_type(void)
#define free_and_init(ptr)
static void csql_exit_session(int error)
static int csql_column_width_info_list_index
static void csql_exit_init(void)
static bool csql_Database_connected
void logddl_set_app_name(T_APP_NAME app_name)
void csql_exit(int exit_status)
int db_get_row_count_cache(void)
void logddl_set_commit_mode(bool mode)
bool prm_get_bool_value(PARAM_ID prm_id)
DB_QUERY_TYPE * db_get_query_type_list(DB_SESSION *session, int stmt_ndx)
int db_query_set_copy_tplvalue(DB_QUERY_RESULT *result, int copy)
int qo_plan_get_cost_fn(const char *)
KEYWORD_RECORD * pt_get_keyword_rec(int *rec_count)
static void csql_print_buffer(void)
static bool csql_Is_interactive
static void csql_print_database(void)
#define DB_VALUE_TYPE(value)
void nonscr_display_error(char *buffer, int buf_length)
int db_make_null(DB_VALUE *value)
char * msgcat_message(int cat_id, int set_id, int msg_id)
int csql_invoke_system_editor(void)
char * strdup(const char *str)
bool logddl_get_jsp_mode()
int(* utf8_to_text_func)(const char *, const int, char **, int *)
void logddl_set_user_name(const char *user_name)
DB_QUERY_TYPE * db_get_query_type_ptr(DB_QUERY_RESULT *result)
int db_query_get_tuple_value(DB_QUERY_RESULT *result, int index, DB_VALUE *value)
#define LOGDDL_TRAN_TYPE_ROLLBACK
char * csql_get_tmp_buf(size_t size)
void logddl_write_tran_str(const char *fmt,...)
static void csql_change_working_directory(const char *dirname)
void logddl_free(bool all_free)
TEXT_CONVERSION * lang_get_txt_conv(void)
static int csql_Exit_status
#define COLUMN_WIDTH_INFO_LIST_INIT_SIZE
void prm_set_bool_value(PARAM_ID prm_id, bool value)
int db_commit_is_needed(void)
int db_set_statement_auto_commit(DB_SESSION *session, bool auto_commit)
void logddl_set_err_code(int err_code)
#define CUB_MAXHOSTNAMELEN
static void display_buffer(void)
static int initialize_csql_column_width_info_list()
char csql_Editor_cmd[PATH_MAX]
#define PLAN_DUMP_ENABLED(level)
void logddl_set_ip(const char *ip_addr)
void logddl_set_stmt_type(int stmt_type)
const char * in_file_name
static int csql_Is_histo_on
DB_SESSION_ERROR * db_get_errors(DB_SESSION *session)
static void csql_set_sys_param(const char *arg_str)
SIGNAL_HANDLER_FUNCTION os_set_signal_handler(const int sig_no, SIGNAL_HANDLER_FUNCTION sig_handler)
#define GETHOSTNAME(p, l)
DB_SESSION * db_open_file(FILE *file)
int db_statement_count(DB_SESSION *session)
static void csql_write_file(const char *file_name, int append_flag)
void logddl_set_file_line(int file_line)
int db_commit_transaction(void)
int locator_log_force_nologging(void)
int csql_edit_read_file(FILE *fp)
void logddl_set_start_time(struct timeval *time_val)
char csql_Shell_cmd[PATH_MAX]