CUBRID Engine
latest
|
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <assert.h>
#include "authenticate.h"
#include "error_code.h"
#include "system_parameter.h"
#include "message_catalog.h"
#include "db.h"
#include "utility.h"
#include "parser.h"
#include "object_print.h"
#include "schema_manager.h"
#include "transaction_cl.h"
#include "util_func.h"
#include "client_support.h"
#include "connection_support.h"
#include "environment_variable.h"
#include "network_interface_cl.h"
#include "locator_cl.h"
#include "db_value_printer.hpp"
#include "mem_block.hpp"
#include "string_buffer.hpp"
#include "dbtype.h"
Go to the source code of this file.
Classes | |
struct | chksum_result |
struct | chksum_arg |
Typedefs | |
typedef struct chksum_result | CHKSUM_RESULT |
typedef struct chksum_arg | CHKSUM_ARG |
Variables | |
CHKSUM_RESULT * | chksum_Prev_results = NULL |
char | chksum_result_Table_name [SM_MAX_IDENTIFIER_LENGTH] |
char | chksum_schema_Table_name [SM_MAX_IDENTIFIER_LENGTH] |
#define CHKSUM_DEFAULT_LIST_SIZE 10 |
Definition at line 54 of file checksumdb.c.
Referenced by checksumdb().
#define CHKSUM_DEFAULT_TABLE_NAME "db_ha_checksum" |
Definition at line 56 of file checksumdb.c.
Referenced by checksumdb().
#define CHKSUM_MIN_CHUNK_SIZE 100 |
Definition at line 55 of file checksumdb.c.
Referenced by checksumdb().
#define CHKSUM_PRINT_AND_LOG | ( | fp, | |
... | |||
) |
Definition at line 77 of file checksumdb.c.
Referenced by chksum_report_diff(), chksum_report_header(), chksum_report_schema_diff(), and chksum_report_summary().
#define CHKSUM_SCHEMA_TABLE_SUFFIX "_schema" |
Definition at line 57 of file checksumdb.c.
Referenced by checksumdb().
#define CHKSUM_STOP_ON_ERROR | ( | err, | |
arg | |||
) |
Definition at line 73 of file checksumdb.c.
Referenced by chksum_start().
#define CHKSUM_TABLE_BEGINS_AT_COL "begins_at" |
Definition at line 65 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), and chksum_print_checksum_query().
#define CHKSUM_TABLE_CHUNK_CHECKSUM_COL "chunk_checksum" |
Definition at line 62 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), chksum_print_checksum_query(), chksum_report_diff(), and chksum_report_summary().
#define CHKSUM_TABLE_CHUNK_ID_COL "chunk_id" |
Definition at line 60 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_get_prev_checksum_results(), chksum_init_checksum_tables(), chksum_print_checksum_query(), chksum_print_update_master_checksum(), and chksum_report_diff().
#define CHKSUM_TABLE_CLASS_NAME_COL "class_name" |
Definition at line 59 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_get_prev_checksum_results(), chksum_init_checksum_tables(), chksum_print_checksum_query(), chksum_print_update_master_checksum(), chksum_report_diff(), chksum_report_schema_diff(), chksum_report_summary(), and chksum_update_current_schema_definition().
#define CHKSUM_TABLE_COUNT_COL "chunk_count" |
Definition at line 63 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_get_prev_checksum_results(), chksum_init_checksum_tables(), and chksum_print_checksum_query().
#define CHKSUM_TABLE_ELAPSED_TIME_COL "elapsed_time" |
Definition at line 66 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), chksum_print_checksum_query(), and chksum_report_summary().
#define CHKSUM_TABLE_LOWER_BOUND_COL "chunk_lower_bound" |
Definition at line 61 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_get_prev_checksum_results(), chksum_init_checksum_tables(), chksum_print_checksum_query(), and chksum_report_diff().
#define CHKSUM_TABLE_MASTER_CHEKSUM_COL "master_checksum" |
Definition at line 64 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), chksum_print_update_master_checksum(), chksum_report_diff(), and chksum_report_summary().
#define CHKSUM_TABLE_MASTER_SCHEMA_COL "master_schema_def" |
Definition at line 68 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), and chksum_report_schema_diff().
#define CHKSUM_TABLE_SCHEMA_COL "schema_def" |
Definition at line 69 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), chksum_report_schema_diff(), and chksum_update_current_schema_definition().
#define CHKSUM_TABLE_SCHEMA_REPID_COL "representation_id" |
Definition at line 71 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), and chksum_update_current_schema_definition().
#define CHKSUM_TABLE_SCHEMA_TIME_COL "collected_time" |
Definition at line 70 of file checksumdb.c.
Referenced by chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), chksum_report_schema_diff(), and chksum_update_current_schema_definition().
#define QUERY_BUF_SIZE 1024 |
#define QUERY_BUF_SIZE 1024 |
#define QUERY_BUF_SIZE 1024 |
#define QUERY_BUF_SIZE 2048 |
#define QUERY_BUF_SIZE 2048 |
#define QUERY_BUF_SIZE 2048 |
#define QUERY_BUF_SIZE 2048 |
typedef struct chksum_arg CHKSUM_ARG |
Definition at line 93 of file checksumdb.c.
typedef struct chksum_result CHKSUM_RESULT |
Definition at line 83 of file checksumdb.c.
int checksumdb | ( | UTIL_FUNCTION_ARG * | arg | ) |
Definition at line 2068 of file checksumdb.c.
References UTIL_FUNCTION_ARG::arg_map, UTIL_FUNCTION_ARG::argv0, assert, AU_DISABLE_PASSWORDS, basename(), begin(), check_database_name(), CHECKSUM_CHUNK_SIZE_S, CHECKSUM_CONT_ON_ERROR_S, CHECKSUM_EXCLUDE_CLASS_FILE_S, CHECKSUM_INCLUDE_CLASS_FILE_S, CHECKSUM_REPORT_ONLY_S, CHECKSUM_RESUME_S, CHECKSUM_SCHEMA_ONLY_S, CHECKSUM_SLEEP_S, CHECKSUM_TABLE_NAME_S, CHECKSUM_TIMEOUT_S, CHECKSUMDB_MSG_HA_NOT_SUPPORT, CHECKSUMDB_MSG_INVALID_INPUT_FILE, CHECKSUMDB_MSG_MUST_RUN_ON_ACTIVE, CHECKSUMDB_MSG_NOT_IN_STANDALONE, CHECKSUMDB_MSG_USAGE, CHKSUM_DEFAULT_LIST_SIZE, CHKSUM_DEFAULT_TABLE_NAME, CHKSUM_MIN_CHUNK_SIZE, chksum_report(), chksum_result_Table_name, chksum_schema_Table_name, CHKSUM_SCHEMA_TABLE_SUFFIX, chksum_start(), chksum_arg::chunk_size, UTIL_FUNCTION_ARG::command_name, chksum_arg::cont_on_err, css_ha_server_state(), css_ha_server_state_string(), da_create(), da_destroy(), database_name, DB_CLIENT_TYPE_ADMIN_UTILITY, db_error_string(), db_login(), db_restart(), db_set_client_type(), db_set_isolation(), db_set_lock_timeout(), db_shutdown(), ER_FAILED, er_init(), ER_NEVER_EXIT, error(), chksum_arg::exclude_list, HA_SERVER_STATE_ACTIVE, HA_SERVER_STATE_NA, chksum_arg::include_list, MSGCAT_CATALOG_UTILS, msgcat_message(), MSGCAT_UTIL_GENERIC_INVALID_ARGUMENT, MSGCAT_UTIL_GENERIC_SERVICE_PROPERTY_FAIL, MSGCAT_UTIL_SET_CHECKSUMDB, NO_ERROR, NULL, OPTION_STRING_TABLE, PRINT_AND_LOG_ERR_MSG, chksum_arg::resume, chksum_arg::schema_only, chksum_arg::sleep_msecs, sm_check_name(), SM_MAX_IDENTIFIER_LENGTH, SYSPRM_LOAD_ALL, sysprm_load_and_init(), chksum_arg::timeout_msecs, TRAN_REPEATABLE_READ, TRUE, util_get_table_list_from_file(), util_log_write_errid(), utility_get_option_bool_value(), utility_get_option_int_value(), utility_get_option_string_table_size(), and utility_get_option_string_value().
|
static |
Definition at line 1671 of file checksumdb.c.
References ARG_FILE_LINE, chksum_print_checksum_query(), chksum_set_repl_info_and_demote_table_lock(), chksum_update_master_checksum(), db_execute(), db_query_end(), ER_CHKSUM_GENERIC_ERR, ER_ERROR_SEVERITY, ER_FAILED, er_set(), error(), NO_ERROR, NULL, and pt_get_varchar_bytes().
Referenced by chksum_start().
|
static |
Definition at line 667 of file checksumdb.c.
References chksum_result_Table_name, chksum_schema_Table_name, CHKSUM_TABLE_BEGINS_AT_COL, CHKSUM_TABLE_CHUNK_CHECKSUM_COL, CHKSUM_TABLE_CHUNK_ID_COL, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_COUNT_COL, CHKSUM_TABLE_ELAPSED_TIME_COL, CHKSUM_TABLE_LOWER_BOUND_COL, CHKSUM_TABLE_MASTER_CHEKSUM_COL, CHKSUM_TABLE_MASTER_SCHEMA_COL, CHKSUM_TABLE_SCHEMA_COL, CHKSUM_TABLE_SCHEMA_REPID_COL, CHKSUM_TABLE_SCHEMA_TIME_COL, db_commit_transaction(), db_execute(), db_query_end(), error(), NO_ERROR, NULL, and QUERY_BUF_SIZE.
Referenced by chksum_init_checksum_tables().
|
static |
Definition at line 739 of file checksumdb.c.
References free_and_init, chksum_result::last_lower_bound, chksum_result::next, and NULL.
Referenced by chksum_get_prev_checksum_results(), and chksum_start().
|
static |
Definition at line 768 of file checksumdb.c.
References chksum_Prev_results, chksum_result::class_name, chksum_result::next, and NULL.
Referenced by chksum_set_initial_chunk_id_and_lower_bound().
|
static |
Definition at line 1407 of file checksumdb.c.
References chksum_get_next_lower_bound(), and NULL.
Referenced by chksum_set_initial_chunk_id_and_lower_bound().
|
static |
Definition at line 1303 of file checksumdb.c.
References ARG_FILE_LINE, assert, chksum_print_lower_bound_string(), chksum_print_pk_list(), chksum_print_select_last_chunk(), DB_CURSOR_END, DB_CURSOR_ERROR, DB_CURSOR_SUCCESS, db_execute(), db_query_column_count(), db_query_end(), db_query_get_tuple_valuelist(), db_query_last_tuple(), db_value_clear(), ER_CHKSUM_GENERIC_ERR, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), free_and_init, i, NO_ERROR, NULL, and pt_get_varchar_bytes().
Referenced by chksum_get_initial_lower_bound(), and chksum_start().
|
static |
Definition at line 797 of file checksumdb.c.
References ARG_FILE_LINE, chksum_free_results(), chksum_Prev_results, chksum_result_Table_name, CHKSUM_TABLE_CHUNK_ID_COL, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_COUNT_COL, CHKSUM_TABLE_LOWER_BOUND_COL, chksum_result::class_name, DB_CURSOR_SUCCESS, db_execute(), db_get_int(), db_get_string(), db_query_end(), db_query_first_tuple(), db_query_get_tuple_value(), db_query_next_tuple(), db_value_clear(), ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), chksum_result::last_chunk_cnt, chksum_result::last_chunk_id, chksum_result::last_lower_bound, chksum_result::next, NO_ERROR, NULL, QUERY_BUF_SIZE, SM_MAX_IDENTIFIER_LENGTH, and strdup().
Referenced by chksum_start().
|
static |
Definition at line 1254 of file checksumdb.c.
References assert, parser_varchar::bytes, parser_varchar::length, NULL, pt_append_bytes(), and pt_append_nulstring().
Referenced by chksum_print_checksum_query().
|
static |
Definition at line 578 of file checksumdb.c.
References ARG_FILE_LINE, chksum_drop_and_create_checksum_table(), chksum_result_Table_name, chksum_schema_Table_name, CHKSUM_TABLE_BEGINS_AT_COL, CHKSUM_TABLE_CHUNK_CHECKSUM_COL, CHKSUM_TABLE_CHUNK_ID_COL, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_COUNT_COL, CHKSUM_TABLE_ELAPSED_TIME_COL, CHKSUM_TABLE_LOWER_BOUND_COL, CHKSUM_TABLE_MASTER_CHEKSUM_COL, CHKSUM_TABLE_MASTER_SCHEMA_COL, CHKSUM_TABLE_SCHEMA_COL, CHKSUM_TABLE_SCHEMA_REPID_COL, CHKSUM_TABLE_SCHEMA_TIME_COL, db_find_class(), db_get_attribute(), ER_CHKSUM_GENERIC_ERR, er_errid(), ER_ERROR_SEVERITY, er_set(), error(), NO_ERROR, and NULL.
Referenced by chksum_start().
|
static |
Definition at line 1627 of file checksumdb.c.
References chksum_schema_Table_name, chksum_update_current_schema_definition(), db_execute(), db_query_end(), error(), NO_ERROR, NULL, and QUERY_BUF_SIZE.
Referenced by chksum_start().
|
static |
Definition at line 1734 of file checksumdb.c.
References assert, chksum_result_Table_name, chksum_schema_Table_name, da_get(), da_size(), chksum_arg::exclude_list, i, chksum_arg::include_list, NULL, and SM_MAX_IDENTIFIER_LENGTH.
Referenced by chksum_start().
|
static |
Definition at line 1219 of file checksumdb.c.
References db_attribute_name(), db_attribute_next(), NULL, and pt_append_nulstring().
Referenced by chksum_print_checksum_query().
|
static |
Definition at line 1066 of file checksumdb.c.
References assert, chksum_get_quote_escaped_lower_bound(), chksum_print_attribute_list(), chksum_result_Table_name, CHKSUM_TABLE_BEGINS_AT_COL, CHKSUM_TABLE_CHUNK_CHECKSUM_COL, CHKSUM_TABLE_CHUNK_ID_COL, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_COUNT_COL, CHKSUM_TABLE_ELAPSED_TIME_COL, CHKSUM_TABLE_LOWER_BOUND_COL, NULL, pt_append_nulstring(), and pt_append_varchar().
Referenced by chksum_calculate_checksum().
|
static |
Definition at line 1138 of file checksumdb.c.
References string_buffer::clear(), db_attribute_name(), db_constraint_asc_desc(), db_constraint_attributes(), db_value_printer::describe_value(), string_buffer::get_buffer(), i, NULL, and pt_append_nulstring().
Referenced by chksum_get_next_lower_bound().
|
static |
Definition at line 961 of file checksumdb.c.
References db_attribute_name(), db_constraint_asc_desc(), db_constraint_attributes(), i, NULL, and pt_append_nulstring().
Referenced by chksum_get_next_lower_bound().
|
static |
Definition at line 1020 of file checksumdb.c.
References NULL, pt_append_nulstring(), and pt_append_varchar().
Referenced by chksum_get_next_lower_bound().
|
static |
Definition at line 1422 of file checksumdb.c.
References chksum_result_Table_name, NULL, and pt_append_nulstring().
Referenced by chksum_update_master_checksum().
|
static |
Definition at line 1447 of file checksumdb.c.
References chksum_result_Table_name, CHKSUM_TABLE_CHUNK_ID_COL, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_MASTER_CHEKSUM_COL, NULL, and pt_append_nulstring().
Referenced by chksum_update_master_checksum().
Definition at line 516 of file checksumdb.c.
References ARG_FILE_LINE, assert, chksum_report_diff(), chksum_report_header(), chksum_report_open_file(), chksum_report_schema_diff(), chksum_report_summary(), chksum_result_Table_name, chksum_schema_Table_name, db_find_class(), ER_CHKSUM_GENERIC_ERR, er_errid(), ER_ERROR_SEVERITY, ER_FAILED, er_set(), error(), NO_ERROR, and NULL.
Referenced by checksumdb().
|
static |
Definition at line 318 of file checksumdb.c.
References CHKSUM_PRINT_AND_LOG, chksum_result_Table_name, CHKSUM_TABLE_CHUNK_CHECKSUM_COL, CHKSUM_TABLE_CHUNK_ID_COL, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_LOWER_BOUND_COL, CHKSUM_TABLE_MASTER_CHEKSUM_COL, DB_CURSOR_SUCCESS, db_execute(), db_get_int(), db_get_string(), db_query_end(), db_query_first_tuple(), db_query_get_tuple_value(), db_query_next_tuple(), db_value_clear(), error(), NO_ERROR, NULL, and QUERY_BUF_SIZE.
Referenced by chksum_report().
|
static |
Definition at line 174 of file checksumdb.c.
References CHKSUM_PRINT_AND_LOG, chksum_result_Table_name, chksum_schema_Table_name, css_ha_server_state(), css_ha_server_state_string(), HA_SERVER_STATE_NA, and NULL.
Referenced by chksum_report().
|
static |
Definition at line 159 of file checksumdb.c.
References envvar_logdir_file().
Referenced by chksum_report().
|
static |
Definition at line 197 of file checksumdb.c.
References CHKSUM_PRINT_AND_LOG, chksum_schema_Table_name, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_MASTER_SCHEMA_COL, CHKSUM_TABLE_SCHEMA_COL, CHKSUM_TABLE_SCHEMA_TIME_COL, DB_CURSOR_SUCCESS, db_datetime_to_string(), db_execute(), db_get_datetime(), db_get_string(), DB_IS_NULL, db_query_end(), db_query_first_tuple(), db_query_get_tuple_value(), db_query_next_tuple(), db_value_clear(), error(), NO_ERROR, NULL, and QUERY_BUF_SIZE.
Referenced by chksum_report().
|
static |
Definition at line 397 of file checksumdb.c.
References CHKSUM_PRINT_AND_LOG, chksum_result_Table_name, CHKSUM_TABLE_CHUNK_CHECKSUM_COL, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_ELAPSED_TIME_COL, CHKSUM_TABLE_MASTER_CHEKSUM_COL, DB_CURSOR_SUCCESS, db_execute(), db_get_int(), db_get_string(), db_query_end(), db_query_first_tuple(), db_query_get_tuple_value(), db_query_next_tuple(), db_value_clear(), error(), NO_ERROR, NULL, and QUERY_BUF_SIZE.
Referenced by chksum_report().
|
static |
Definition at line 922 of file checksumdb.c.
References assert, chksum_get_checksum_result(), chksum_get_initial_lower_bound(), error(), chksum_result::last_chunk_id, chksum_result::last_lower_bound, NO_ERROR, NULL, and pt_append_nulstring().
Referenced by chksum_start().
|
static |
Definition at line 1561 of file checksumdb.c.
References chksum_insert_repl_log_and_demote_table_lock(), CUBRID_STMT_INSERT, db_get_user_name(), repl_info_statement::db_user, repl_info::info, repl_info_statement::name, NULL, repl_info::repl_info_type, REPL_INFO_TYPE_SBR, repl_info_statement::statement_type, repl_info_statement::stmt_text, and repl_info_statement::sys_prm_context.
Referenced by chksum_calculate_checksum().
|
static |
Definition at line 1783 of file checksumdb.c.
References ARG_FILE_LINE, assert, chksum_calculate_checksum(), chksum_free_results(), chksum_get_next_lower_bound(), chksum_get_prev_checksum_results(), chksum_init_checksum_tables(), chksum_insert_schema_definition(), chksum_need_skip_table(), chksum_set_initial_chunk_id_and_lower_bound(), CHKSUM_STOP_ON_ERROR, chksum_arg::chunk_size, db_abort_transaction(), db_commit_transaction(), db_constraint_find_primary_key(), db_fetch_all_classes(), DB_FETCH_QUERY_READ, DB_FETCH_READ, db_get_attributes(), db_get_class_name(), db_get_constraints(), db_is_system_class(), db_is_vclass(), db_objlist_free(), ER_CHKSUM_GENERIC_ERR, er_errid(), ER_ERROR_SEVERITY, ER_INTERRUPTED, ER_NOTIFICATION_SEVERITY, er_set(), error(), locator_fetch_class(), NO_ERROR, NULL, parser, parser_create_parser(), parser_free_parser(), chksum_arg::resume, chksum_arg::schema_only, SLEEP_MILISEC, chksum_arg::sleep_msecs, sm_get_class_repid(), chksum_arg::timeout_msecs, tran_set_query_timeout(), and ws_oid().
Referenced by checksumdb().
|
static |
Definition at line 1586 of file checksumdb.c.
References chksum_schema_Table_name, CHKSUM_TABLE_CLASS_NAME_COL, CHKSUM_TABLE_SCHEMA_COL, CHKSUM_TABLE_SCHEMA_REPID_COL, CHKSUM_TABLE_SCHEMA_TIME_COL, db_execute(), db_query_end(), error(), NO_ERROR, NULL, and QUERY_BUF_SIZE.
Referenced by chksum_insert_schema_definition().
|
static |
Definition at line 1477 of file checksumdb.c.
References ARG_FILE_LINE, chksum_print_select_master_checksum(), chksum_print_update_master_checksum(), DB_CURSOR_END, DB_CURSOR_ERROR, DB_CURSOR_SUCCESS, db_execute(), db_get_int(), db_query_end(), db_query_first_tuple(), db_query_get_tuple_value(), db_value_clear(), ER_CHKSUM_GENERIC_ERR, ER_ERROR_SEVERITY, ER_FAILED, er_set(), error(), NO_ERROR, NULL, and pt_get_varchar_bytes().
Referenced by chksum_calculate_checksum().
CHKSUM_RESULT* chksum_Prev_results = NULL |
Definition at line 106 of file checksumdb.c.
Referenced by chksum_get_checksum_result(), and chksum_get_prev_checksum_results().
char chksum_result_Table_name[SM_MAX_IDENTIFIER_LENGTH] |
Definition at line 107 of file checksumdb.c.
Referenced by checksumdb(), chksum_drop_and_create_checksum_table(), chksum_get_prev_checksum_results(), chksum_init_checksum_tables(), chksum_need_skip_table(), chksum_print_checksum_query(), chksum_print_select_master_checksum(), chksum_print_update_master_checksum(), chksum_report(), chksum_report_diff(), chksum_report_header(), and chksum_report_summary().
char chksum_schema_Table_name[SM_MAX_IDENTIFIER_LENGTH] |
Definition at line 108 of file checksumdb.c.
Referenced by checksumdb(), chksum_drop_and_create_checksum_table(), chksum_init_checksum_tables(), chksum_insert_schema_definition(), chksum_need_skip_table(), chksum_report(), chksum_report_header(), chksum_report_schema_diff(), and chksum_update_current_schema_definition().