Unify dict_table_get_and_increment_handle_count() with dict_table_get() by

adding a second parameter, adjust callers.
This commit is contained in:
osku 2006-12-12 09:37:18 +00:00
parent ccd40036ad
commit 7fc2434c99
6 changed files with 28 additions and 53 deletions

View file

@ -801,16 +801,20 @@ dict_init(void)
} }
/************************************************************************** /**************************************************************************
Returns a table object. NOTE! This is a high-level function to be used Returns a table object and optionally increment its MySQL open handle count.
mainly from outside the 'dict' directory. Inside this directory NOTE! This is a high-level function to be used mainly from outside the
dict_table_get_low is usually the appropriate function. */ 'dict' directory. Inside this directory dict_table_get_low is usually the
appropriate function. */
dict_table_t* dict_table_t*
dict_table_get( dict_table_get(
/*===========*/ /*===========*/
/* out: table, NULL if /* out: table, NULL if
does not exist */ does not exist */
const char* table_name) /* in: table name */ const char* table_name, /* in: table name */
ibool inc_mysql_count)
/* in: whether to increment the open
handle count on the table */
{ {
dict_table_t* table; dict_table_t* table;
@ -818,42 +822,17 @@ dict_table_get(
table = dict_table_get_low(table_name); table = dict_table_get_low(table_name);
mutex_exit(&(dict_sys->mutex)); if (inc_mysql_count && table) {
if (table != NULL) {
if (!table->stat_initialized) {
dict_update_statistics(table);
}
}
return(table);
}
/**************************************************************************
Returns a table object and increments MySQL open handle count on the table. */
dict_table_t*
dict_table_get_and_increment_handle_count(
/*======================================*/
/* out: table, NULL if
does not exist */
const char* table_name) /* in: table name */
{
dict_table_t* table;
mutex_enter(&(dict_sys->mutex));
table = dict_table_get_low(table_name);
if (table != NULL) {
table->n_mysql_handles_opened++; table->n_mysql_handles_opened++;
} }
mutex_exit(&(dict_sys->mutex)); mutex_exit(&(dict_sys->mutex));
if (table != NULL) { if (table != NULL) {
if (!table->stat_initialized && !table->ibd_file_missing) { if (!table->stat_initialized) {
/* If table->ibd_file_missing == TRUE, this will
print an error message and return without doing
anything. */
dict_update_statistics(table); dict_update_statistics(table);
} }
} }

View file

@ -2345,7 +2345,7 @@ ha_innobase::open(
/* Get pointer to a table object in InnoDB dictionary cache */ /* Get pointer to a table object in InnoDB dictionary cache */
ib_table = dict_table_get_and_increment_handle_count(norm_name); ib_table = dict_table_get(norm_name, TRUE);
if (NULL == ib_table) { if (NULL == ib_table) {
ut_print_timestamp(stderr); ut_print_timestamp(stderr);
@ -4923,7 +4923,7 @@ ha_innobase::create(
log_buffer_flush_to_disk(); log_buffer_flush_to_disk();
innobase_table = dict_table_get(norm_name); innobase_table = dict_table_get(norm_name, FALSE);
DBUG_ASSERT(innobase_table != 0); DBUG_ASSERT(innobase_table != 0);

View file

@ -326,26 +326,20 @@ dict_foreign_parse_drop_constraints(
const char*** constraints_to_drop); /* out: id's of the const char*** constraints_to_drop); /* out: id's of the
constraints to drop */ constraints to drop */
/************************************************************************** /**************************************************************************
Returns a table object. NOTE! This is a high-level function to be used Returns a table object and optionally increment its MySQL open handle count.
mainly from outside the 'dict' directory. Inside this directory NOTE! This is a high-level function to be used mainly from outside the
dict_table_get_low is usually the appropriate function. */ 'dict' directory. Inside this directory dict_table_get_low is usually the
appropriate function. */
dict_table_t* dict_table_t*
dict_table_get( dict_table_get(
/*===========*/ /*===========*/
/* out: table, NULL if /* out: table, NULL if
does not exist */ does not exist */
const char* table_name); /* in: table name */ const char* table_name, /* in: table name */
/************************************************************************** ibool inc_mysql_count);
Returns a table object and increments MySQL open handle count on the table. /* in: whether to increment the open
*/ handle count on the table */
dict_table_t*
dict_table_get_and_increment_handle_count(
/*======================================*/
/* out: table, NULL if
does not exist */
const char* table_name); /* in: table name */
/************************************************************************** /**************************************************************************
Returns a table object based on table id. */ Returns a table object based on table id. */

View file

@ -1524,7 +1524,8 @@ row_ins_check_foreign_constraints(
if (foreign->foreign_index == index) { if (foreign->foreign_index == index) {
if (foreign->referenced_table == NULL) { if (foreign->referenced_table == NULL) {
dict_table_get(foreign->referenced_table_name); dict_table_get(foreign->referenced_table_name,
FALSE);
} }
if (0 == trx->dict_operation_lock_mode) { if (0 == trx->dict_operation_lock_mode) {

View file

@ -4453,7 +4453,7 @@ row_search_check_if_query_cache_permitted(
dict_table_t* table; dict_table_t* table;
ibool ret = FALSE; ibool ret = FALSE;
table = dict_table_get(norm_name); table = dict_table_get(norm_name, FALSE);
if (table == NULL) { if (table == NULL) {

View file

@ -202,7 +202,8 @@ row_upd_check_references_constraints(
foreign->n_fields))) { foreign->n_fields))) {
if (foreign->foreign_table == NULL) { if (foreign->foreign_table == NULL) {
dict_table_get(foreign->foreign_table_name); dict_table_get(foreign->foreign_table_name,
FALSE);
} }
if (foreign->foreign_table) { if (foreign->foreign_table) {