diff options
author | unknown <jani@a88-113-38-195.elisa-laajakaista.fi> | 2007-02-03 00:58:09 +0200 |
---|---|---|
committer | unknown <jani@a88-113-38-195.elisa-laajakaista.fi> | 2007-02-03 00:58:09 +0200 |
commit | 3f3d9093f9ce6152f5a018a946806c069837e219 (patch) | |
tree | 604c311840603ecece2a136bbdc86420a3ec0453 /storage/archive/ha_archive.cc | |
parent | 13390debf6aa979ca31437d687eaa9ae2740ad2f (diff) | |
parent | 6e501e6548f15d3450ffb122ba1e683f40a4c917 (diff) | |
download | mariadb-git-3f3d9093f9ce6152f5a018a946806c069837e219.tar.gz |
Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1
into a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1
BUILD/SETUP.sh:
Auto merged
client/mysql.cc:
Auto merged
configure.in:
Auto merged
libmysqld/lib_sql.cc:
Auto merged
sql/filesort.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/item_timefunc.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_plugin.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.cc:
Auto merged
storage/archive/ha_archive.cc:
Auto merged
plugin/daemon_example/daemon_example.cc:
Merged with main 5.1
sql/mysqld.cc:
Merged with main 5.1
Diffstat (limited to 'storage/archive/ha_archive.cc')
-rw-r--r-- | storage/archive/ha_archive.cc | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc index 4108bb32a07..bb638e1c17b 100644 --- a/storage/archive/ha_archive.cc +++ b/storage/archive/ha_archive.cc @@ -305,10 +305,8 @@ int ha_archive::read_data_header(azio_stream *file_to_read) See ha_example.cc for a longer description. */ -ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, - TABLE *table, int *rc) +ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, int *rc) { - ARCHIVE_SHARE *share; uint length; DBUG_ENTER("ha_archive::get_share"); @@ -381,20 +379,21 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, Free the share. See ha_example.cc for a description. */ -int ha_archive::free_share(ARCHIVE_SHARE *share_to_free) +int ha_archive::free_share() { int rc= 0; DBUG_ENTER("ha_archive::free_share"); - DBUG_PRINT("ha_archive", ("archive table %.*s has %d open handles on entrance", - share_to_free->table_name_length, share_to_free->table_name, - share_to_free->use_count)); + DBUG_PRINT("ha_archive", + ("archive table %.*s has %d open handles on entrance", + share->table_name_length, share->table_name, + share->use_count)); pthread_mutex_lock(&archive_mutex); - if (!--share_to_free->use_count) + if (!--share->use_count) { - hash_delete(&archive_open_tables, (byte*) share_to_free); - thr_lock_delete(&share_to_free->lock); - VOID(pthread_mutex_destroy(&share_to_free->mutex)); + hash_delete(&archive_open_tables, (byte*) share); + thr_lock_delete(&share->lock); + VOID(pthread_mutex_destroy(&share->mutex)); /* We need to make sure we don't reset the crashed state. If we open a crashed file, wee need to close it as crashed unless @@ -402,12 +401,12 @@ int ha_archive::free_share(ARCHIVE_SHARE *share_to_free) Since we will close the data down after this, we go on and count the flush on close; */ - if (share_to_free->archive_write_open) + if (share->archive_write_open) { - if (azclose(&(share_to_free->archive_write))) + if (azclose(&(share->archive_write))) rc= 1; } - my_free((gptr) share_to_free, MYF(0)); + my_free((gptr) share, MYF(0)); } pthread_mutex_unlock(&archive_mutex); @@ -462,12 +461,14 @@ int ha_archive::open(const char *name, int mode, uint open_options) DBUG_PRINT("ha_archive", ("archive table was opened for crash: %s", (open_options & HA_OPEN_FOR_REPAIR) ? "yes" : "no")); - share= get_share(name, table, &rc); + share= get_share(name, &rc); if (rc == HA_ERR_CRASHED_ON_USAGE && !(open_options & HA_OPEN_FOR_REPAIR)) { - free_share(share); + /* purecov: begin inspected */ + free_share(); DBUG_RETURN(rc); + /* purecov: end */ } else if (rc == HA_ERR_OUT_OF_MEM) { @@ -482,7 +483,7 @@ int ha_archive::open(const char *name, int mode, uint open_options) if (!record_buffer) { - free_share(share); + free_share(); DBUG_RETURN(HA_ERR_OUT_OF_MEM); } @@ -535,7 +536,7 @@ int ha_archive::close(void) if (azclose(&archive)) rc= 1; /* then also close share */ - rc|= free_share(share); + rc|= free_share(); DBUG_RETURN(rc); } @@ -837,7 +838,7 @@ int ha_archive::write_row(byte *buf) { if (!memcmp(read_buf + mfield->offset(record), table->next_number_field->ptr, - mfield->max_length())) + mfield->max_display_length())) { rc= HA_ERR_FOUND_DUPP_KEY; goto error; |