46 #define APPEND_MORE_LINE(indent, line) \ 48 if(csql_append_more_line((indent), (line)) == CSQL_FAILURE) \ 51 #define APPEND_HEAD_LINE(head_text) \ 53 APPEND_MORE_LINE(0, ""); \ 54 APPEND_MORE_LINE(1, (head_text)); \ 55 APPEND_MORE_LINE(0, ""); \ 64 #define CMD_EMPTY_FLAG 0x00000000 65 #define CMD_CHECK_CONNECT 0x00000001 144 int input_cmd_length;
146 int matched_index = -1;
154 input_cmd_length = (int)
strlen (input);
157 for (i = 0; i < (int) DIM (csql_Session_cmd_table); i++)
159 if (strncasecmp (input, csql_Session_cmd_table[i].text, input_cmd_length) == 0)
163 ses_cmd_length = (int)
strlen (csql_Session_cmd_table[i].text);
164 if (ses_cmd_length == input_cmd_length)
166 return (csql_Session_cmd_table[i].cmd_no);
172 if (num_matches != 1)
177 #if defined (CS_MODE) 189 return (csql_Session_cmd_table[matched_index].cmd_no);
226 char *class_name_composed =
NULL;
227 int composed_size, class_name_size;
230 if (class_name ==
NULL || class_name[0] == 0)
237 class_name_size = (int)
strlen (class_name);
241 bool is_composed =
false;
243 class_name_composed = (
char *) malloc (composed_size + 1);
244 if (class_name_composed ==
NULL)
252 class_name_composed[composed_size] =
'\0';
253 assert (composed_size <= class_name_size);
257 class_name = class_name_composed;
268 strcpy (fixed_class_name, class_name);
275 class_name = fixed_class_name;
293 for (line_ptr = class_descr.
supers; *line_ptr !=
NULL; line_ptr++)
302 for (line_ptr = class_descr.
subs; *line_ptr !=
NULL; line_ptr++)
315 for (line_ptr = class_descr.
attributes; *line_ptr !=
NULL; line_ptr++)
334 for (line_ptr = class_descr.
constraints; *line_ptr !=
NULL; line_ptr++)
349 for (line_ptr = class_descr.
methods; *line_ptr !=
NULL; line_ptr++)
367 for (line_ptr = class_descr.
resolutions; *line_ptr !=
NULL; line_ptr++)
385 for (line_ptr = class_descr.
query_spec; *line_ptr !=
NULL; line_ptr++)
394 #if 0 //bSolo: temporary until evolve above gcc 4.4.7 396 for (
auto it : class_descr.
triggers)
402 for (
auto it = class_descr.
triggers.begin (); it != class_descr.
triggers.end (); ++it)
412 #if 0 //bSolo: temporary until evolve above gcc 4.4.7 420 for (
auto it = class_descr.
partition.begin (); it != class_descr.
partition.end (); ++it)
431 if (class_name_composed !=
NULL)
439 if (class_name_composed !=
NULL)
463 char **all_triggers =
NULL;
464 char *trigger_name_composed =
NULL;
470 if (trigger_name ==
NULL || strcmp (trigger_name,
"*") == 0)
479 if (all_triggers ==
NULL)
488 for (line_ptr = all_triggers; *line_ptr !=
NULL; line_ptr++)
499 int trigger_name_size, composed_size;
502 trigger_name_size = (int)
strlen (trigger_name);
507 bool is_composed =
false;
509 trigger_name_composed = (
char *) malloc (composed_size + 1);
510 if (trigger_name_composed ==
NULL)
516 unicode_compose_string (trigger_name, trigger_name_size, trigger_name_composed, &composed_size, &is_composed,
518 trigger_name_composed[composed_size] =
'\0';
519 assert (composed_size <= trigger_name_size);
523 trigger_name = trigger_name_composed;
584 if (all_triggers !=
NULL)
590 if (trigger_name_composed !=
NULL)
600 if (trigger_name_composed !=
NULL)
604 if (all_triggers !=
NULL)
649 char *dup =
NULL, *tok, *save;
651 #if !defined(WINDOWS) 652 void (*csql_intr_save) (
int sig);
668 tok = strtok_r (dup,
" \t", &save);
670 && (!strcasecmp (tok,
"schema") || !strcasecmp (tok,
"trigger") || !strcasecmp (tok,
"deferred")
671 || !strcasecmp (tok,
"workspace") || !strcasecmp (tok,
"lock") || !strcasecmp (tok,
"stats")
672 || !strcasecmp (tok,
"logstat") || !strcasecmp (tok,
"csstat") || !strcasecmp (tok,
"plan")
673 || !strcasecmp (tok,
"qcache") || !strcasecmp (tok,
"trantable")))
677 #if !defined(WINDOWS) 678 csql_intr_save = signal (SIGINT, SIG_IGN);
681 SetConsoleCtrlHandler (
NULL,
true);
704 #if !defined(WINDOWS) 705 signal (SIGINT, csql_intr_save);
708 SetConsoleCtrlHandler (
NULL,
false);
758 int tran_index = -1,
i;
759 #if !defined(WINDOWS) 765 tran_index = atoi (argument);
778 #if !defined(WINDOWS) 782 #if !defined(WINDOWS) const char * csql_get_message(int message_index)
int help_trigger_names(char ***names_ptr)
int csql_get_session_cmd_no(const char *input)
#define APPEND_MORE_LINE(indent, line)
bool unicode_string_need_compose(const char *str_in, const int size_in, int *size_out, const UNICODE_NORMALIZATION *norm)
std::vector< char * > partition
int init(const char *name)
#define MSGCAT_CATALOG_CSQL
const char * tran_get_tranlist_state_name(TRAN_STATE state)
int thread_kill_tran_index(int kill_tran_index, char *kill_user, char *kill_host, int kill_pid)
TRANS_INFO * logtb_get_trans_info(bool include_query_exec_info)
void csql_help_schema(const char *class_name)
void csql_display_msg(const char *string)
void unicode_compose_string(const char *str_in, const int size_in, char *str_out, int *size_out, bool *is_composed, const UNICODE_NORMALIZATION *norm)
#define ER_OBJ_NO_CONNECT
int csql_append_more_line(int indent, const char *line)
int init(const char *name)
#define DB_CONNECTION_STATUS_CONNECTED
void er_set(int severity, const char *file_name, const int line_no, int err_id, int num_args,...)
void csql_check_server_down(void)
static jmp_buf csql_Jmp_buf
void help_print_info(const char *command, FILE *fpp)
void csql_help_trigger(const char *trigger_name)
#define DB_MAX_IDENTIFIER_LENGTH
void csql_help_info(const char *command, int aucommit_flag)
void db_set_read_fetch_instance_version(LC_FETCH_VERSION_TYPE read_Fetch_Instance_Version)
void csql_display_csql_err(int line_no, int col_no)
UNICODE_NORMALIZATION * lang_get_generic_unicode_norm(void)
static void csql_dump_alltran(volatile TRANS_INFO *info)
void help_free_names(char **names)
void logtb_free_trans_info(TRANS_INFO *info)
#define MSGCAT_CSQL_SET_CSQL
#define TM_TRAN_READ_FETCH_VERSION()
char csql_Scratch_text[SCRATCH_TEXT_LEN]
FILE * csql_popen(const char *cmd, FILE *fd)
void csql_pclose(FILE *pf, FILE *fd)
void csql_free_more_lines(void)
static void csql_pipe_handler(int sig_no)
void csql_display_more_lines(const char *title)
static void(* csql_pipe_save)(int sig)
static void error(const char *msg)
const char * condition_time
char csql_Pager_cmd[PATH_MAX]
#define free_and_init(ptr)
void csql_killtran(const char *argument)
#define CMD_CHECK_CONNECT
void nonscr_display_error(char *buffer, int buf_length)
char * msgcat_message(int cat_id, int set_id, int msg_id)
int intl_identifier_fix(char *name, int ident_max_size, bool error_on_case_overflow)
char * strdup(const char *str)
void csql_help_menu(void)
#define APPEND_HEAD_LINE(head_text)
std::vector< char * > triggers
static SESSION_CMD_TABLE csql_Session_cmd_table[]
int db_commit_transaction(void)