diff options
author | ingo@mysql.com <> | 2005-01-26 15:51:46 +0100 |
---|---|---|
committer | ingo@mysql.com <> | 2005-01-26 15:51:46 +0100 |
commit | bbcd542917a2e467e6bf01cc6a5f21858e5c94e5 (patch) | |
tree | 529f781833794ea64fd20c882773a307e9bf1095 | |
parent | be5dade8531b7ffcea72d1f05d30376f77854b43 (diff) | |
parent | 300337cee71bce88ae4197288c4dd78b77293c61 (diff) | |
download | mariadb-git-bbcd542917a2e467e6bf01cc6a5f21858e5c94e5.tar.gz |
Merge from 4.1
Archive fix by Ingo.
Innodb compile fix by Monty.
-rwxr-xr-x[-rw-r--r--] | BUILD/SETUP.sh | 8 | ||||
-rwxr-xr-x | BUILD/compile-pentium64-debug | 2 | ||||
-rw-r--r-- | configure.in | 6 | ||||
-rw-r--r-- | innobase/include/univ.i | 4 | ||||
-rw-r--r-- | mysql-test/t/archive.test | 2 | ||||
-rw-r--r-- | sql/examples/ha_archive.cc | 59 | ||||
-rw-r--r-- | sql/examples/ha_archive.h | 4 | ||||
-rw-r--r-- | sql/handler.cc | 14 |
8 files changed, 74 insertions, 25 deletions
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh index fa20fd14571..215d7ba24b9 100644..100755 --- a/BUILD/SETUP.sh +++ b/BUILD/SETUP.sh @@ -25,7 +25,10 @@ Any other options will be passed directly to configure. Note: this script is intended for internal use by MySQL developers. EOF --with-debug=full ) full_debug="=full"; shift ;; - * ) break ;; + * ) + echo "Unknown option '$1'" + exit 1 + break ;; esac done @@ -62,6 +65,7 @@ fast_cflags="-O3 -fno-omit-frame-pointer" reckless_cflags="-O3 -fomit-frame-pointer " debug_cflags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX" +debug_extra_cflags="-O1 -Wuninitialized" base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti" amd64_cxxflags="-DBIG_TABLES" @@ -80,7 +84,7 @@ local_infile_configs="--enable-local-infile" debug_configs="--with-debug$full_debug" if [ -z "$full_debug" ] then - debug_cflags="$debug_cflags -O1 -Wuninitialized" + debug_cflags="$debug_cflags $debug_extra_cflags" fi if gmake --version > /dev/null 2>&1 diff --git a/BUILD/compile-pentium64-debug b/BUILD/compile-pentium64-debug index 1bbca36d851..0299669f79a 100755 --- a/BUILD/compile-pentium64-debug +++ b/BUILD/compile-pentium64-debug @@ -1,7 +1,7 @@ #! /bin/sh path=`dirname $0` -. "$path/SETUP.sh" +. "$path/SETUP.sh" $@ --with-debug=full extra_flags="$pentium64_cflags $debug_cflags" c_warnings="$c_warnings $debug_extra_warnings" diff --git a/configure.in b/configure.in index fbbf3918c45..8cf0c2c5e58 100644 --- a/configure.in +++ b/configure.in @@ -1678,12 +1678,12 @@ if test "$with_debug" = "yes" then # Medium debug. CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC -DDBUG_ON -DSAFE_MUTEX $CFLAGS" - CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX -DSAFE_MUTEX $CXXFLAGS" + CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX -DDBUG_ON -DSAFE_MUTEX $CXXFLAGS" elif test "$with_debug" = "full" then # Full debug. Very slow in some cases - CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC $CFLAGS" - CXXFLAGS="$DEBUG_CXXFLAGS -DSAFE_MUTEX -DSAFEMALLOC $CXXFLAGS" + CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC -DUNIV_DEBUG $CFLAGS" + CXXFLAGS="$DEBUG_CXXFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC -DUNIV_DEBUG $CXXFLAGS" else # Optimized version. No debug CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS" diff --git a/innobase/include/univ.i b/innobase/include/univ.i index 8158c198e21..5d1e8e208cd 100644 --- a/innobase/include/univ.i +++ b/innobase/include/univ.i @@ -80,6 +80,10 @@ memory is read outside the allocated blocks. */ /* Make a non-inline debug version */ +#ifdef DBUG_ON +#define UNIV_DEBUG +#endif /* DBUG_ON */ + /* #define UNIV_DEBUG #define UNIV_MEM_DEBUG diff --git a/mysql-test/t/archive.test b/mysql-test/t/archive.test index 8cf54610914..f7ec603ca79 100644 --- a/mysql-test/t/archive.test +++ b/mysql-test/t/archive.test @@ -1,6 +1,6 @@ # # Simple test for archive example -# Taken fromm the select test +# Taken from the select test # -- source include/have_archive.inc diff --git a/sql/examples/ha_archive.cc b/sql/examples/ha_archive.cc index dccff88bf1f..f0d0f617a5d 100644 --- a/sql/examples/ha_archive.cc +++ b/sql/examples/ha_archive.cc @@ -117,7 +117,6 @@ /* Variables for archive share methods */ pthread_mutex_t archive_mutex; static HASH archive_open_tables; -static int archive_init= 0; /* The file extension */ #define ARZ ".ARZ" // The data file @@ -143,6 +142,46 @@ static byte* archive_get_key(ARCHIVE_SHARE *share,uint *length, return (byte*) share->table_name; } + +/* + Initialize the archive handler. + + SYNOPSIS + archive_db_init() + void + + RETURN + FALSE OK + TRUE Error +*/ + +bool archive_db_init() +{ + VOID(pthread_mutex_init(&archive_mutex, MY_MUTEX_INIT_FAST)); + return (hash_init(&archive_open_tables, system_charset_info, 32, 0, 0, + (hash_get_key) archive_get_key, 0, 0)); +} + + +/* + Release the archive handler. + + SYNOPSIS + archive_db_end() + void + + RETURN + FALSE OK +*/ + +bool archive_db_end() +{ + hash_free(&archive_open_tables); + VOID(pthread_mutex_destroy(&archive_mutex)); + return FALSE; +} + + /* This method reads the header of a datafile and returns whether or not it was successful. */ @@ -269,23 +308,6 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name, TABLE *table) uint length; char *tmp_name; - if (!archive_init) - { - /* Hijack a mutex for init'ing the storage engine */ - pthread_mutex_lock(&LOCK_mysql_create_db); - if (!archive_init) - { - VOID(pthread_mutex_init(&archive_mutex,MY_MUTEX_INIT_FAST)); - if (hash_init(&archive_open_tables,system_charset_info,32,0,0, - (hash_get_key) archive_get_key,0,0)) - { - pthread_mutex_unlock(&LOCK_mysql_create_db); - return NULL; - } - archive_init++; - } - pthread_mutex_unlock(&LOCK_mysql_create_db); - } pthread_mutex_lock(&archive_mutex); length=(uint) strlen(table_name); @@ -371,6 +393,7 @@ int ha_archive::free_share(ARCHIVE_SHARE *share) (void)write_meta_file(share->meta_file, share->rows_recorded, FALSE); if (gzclose(share->archive_write) == Z_ERRNO) rc= 1; + my_close(share->meta_file,MYF(0)); my_free((gptr) share, MYF(0)); } pthread_mutex_unlock(&archive_mutex); diff --git a/sql/examples/ha_archive.h b/sql/examples/ha_archive.h index 07bc7baa400..a511b5c67d6 100644 --- a/sql/examples/ha_archive.h +++ b/sql/examples/ha_archive.h @@ -105,3 +105,7 @@ public: THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type); }; + +bool archive_db_init(void); +bool archive_db_end(void); + diff --git a/sql/handler.cc b/sql/handler.cc index b1b741dfee9..059d1feaed1 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -373,6 +373,16 @@ int ha_init() opt_using_transactions=1; } #endif +#ifdef HAVE_ARCHIVE_DB + if (have_archive_db == SHOW_OPTION_YES) + { + if (archive_db_init()) + { + have_archive_db= SHOW_OPTION_DISABLED; + error= 1; + } + } +#endif return error; } @@ -404,6 +414,10 @@ int ha_panic(enum ha_panic_function flag) if (have_ndbcluster == SHOW_OPTION_YES) error|=ndbcluster_end(); #endif +#ifdef HAVE_ARCHIVE_DB + if (have_archive_db == SHOW_OPTION_YES) + error|= archive_db_end(); +#endif if (ha_finish_errors()) error= 1; return error; |