mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge from 4.1
Archive fix by Ingo. Innodb compile fix by Monty.
This commit is contained in:
8
BUILD/SETUP.sh
Normal file → Executable file
8
BUILD/SETUP.sh
Normal file → Executable file
@ -25,7 +25,10 @@ Any other options will be passed directly to configure.
|
|||||||
Note: this script is intended for internal use by MySQL developers.
|
Note: this script is intended for internal use by MySQL developers.
|
||||||
EOF
|
EOF
|
||||||
--with-debug=full ) full_debug="=full"; shift ;;
|
--with-debug=full ) full_debug="=full"; shift ;;
|
||||||
* ) break ;;
|
* )
|
||||||
|
echo "Unknown option '$1'"
|
||||||
|
exit 1
|
||||||
|
break ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -62,6 +65,7 @@ fast_cflags="-O3 -fno-omit-frame-pointer"
|
|||||||
reckless_cflags="-O3 -fomit-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_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"
|
base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
|
||||||
amd64_cxxflags="-DBIG_TABLES"
|
amd64_cxxflags="-DBIG_TABLES"
|
||||||
@ -80,7 +84,7 @@ local_infile_configs="--enable-local-infile"
|
|||||||
debug_configs="--with-debug$full_debug"
|
debug_configs="--with-debug$full_debug"
|
||||||
if [ -z "$full_debug" ]
|
if [ -z "$full_debug" ]
|
||||||
then
|
then
|
||||||
debug_cflags="$debug_cflags -O1 -Wuninitialized"
|
debug_cflags="$debug_cflags $debug_extra_cflags"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if gmake --version > /dev/null 2>&1
|
if gmake --version > /dev/null 2>&1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
path=`dirname $0`
|
path=`dirname $0`
|
||||||
. "$path/SETUP.sh"
|
. "$path/SETUP.sh" $@ --with-debug=full
|
||||||
|
|
||||||
extra_flags="$pentium64_cflags $debug_cflags"
|
extra_flags="$pentium64_cflags $debug_cflags"
|
||||||
c_warnings="$c_warnings $debug_extra_warnings"
|
c_warnings="$c_warnings $debug_extra_warnings"
|
||||||
|
@ -1678,12 +1678,12 @@ if test "$with_debug" = "yes"
|
|||||||
then
|
then
|
||||||
# Medium debug.
|
# Medium debug.
|
||||||
CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC -DDBUG_ON -DSAFE_MUTEX $CFLAGS"
|
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"
|
elif test "$with_debug" = "full"
|
||||||
then
|
then
|
||||||
# Full debug. Very slow in some cases
|
# Full debug. Very slow in some cases
|
||||||
CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC $CFLAGS"
|
CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC -DUNIV_DEBUG $CFLAGS"
|
||||||
CXXFLAGS="$DEBUG_CXXFLAGS -DSAFE_MUTEX -DSAFEMALLOC $CXXFLAGS"
|
CXXFLAGS="$DEBUG_CXXFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC -DUNIV_DEBUG $CXXFLAGS"
|
||||||
else
|
else
|
||||||
# Optimized version. No debug
|
# Optimized version. No debug
|
||||||
CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS"
|
CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS"
|
||||||
|
@ -80,6 +80,10 @@ memory is read outside the allocated blocks. */
|
|||||||
|
|
||||||
/* Make a non-inline debug version */
|
/* Make a non-inline debug version */
|
||||||
|
|
||||||
|
#ifdef DBUG_ON
|
||||||
|
#define UNIV_DEBUG
|
||||||
|
#endif /* DBUG_ON */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#define UNIV_DEBUG
|
#define UNIV_DEBUG
|
||||||
#define UNIV_MEM_DEBUG
|
#define UNIV_MEM_DEBUG
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Simple test for archive example
|
# Simple test for archive example
|
||||||
# Taken fromm the select test
|
# Taken from the select test
|
||||||
#
|
#
|
||||||
-- source include/have_archive.inc
|
-- source include/have_archive.inc
|
||||||
|
|
||||||
|
@ -117,7 +117,6 @@
|
|||||||
/* Variables for archive share methods */
|
/* Variables for archive share methods */
|
||||||
pthread_mutex_t archive_mutex;
|
pthread_mutex_t archive_mutex;
|
||||||
static HASH archive_open_tables;
|
static HASH archive_open_tables;
|
||||||
static int archive_init= 0;
|
|
||||||
|
|
||||||
/* The file extension */
|
/* The file extension */
|
||||||
#define ARZ ".ARZ" // The data file
|
#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;
|
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.
|
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;
|
uint length;
|
||||||
char *tmp_name;
|
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);
|
pthread_mutex_lock(&archive_mutex);
|
||||||
length=(uint) strlen(table_name);
|
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);
|
(void)write_meta_file(share->meta_file, share->rows_recorded, FALSE);
|
||||||
if (gzclose(share->archive_write) == Z_ERRNO)
|
if (gzclose(share->archive_write) == Z_ERRNO)
|
||||||
rc= 1;
|
rc= 1;
|
||||||
|
my_close(share->meta_file,MYF(0));
|
||||||
my_free((gptr) share, MYF(0));
|
my_free((gptr) share, MYF(0));
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&archive_mutex);
|
pthread_mutex_unlock(&archive_mutex);
|
||||||
|
@ -105,3 +105,7 @@ public:
|
|||||||
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
|
||||||
enum thr_lock_type lock_type);
|
enum thr_lock_type lock_type);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
bool archive_db_init(void);
|
||||||
|
bool archive_db_end(void);
|
||||||
|
|
||||||
|
@ -372,6 +372,16 @@ int ha_init()
|
|||||||
else
|
else
|
||||||
opt_using_transactions=1;
|
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
|
#endif
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
@ -403,6 +413,10 @@ int ha_panic(enum ha_panic_function flag)
|
|||||||
#ifdef HAVE_NDBCLUSTER_DB
|
#ifdef HAVE_NDBCLUSTER_DB
|
||||||
if (have_ndbcluster == SHOW_OPTION_YES)
|
if (have_ndbcluster == SHOW_OPTION_YES)
|
||||||
error|=ndbcluster_end();
|
error|=ndbcluster_end();
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_ARCHIVE_DB
|
||||||
|
if (have_archive_db == SHOW_OPTION_YES)
|
||||||
|
error|= archive_db_end();
|
||||||
#endif
|
#endif
|
||||||
if (ha_finish_errors())
|
if (ha_finish_errors())
|
||||||
error= 1;
|
error= 1;
|
||||||
|
Reference in New Issue
Block a user