mirror of
https://github.com/MariaDB/server.git
synced 2025-05-07 04:01:59 +03:00
new merge from trunk
This commit is contained in:
commit
bb181d25cb
@ -137,6 +137,7 @@ ENDIF(MSVC)
|
||||
|
||||
IF(WIN32)
|
||||
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D_CRT_SECURE_NO_DEPRECATE")
|
||||
ADD_DEFINITIONS("-D_WIN32_WINNT=0x0501")
|
||||
ENDIF(WIN32)
|
||||
|
||||
# default to x86 platform. We'll check for X64 in a bit
|
||||
|
@ -81,8 +81,13 @@ rl_alphabetic (c)
|
||||
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
int
|
||||
_rl_walphabetic (wc)
|
||||
wchar_t wc;
|
||||
/*
|
||||
Portability issue with VisualAge C++ Professional / C for AIX Compiler, Version 6:
|
||||
"util.c", line 84.1: 1506-343 (S) Redeclaration of _rl_walphabetic differs
|
||||
from previous declaration on line 110 of "rlmbutil.h".
|
||||
So, put type in the function signature here.
|
||||
*/
|
||||
_rl_walphabetic (wchar_t wc)
|
||||
{
|
||||
int c;
|
||||
|
||||
|
@ -17,7 +17,8 @@
|
||||
|
||||
## Process this file with automake to create Makefile.in
|
||||
|
||||
testdir = $(prefix)/mysql-test
|
||||
testroot = $(prefix)
|
||||
testdir = $(testroot)/mysql-test
|
||||
|
||||
test_SCRIPTS = mtr \
|
||||
mysql-test-run \
|
||||
|
@ -1,10 +1,19 @@
|
||||
funcs_1.charset_collation_1 # depends on compile-time decisions
|
||||
binlog.binlog_tmp_table* # Bug#45578: Test binlog_tmp_table fails ramdonly on PB2: Unknown table 't2'
|
||||
main.ctype_gbk_binlog @solaris # Bug#46010: main.ctype_gbk_binlog fails sporadically : Table 't2' already exists
|
||||
|
||||
innodb.innodb_information_schema # Bug#47449 2009-09-19 alik main.information_schema and innodb.innodb_information_schema fail sporadically
|
||||
|
||||
main.ctype_gbk_binlog # Bug#46010: main.ctype_gbk_binlog fails sporadically : Table 't2' already exists
|
||||
main.lock_multi_bug38499 # Bug#47448 2009-09-19 alik main.lock_multi_bug38499 times out sporadically
|
||||
main.information_schema # Bug#47449 2009-09-19 alik main.information_schema and innodb.innodb_information_schema fail sporadically
|
||||
|
||||
rpl.rpl_row_create_table* # Bug#45576: rpl_row_create_table fails on PB2
|
||||
rpl_ndb.rpl_ndb_log # Bug#38998
|
||||
rpl.rpl_innodb_bug28430* @solaris # Bug#46029
|
||||
main.plugin_load @solaris # Bug#42144
|
||||
main.plugin_load @solaris # Bug#47146
|
||||
rpl.rpl_get_master_version_and_clock* # Bug#46931 2009-08-26 alik rpl.rpl_get_master_version_and_clock fails on hpux11.31
|
||||
main.plugin* @solaris # Bug#47146 Linking problem with example plugin when dtrace enabled
|
||||
rpl.rpl_plugin_load* @solaris # Bug#47146
|
||||
|
||||
ndb.n* # Consider all NDB tests experimental.
|
||||
rpl_ndb.r* # Consider all NDB tests experimental.
|
||||
|
@ -13,7 +13,8 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
safedir = $(prefix)/mysql-test/lib/My/SafeProcess
|
||||
testroot = $(prefix)
|
||||
safedir = $(testroot)/mysql-test/lib/My/SafeProcess
|
||||
#nobase_bin_PROGRAMS = ...
|
||||
safe_PROGRAMS = my_safe_process
|
||||
|
||||
|
@ -180,8 +180,6 @@ NULL mysqltest_db1 trg5 DELETE NULL mysqltest_db1 t1 0 NULL SET @a = 5 ROW BEFOR
|
||||
DROP USER mysqltest_dfn@localhost;
|
||||
DROP USER mysqltest_inv@localhost;
|
||||
DROP DATABASE mysqltest_db1;
|
||||
Warnings:
|
||||
Warning 1454 No definer attribute for trigger 'mysqltest_db1'.'trg1'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
|
||||
DELETE FROM mysql.user WHERE User LIKE 'mysqltest_%';
|
||||
DELETE FROM mysql.db WHERE User LIKE 'mysqltest_%';
|
||||
DELETE FROM mysql.tables_priv WHERE User LIKE 'mysqltest_%';
|
||||
|
@ -12,11 +12,11 @@ let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
drop table if exists t1;
|
||||
create table t1 (a int) engine=myisam;
|
||||
--remove_file $MYSQLD_DATADIR/test/t1.MYI
|
||||
--error 1051,6
|
||||
--error ER_BAD_TABLE_ERROR,6
|
||||
drop table t1;
|
||||
create table t1 (a int) engine=myisam;
|
||||
--remove_file $MYSQLD_DATADIR/test/t1.MYD
|
||||
--error 1105,6,29
|
||||
--error ER_BAD_TABLE_ERROR,6,29
|
||||
drop table t1;
|
||||
--error 1051
|
||||
--error ER_BAD_TABLE_ERROR
|
||||
drop table t1;
|
||||
|
@ -13,7 +13,8 @@
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
/*
|
||||
/**
|
||||
@file
|
||||
These functions handle keyblock cacheing for ISAM and MyISAM tables.
|
||||
|
||||
One cache can handle many files.
|
||||
@ -36,7 +37,9 @@
|
||||
blocks_unused is the sum of never used blocks in the pool and of currently
|
||||
free blocks. blocks_used is the number of blocks fetched from the pool and
|
||||
as such gives the maximum number of in-use blocks at any time.
|
||||
*/
|
||||
|
||||
/*
|
||||
Key Cache Locking
|
||||
=================
|
||||
|
||||
@ -369,8 +372,8 @@ static inline uint next_power(uint value)
|
||||
*/
|
||||
|
||||
int init_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
|
||||
size_t use_mem, uint division_limit,
|
||||
uint age_threshold)
|
||||
size_t use_mem, uint division_limit,
|
||||
uint age_threshold)
|
||||
{
|
||||
ulong blocks, hash_links;
|
||||
size_t length;
|
||||
@ -561,8 +564,8 @@ err:
|
||||
*/
|
||||
|
||||
int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
|
||||
size_t use_mem, uint division_limit,
|
||||
uint age_threshold)
|
||||
size_t use_mem, uint division_limit,
|
||||
uint age_threshold)
|
||||
{
|
||||
int blocks;
|
||||
DBUG_ENTER("resize_key_cache");
|
||||
@ -761,6 +764,13 @@ void end_key_cache(KEY_CACHE *keycache, my_bool cleanup)
|
||||
(ulong) keycache->global_cache_r_requests,
|
||||
(ulong) keycache->global_cache_read));
|
||||
|
||||
/*
|
||||
Reset these values to be able to detect a disabled key cache.
|
||||
See Bug#44068 (RESTORE can disable the MyISAM Key Cache).
|
||||
*/
|
||||
keycache->blocks_used= 0;
|
||||
keycache->blocks_unused= 0;
|
||||
|
||||
if (cleanup)
|
||||
{
|
||||
pthread_mutex_destroy(&keycache->cache_lock);
|
||||
@ -1344,7 +1354,11 @@ static void unreg_request(KEY_CACHE *keycache,
|
||||
DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
|
||||
DBUG_ASSERT(!block->next_used);
|
||||
DBUG_ASSERT(!block->prev_used);
|
||||
if (! --block->requests)
|
||||
/*
|
||||
Unregister the request, but do not link erroneous blocks into the
|
||||
LRU ring.
|
||||
*/
|
||||
if (!--block->requests && !(block->status & BLOCK_ERROR))
|
||||
{
|
||||
my_bool hot;
|
||||
if (block->hits_left)
|
||||
@ -1426,8 +1440,7 @@ static void wait_for_readers(KEY_CACHE *keycache,
|
||||
#ifdef THREAD
|
||||
struct st_my_thread_var *thread= my_thread_var;
|
||||
DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
|
||||
DBUG_ASSERT(!(block->status & (BLOCK_ERROR | BLOCK_IN_FLUSH |
|
||||
BLOCK_CHANGED)));
|
||||
DBUG_ASSERT(!(block->status & (BLOCK_IN_FLUSH | BLOCK_CHANGED)));
|
||||
DBUG_ASSERT(block->hash_link);
|
||||
DBUG_ASSERT(block->hash_link->block == block);
|
||||
/* Linked in file_blocks or changed_blocks hash. */
|
||||
@ -2211,9 +2224,9 @@ restart:
|
||||
thread might change the block->hash_link value
|
||||
*/
|
||||
error= my_pwrite(block->hash_link->file,
|
||||
block->buffer+block->offset,
|
||||
block->buffer + block->offset,
|
||||
block->length - block->offset,
|
||||
block->hash_link->diskpos+ block->offset,
|
||||
block->hash_link->diskpos + block->offset,
|
||||
MYF(MY_NABP | MY_WAIT_IF_FULL));
|
||||
keycache_pthread_mutex_lock(&keycache->cache_lock);
|
||||
|
||||
@ -2537,7 +2550,6 @@ uchar *key_cache_read(KEY_CACHE *keycache,
|
||||
reg1 BLOCK_LINK *block;
|
||||
uint read_length;
|
||||
uint offset;
|
||||
uint status;
|
||||
int page_st;
|
||||
|
||||
if (MYSQL_KEYCACHE_READ_START_ENABLED())
|
||||
@ -2581,9 +2593,11 @@ uchar *key_cache_read(KEY_CACHE *keycache,
|
||||
do
|
||||
{
|
||||
/* Cache could be disabled in a later iteration. */
|
||||
|
||||
if (!keycache->can_be_used)
|
||||
goto no_key_cache;
|
||||
{
|
||||
KEYCACHE_DBUG_PRINT("key_cache_read", ("keycache cannot be used"));
|
||||
goto no_key_cache;
|
||||
}
|
||||
/* Start reading at the beginning of the cache block. */
|
||||
filepos-= offset;
|
||||
/* Do not read beyond the end of the cache block. */
|
||||
@ -2652,7 +2666,7 @@ uchar *key_cache_read(KEY_CACHE *keycache,
|
||||
}
|
||||
|
||||
/* block status may have added BLOCK_ERROR in the above 'if'. */
|
||||
if (!((status= block->status) & BLOCK_ERROR))
|
||||
if (!(block->status & BLOCK_ERROR))
|
||||
{
|
||||
#ifndef THREAD
|
||||
if (! return_buffer)
|
||||
@ -2678,14 +2692,22 @@ uchar *key_cache_read(KEY_CACHE *keycache,
|
||||
|
||||
remove_reader(block);
|
||||
|
||||
/*
|
||||
Link the block into the LRU ring if it's the last submitted
|
||||
request for the block. This enables eviction for the block.
|
||||
*/
|
||||
unreg_request(keycache, block, 1);
|
||||
/* Error injection for coverage testing. */
|
||||
DBUG_EXECUTE_IF("key_cache_read_block_error",
|
||||
block->status|= BLOCK_ERROR;);
|
||||
|
||||
if (status & BLOCK_ERROR)
|
||||
/* Do not link erroneous blocks into the LRU ring, but free them. */
|
||||
if (!(block->status & BLOCK_ERROR))
|
||||
{
|
||||
/*
|
||||
Link the block into the LRU ring if it's the last submitted
|
||||
request for the block. This enables eviction for the block.
|
||||
*/
|
||||
unreg_request(keycache, block, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
free_block(keycache, block);
|
||||
error= 1;
|
||||
break;
|
||||
}
|
||||
@ -2704,7 +2726,7 @@ uchar *key_cache_read(KEY_CACHE *keycache,
|
||||
DBUG_RETURN(block->buffer);
|
||||
}
|
||||
#endif
|
||||
next_block:
|
||||
next_block:
|
||||
buff+= read_length;
|
||||
filepos+= read_length+offset;
|
||||
offset= 0;
|
||||
@ -2719,6 +2741,7 @@ uchar *key_cache_read(KEY_CACHE *keycache,
|
||||
}
|
||||
goto end;
|
||||
}
|
||||
KEYCACHE_DBUG_PRINT("key_cache_read", ("keycache not initialized"));
|
||||
|
||||
no_key_cache:
|
||||
/* Key cache is not used */
|
||||
@ -2739,6 +2762,7 @@ end:
|
||||
dec_counter_for_resize_op(keycache);
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
}
|
||||
DBUG_PRINT("exit", ("error: %d", error ));
|
||||
DBUG_RETURN(error ? (uchar*) 0 : start);
|
||||
}
|
||||
|
||||
@ -2947,19 +2971,27 @@ int key_cache_insert(KEY_CACHE *keycache,
|
||||
DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
|
||||
} /* end of if (!(block->status & BLOCK_ERROR)) */
|
||||
|
||||
|
||||
remove_reader(block);
|
||||
|
||||
/*
|
||||
Link the block into the LRU ring if it's the last submitted
|
||||
request for the block. This enables eviction for the block.
|
||||
*/
|
||||
unreg_request(keycache, block, 1);
|
||||
/* Error injection for coverage testing. */
|
||||
DBUG_EXECUTE_IF("key_cache_insert_block_error",
|
||||
block->status|= BLOCK_ERROR; errno=EIO;);
|
||||
|
||||
error= (block->status & BLOCK_ERROR);
|
||||
|
||||
if (error)
|
||||
/* Do not link erroneous blocks into the LRU ring, but free them. */
|
||||
if (!(block->status & BLOCK_ERROR))
|
||||
{
|
||||
/*
|
||||
Link the block into the LRU ring if it's the last submitted
|
||||
request for the block. This enables eviction for the block.
|
||||
*/
|
||||
unreg_request(keycache, block, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
free_block(keycache, block);
|
||||
error= 1;
|
||||
break;
|
||||
}
|
||||
|
||||
buff+= read_length;
|
||||
filepos+= read_length+offset;
|
||||
@ -3221,7 +3253,7 @@ int key_cache_write(KEY_CACHE *keycache,
|
||||
|
||||
if (!dont_write)
|
||||
{
|
||||
/* Not used in the server. buff has been written to disk at start. */
|
||||
/* Not used in the server. buff has been written to disk at start. */
|
||||
if ((block->status & BLOCK_CHANGED) &&
|
||||
(!offset && read_length >= keycache->key_cache_block_size))
|
||||
link_to_file_list(keycache, block, block->hash_link->file, 1);
|
||||
@ -3251,14 +3283,24 @@ int key_cache_write(KEY_CACHE *keycache,
|
||||
*/
|
||||
remove_reader(block);
|
||||
|
||||
/*
|
||||
Link the block into the LRU ring if it's the last submitted
|
||||
request for the block. This enables eviction for the block.
|
||||
*/
|
||||
unreg_request(keycache, block, 1);
|
||||
/* Error injection for coverage testing. */
|
||||
DBUG_EXECUTE_IF("key_cache_write_block_error",
|
||||
block->status|= BLOCK_ERROR;);
|
||||
|
||||
if (block->status & BLOCK_ERROR)
|
||||
/* Do not link erroneous blocks into the LRU ring, but free them. */
|
||||
if (!(block->status & BLOCK_ERROR))
|
||||
{
|
||||
/*
|
||||
Link the block into the LRU ring if it's the last submitted
|
||||
request for the block. This enables eviction for the block.
|
||||
*/
|
||||
unreg_request(keycache, block, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Pretend a "clean" block to avoid complications. */
|
||||
block->status&= ~(BLOCK_CHANGED);
|
||||
free_block(keycache, block);
|
||||
error= 1;
|
||||
break;
|
||||
}
|
||||
@ -3342,8 +3384,9 @@ static void free_block(KEY_CACHE *keycache, BLOCK_LINK *block)
|
||||
{
|
||||
KEYCACHE_THREAD_TRACE("free block");
|
||||
KEYCACHE_DBUG_PRINT("free_block",
|
||||
("block %u to be freed, hash_link %p",
|
||||
BLOCK_NUMBER(block), block->hash_link));
|
||||
("block %u to be freed, hash_link %p status: %u",
|
||||
BLOCK_NUMBER(block), block->hash_link,
|
||||
block->status));
|
||||
/*
|
||||
Assert that the block is not free already. And that it is in a clean
|
||||
state. Note that the block might just be assigned to a hash_link and
|
||||
@ -3425,10 +3468,14 @@ static void free_block(KEY_CACHE *keycache, BLOCK_LINK *block)
|
||||
if (block->status & BLOCK_IN_EVICTION)
|
||||
return;
|
||||
|
||||
/* Here the block must be in the LRU ring. Unlink it again. */
|
||||
DBUG_ASSERT(block->next_used && block->prev_used &&
|
||||
*block->prev_used == block);
|
||||
unlink_block(keycache, block);
|
||||
/* Error blocks are not put into the LRU ring. */
|
||||
if (!(block->status & BLOCK_ERROR))
|
||||
{
|
||||
/* Here the block must be in the LRU ring. Unlink it again. */
|
||||
DBUG_ASSERT(block->next_used && block->prev_used &&
|
||||
*block->prev_used == block);
|
||||
unlink_block(keycache, block);
|
||||
}
|
||||
if (block->temperature == BLOCK_WARM)
|
||||
keycache->warm_blocks--;
|
||||
block->temperature= BLOCK_COLD;
|
||||
@ -3517,8 +3564,7 @@ static int flush_cached_blocks(KEY_CACHE *keycache,
|
||||
(BLOCK_READ | BLOCK_IN_FLUSH | BLOCK_CHANGED | BLOCK_IN_USE));
|
||||
block->status|= BLOCK_IN_FLUSHWRITE;
|
||||
keycache_pthread_mutex_unlock(&keycache->cache_lock);
|
||||
error= my_pwrite(file,
|
||||
block->buffer+block->offset,
|
||||
error= my_pwrite(file, block->buffer+block->offset,
|
||||
block->length - block->offset,
|
||||
block->hash_link->diskpos+ block->offset,
|
||||
MYF(MY_NABP | MY_WAIT_IF_FULL));
|
||||
@ -3545,7 +3591,6 @@ static int flush_cached_blocks(KEY_CACHE *keycache,
|
||||
right queue anyway.
|
||||
*/
|
||||
link_to_file_list(keycache, block, file, 1);
|
||||
|
||||
}
|
||||
block->status&= ~BLOCK_IN_FLUSH;
|
||||
/*
|
||||
@ -3581,7 +3626,7 @@ static int flush_cached_blocks(KEY_CACHE *keycache,
|
||||
|
||||
|
||||
/*
|
||||
flush all key blocks for a file to disk, but don't do any mutex locks.
|
||||
Flush all key blocks for a file to disk, but don't do any mutex locks.
|
||||
|
||||
SYNOPSIS
|
||||
flush_key_blocks_int()
|
||||
@ -3614,8 +3659,8 @@ static int flush_key_blocks_int(KEY_CACHE *keycache,
|
||||
file, keycache->blocks_used, keycache->blocks_changed));
|
||||
|
||||
#if !defined(DBUG_OFF) && defined(EXTRA_DEBUG)
|
||||
DBUG_EXECUTE("check_keycache",
|
||||
test_key_cache(keycache, "start of flush_key_blocks", 0););
|
||||
DBUG_EXECUTE("check_keycache",
|
||||
test_key_cache(keycache, "start of flush_key_blocks", 0););
|
||||
#endif
|
||||
|
||||
cache= cache_buff;
|
||||
@ -3746,7 +3791,6 @@ restart:
|
||||
{
|
||||
/* It's a temporary file */
|
||||
DBUG_ASSERT(!(block->status & BLOCK_REASSIGNED));
|
||||
|
||||
/*
|
||||
free_block() must not be called with BLOCK_CHANGED. Note
|
||||
that we must not change the BLOCK_CHANGED flag outside of
|
||||
@ -4457,8 +4501,8 @@ static void keycache_debug_print(const char * fmt,...)
|
||||
va_start(args,fmt);
|
||||
if (keycache_debug_log)
|
||||
{
|
||||
VOID(vfprintf(keycache_debug_log, fmt, args));
|
||||
VOID(fputc('\n',keycache_debug_log));
|
||||
(void) vfprintf(keycache_debug_log, fmt, args);
|
||||
(void) fputc('\n',keycache_debug_log);
|
||||
}
|
||||
va_end(args);
|
||||
}
|
||||
|
@ -277,6 +277,7 @@ cp include/mysql/plugin.h $DESTDIR/include/mysql/
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
mkdir -p $DESTDIR/lib/opt
|
||||
mkdir -p $DESTDIR/lib/plugin
|
||||
cp libmysql/$TARGET/libmysql.dll \
|
||||
libmysql/$TARGET/libmysql.lib \
|
||||
libmysql/$TARGET/mysqlclient.lib \
|
||||
@ -284,6 +285,10 @@ cp libmysql/$TARGET/libmysql.dll \
|
||||
regex/$TARGET/regex.lib \
|
||||
strings/$TARGET/strings.lib \
|
||||
zlib/$TARGET/zlib.lib $DESTDIR/lib/opt/
|
||||
if [ -d storage/innodb_plugin ]; then
|
||||
cp storage/innodb_plugin/$TARGET/ha_innodb_plugin.dll \
|
||||
$DESTDIR/lib/plugin/
|
||||
fi
|
||||
|
||||
if [ x"$TARGET" != x"release" ] ; then
|
||||
cp libmysql/$TARGET/libmysql.pdb \
|
||||
@ -292,11 +297,17 @@ if [ x"$TARGET" != x"release" ] ; then
|
||||
regex/$TARGET/regex.pdb \
|
||||
strings/$TARGET/strings.pdb \
|
||||
zlib/$TARGET/zlib.pdb $DESTDIR/lib/opt/
|
||||
if [ -d storage/innodb_plugin ]; then
|
||||
cp storage/innodb_plugin/$TARGET/ha_innodb_plugin.pdb \
|
||||
$DESTDIR/lib/plugin/
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ x"$PACK_DEBUG" = x"" -a -f "libmysql/debug/libmysql.lib" -o \
|
||||
x"$PACK_DEBUG" = x"yes" ] ; then
|
||||
mkdir -p $DESTDIR/lib/debug
|
||||
mkdir -p $DESTDIR/lib/plugin/debug
|
||||
cp libmysql/debug/libmysql.dll \
|
||||
libmysql/debug/libmysql.lib \
|
||||
libmysql/debug/libmysql.pdb \
|
||||
@ -310,6 +321,12 @@ if [ x"$PACK_DEBUG" = x"" -a -f "libmysql/debug/libmysql.lib" -o \
|
||||
strings/debug/strings.pdb \
|
||||
zlib/debug/zlib.lib \
|
||||
zlib/debug/zlib.pdb $DESTDIR/lib/debug/
|
||||
if [ -d storage/innodb_plugin ]; then
|
||||
cp storage/innodb_plugin/debug/ha_innodb_plugin.dll \
|
||||
storage/innodb_plugin/debug/ha_innodb_plugin.lib \
|
||||
storage/innodb_plugin/debug/ha_innodb_plugin.pdb \
|
||||
$DESTDIR/lib/plugin/debug/
|
||||
fi
|
||||
fi
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
@ -907,6 +907,9 @@ bool mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent)
|
||||
remove_db_from_cache(db);
|
||||
pthread_mutex_unlock(&LOCK_open);
|
||||
|
||||
Drop_table_error_handler err_handler(thd->get_internal_handler());
|
||||
thd->push_internal_handler(&err_handler);
|
||||
|
||||
error= -1;
|
||||
/*
|
||||
We temporarily disable the binary log while dropping the objects
|
||||
@ -939,6 +942,7 @@ bool mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent)
|
||||
error = 0;
|
||||
reenable_binlog(thd);
|
||||
}
|
||||
thd->pop_internal_handler();
|
||||
}
|
||||
if (!silent && deleted>=0)
|
||||
{
|
||||
|
@ -9831,12 +9831,12 @@ static MYSQL_SYSVAR_LONG(additional_mem_pool_size, innobase_additional_mem_pool_
|
||||
static MYSQL_SYSVAR_ULONG(autoextend_increment, srv_auto_extend_increment,
|
||||
PLUGIN_VAR_RQCMDARG,
|
||||
"Data file autoextend increment in megabytes",
|
||||
NULL, NULL, 64L, 1L, 1000L, 0);
|
||||
NULL, NULL, 8L, 1L, 1000L, 0);
|
||||
|
||||
static MYSQL_SYSVAR_LONGLONG(buffer_pool_size, innobase_buffer_pool_size,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
"The size of the memory buffer InnoDB uses to cache data and indexes of its tables.",
|
||||
NULL, NULL, 1024*1024*1024L, 5*1024*1024L, LONGLONG_MAX, 1024*1024L);
|
||||
NULL, NULL, 128*1024*1024L, 5*1024*1024L, LONGLONG_MAX, 1024*1024L);
|
||||
|
||||
static MYSQL_SYSVAR_ULONG(commit_concurrency, innobase_commit_concurrency,
|
||||
PLUGIN_VAR_RQCMDARG,
|
||||
@ -9856,12 +9856,12 @@ static MYSQL_SYSVAR_LONG(file_io_threads, innobase_file_io_threads,
|
||||
static MYSQL_SYSVAR_ULONG(read_io_threads, innobase_read_io_threads,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
"Number of background read I/O threads in InnoDB.",
|
||||
NULL, NULL, 8, 1, 64, 0);
|
||||
NULL, NULL, 4, 1, 64, 0);
|
||||
|
||||
static MYSQL_SYSVAR_ULONG(write_io_threads, innobase_write_io_threads,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
"Number of background write I/O threads in InnoDB.",
|
||||
NULL, NULL, 8, 1, 64, 0);
|
||||
NULL, NULL, 4, 1, 64, 0);
|
||||
|
||||
static MYSQL_SYSVAR_LONG(force_recovery, innobase_force_recovery,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
@ -9871,17 +9871,17 @@ static MYSQL_SYSVAR_LONG(force_recovery, innobase_force_recovery,
|
||||
static MYSQL_SYSVAR_LONG(log_buffer_size, innobase_log_buffer_size,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
"The size of the buffer which InnoDB uses to write log to the log files on disk.",
|
||||
NULL, NULL, 16*1024*1024L, 256*1024L, LONG_MAX, 1024);
|
||||
NULL, NULL, 8*1024*1024L, 256*1024L, LONG_MAX, 1024);
|
||||
|
||||
static MYSQL_SYSVAR_LONGLONG(log_file_size, innobase_log_file_size,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
"Size of each log file in a log group.",
|
||||
NULL, NULL, 128*1024*1024L, 1*1024*1024L, LONGLONG_MAX, 1024*1024L);
|
||||
NULL, NULL, 5*1024*1024L, 1*1024*1024L, LONGLONG_MAX, 1024*1024L);
|
||||
|
||||
static MYSQL_SYSVAR_LONG(log_files_in_group, innobase_log_files_in_group,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
"Number of log files in the log group. InnoDB writes to the files in a circular fashion. Value 3 is recommended here.",
|
||||
NULL, NULL, 3, 2, 100, 0);
|
||||
NULL, NULL, 2, 2, 100, 0);
|
||||
|
||||
static MYSQL_SYSVAR_LONG(mirrored_log_groups, innobase_mirrored_log_groups,
|
||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||
|
@ -13,7 +13,8 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
testdir=$(prefix)/mysql-test/ndb
|
||||
testroot=$(prefix)
|
||||
testdir=$(testroot)/mysql-test/ndb
|
||||
|
||||
include $(top_srcdir)/storage/ndb/config/common.mk.am
|
||||
include $(top_srcdir)/storage/ndb/config/type_util.mk.am
|
||||
|
@ -309,7 +309,7 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \
|
||||
--with-blackhole-storage-engine \
|
||||
--with-federated-storage-engine \
|
||||
--without-plugin-daemon_example \
|
||||
--without-plugin-example \
|
||||
--without-plugin-ftexample \
|
||||
--with-partition \
|
||||
--with-big-tables \
|
||||
%if %{WITH_BUNDLED_ZLIB}
|
||||
@ -701,7 +701,11 @@ fi
|
||||
%attr(755, root, root) %{_bindir}/resolve_stack_dump
|
||||
%attr(755, root, root) %{_bindir}/resolveip
|
||||
|
||||
%attr(755, root, root) %{_libdir}/plugin/*.so*
|
||||
%attr(755, root, root) %{_libdir}/mysql/plugin/ha_example.so*
|
||||
%if %{WITHOUT_INNODB_PLUGIN}
|
||||
%else
|
||||
%attr(755, root, root) %{_libdir}/mysql/plugin/ha_innodb_plugin.so*
|
||||
%endif
|
||||
|
||||
%attr(755, root, root) %{_sbindir}/mysqld
|
||||
%attr(755, root, root) %{_sbindir}/mysqld-debug
|
||||
@ -827,8 +831,13 @@ fi
|
||||
%{_libdir}/mysql/libvio.a
|
||||
%{_libdir}/mysql/libz.a
|
||||
%{_libdir}/mysql/libz.la
|
||||
%{_libdir}/plugin/*.a
|
||||
%{_libdir}/plugin/*.la
|
||||
%{_libdir}/mysql/plugin/ha_example.a
|
||||
%{_libdir}/mysql/plugin/ha_example.la
|
||||
%if %{WITHOUT_INNODB_PLUGIN}
|
||||
%else
|
||||
%{_libdir}/mysql/plugin/ha_innodb_plugin.a
|
||||
%{_libdir}/mysql/plugin/ha_innodb_plugin.la
|
||||
%endif
|
||||
|
||||
%files shared
|
||||
%defattr(-, root, root, 0755)
|
||||
@ -874,9 +883,9 @@ fi
|
||||
* Fri Aug 21 2009 Jonathan Perkin <jperkin@sun.com>
|
||||
|
||||
- Install plugin libraries in appropriate packages.
|
||||
- Disable example plugins.
|
||||
- Disable libdaemon_example and ftexample plugins.
|
||||
|
||||
* Thu Aug 20 2009 Jonathan Perkin <jperkin@stripped>
|
||||
* Thu Aug 20 2009 Jonathan Perkin <jperkin@sun.com>
|
||||
|
||||
- Update variable used for mysql-test suite location to match source.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user