Skip to content

File ddl_log.h

File List > base > ddl_log.h

Go to the documentation of this file

/*
 * Copyright 2008 Search Solution Corporation
 * Copyright 2016 CUBRID Corporation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */


/*
 * ddl_log.h -
 */

#ifndef _DDL_LOG_H_
#define _DDL_LOG_H_

#ident "$Id$"

#include "parse_tree.h"

#define LOGDDL_RUN_EXECUTE_FUNC              (1)
#define LOGDDL_RUN_EXECUTE_BATCH_FUNC        (2)

#define LOGDDL_MSG_AUTO_COMMIT              "auto_commit"
#define LOGDDL_MSG_AUTO_ROLLBACK            "auto_rollback"

#define LOGDDL_TRAN_TYPE_COMMIT             "COMMIT"
#define LOGDDL_TRAN_TYPE_ROLLBACK           "ROLLBACK"
#define LOGDDL_TRAN_TYPE_ABORT              "ABORT"

#define DDL_LOG_BUFFER_SIZE                 (8192)

typedef enum
{
  LOADDB_FILE_TYPE_NONE,
  LOADDB_FILE_TYPE_INPUT,
  LOADDB_FILE_TYPE_INDEX,
  LOADDB_FILE_TYPE_TRIGGER,
  LOADDB_FILE_TYPE_OBJECT,
  LOADDB_FILE_TYPE_SCHEMA
} T_LOADDB_FILE_TYPE;

typedef enum
{
  CSQL_INPUT_TYPE_NONE = -1,
  CSQL_INPUT_TYPE_FILE,
  CSQL_INPUT_TYPE_STRING,
  CSQL_INPUT_TYPE_EDITOR
} T_CSQL_INPUT_TYPE;

typedef enum
{
  APP_NAME_NONE,
  APP_NAME_CAS,
  APP_NAME_CSQL,
  APP_NAME_LOADDB
} T_APP_NAME;

extern void logddl_init (T_APP_NAME app_name);
extern void logddl_free (bool all_free);
extern void logddl_destroy ();
extern void logddl_check_ddl_audit_param ();
extern void logddl_set_db_name (const char *db_name);
extern void logddl_set_user_name (const char *user_name);
extern void logddl_set_ip (const char *ip_addr);
extern void logddl_set_broker_info (const int index, const char *br_name);
extern void logddl_set_loaddb_file_type (T_LOADDB_FILE_TYPE file_type);
extern void logddl_set_csql_input_type (T_CSQL_INPUT_TYPE input_type);
extern void logddl_set_load_filename (const char *load_filename);
extern void logddl_set_file_line (int file_line);
extern void logddl_set_err_code (int err_number);
extern void logddl_set_start_time (struct timeval *time_val);
extern void logddl_set_msg (const char *fmt, ...);
extern void logddl_set_execute_type (char type);
extern void logddl_set_commit_count (int count);
extern void logddl_write ();
extern void logddl_write_end ();
extern void logddl_set_commit_mode (bool mode);
extern void logddl_write_tran_str (const char *fmt, ...);
extern void logddl_write_end_for_csql_fileinput (const char *fmt, ...);

extern void logddl_check_and_set_query_text (PT_NODE * statement, int stmt_type, PARSER_CONTEXT * parser);
extern void logddl_set_callback_stmt (int stmt_type, char *sql, int len, int err_code,
                      HIDE_PWD_INFO_PTR hide_pwd_info_ptr);
extern void logddl_reset_query_text ();

#ifdef _USE_ERR_MSG_IN_LOGDDL_
extern void logddl_set_err_msg (char *msg);
#else
#define logddl_set_err_msg(m)
#endif

#endif /* _DDL_LOG_H_ */