mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0
into deer.(none):/home/hf/work/mysql-5.0.errmsg
This commit is contained in:
@ -351,6 +351,15 @@ then
|
||||
if echo $CXX | grep gcc > /dev/null 2>&1
|
||||
then
|
||||
GCC_VERSION=`gcc -v 2>&1 | grep version | sed -e 's/[[^0-9. ]]//g; s/^ *//g; s/ .*//g'`
|
||||
case $SYSTEM_TYPE in
|
||||
*freebsd*)
|
||||
# The libsupc++ library on freebsd with gcc 3.4.2 is dependent on
|
||||
# libstdc++, disable it since other solution works fine
|
||||
GCC_VERSION="NOSUPCPP_$GCC_VERSION"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
echo "Using gcc version '$GCC_VERSION'"
|
||||
case "$GCC_VERSION" in
|
||||
3.4.*|3.5.*)
|
||||
|
@ -32,7 +32,7 @@ endif
|
||||
|
||||
benchdir_root= $(prefix)
|
||||
testdir = $(benchdir_root)/mysql-test
|
||||
EXTRA_SCRIPTS = mysql-test-run.sh mysql-test-run.pl install_test_db.sh
|
||||
EXTRA_SCRIPTS = mysql-test-run.sh mysql-test-run.pl install_test_db.sh valgrind.supp
|
||||
EXTRA_DIST = $(EXTRA_SCRIPTS)
|
||||
test_SCRIPTS = mysql-test-run install_test_db
|
||||
test_DATA = std_data/client-key.pem std_data/client-cert.pem std_data/cacert.pem
|
||||
@ -59,7 +59,6 @@ dist-hook:
|
||||
$(INSTALL_DATA) $(srcdir)/std_data/*.frm $(distdir)/std_data
|
||||
$(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(distdir)/lib
|
||||
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib
|
||||
$(INSTALL_DATA) $(srcdir)/*.supp $(distdir)/
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) \
|
||||
|
@ -503,4 +503,14 @@ ERROR 0A000: LOCK is not allowed in stored procedures
|
||||
create procedure bug6600()
|
||||
unlock table t1|
|
||||
ERROR 0A000: UNLOCK is not allowed in stored procedures
|
||||
drop procedure if exists bug9566|
|
||||
create procedure bug9566()
|
||||
begin
|
||||
select * from t1;
|
||||
end|
|
||||
lock table t1 read|
|
||||
call bug9566()|
|
||||
ERROR HY000: Table 'proc' was not locked with LOCK TABLES
|
||||
unlock tables|
|
||||
drop procedure bug9566|
|
||||
drop table t1|
|
||||
|
@ -696,6 +696,29 @@ create procedure bug6600()
|
||||
create procedure bug6600()
|
||||
unlock table t1|
|
||||
|
||||
#
|
||||
# BUG#9566: explicit LOCK TABLE and store procedures result in illegal state
|
||||
#
|
||||
# We should not think that mysql.proc table does not exist if we are unable
|
||||
# to open it under LOCK TABLE or in prelocked mode. Probably this test
|
||||
# should be removed when Monty will allow access to mysql.proc without
|
||||
# locking it.
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug9566|
|
||||
--enable_warnings
|
||||
create procedure bug9566()
|
||||
begin
|
||||
select * from t1;
|
||||
end|
|
||||
lock table t1 read|
|
||||
# This should fail because we forgot to lock mysql.proc table explicitly
|
||||
--error 1100
|
||||
call bug9566()|
|
||||
unlock tables|
|
||||
# This should succeed
|
||||
drop procedure bug9566|
|
||||
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
|
11
sql/sp.cc
11
sql/sp.cc
@ -70,9 +70,8 @@ db_find_routine_aux(THD *thd, int type, sp_name *name,
|
||||
type, name->m_name.length, name->m_name.str));
|
||||
|
||||
/*
|
||||
Speed up things if mysql.proc doesn't exists
|
||||
mysql_proc_table_exists is set when on creates a stored procedure
|
||||
or on flush privileges
|
||||
Speed up things if mysql.proc doesn't exists. mysql_proc_table_exists
|
||||
is set when we create or read stored procedure or on flush privileges.
|
||||
*/
|
||||
if (!mysql_proc_table_exists && ltype == TL_READ)
|
||||
DBUG_RETURN(SP_OPEN_TABLE_FAILED);
|
||||
@ -98,6 +97,12 @@ db_find_routine_aux(THD *thd, int type, sp_name *name,
|
||||
if (! (table= open_ltable(thd, &tables, ltype)))
|
||||
{
|
||||
*tablep= NULL;
|
||||
/*
|
||||
Under explicit LOCK TABLES or in prelocked mode we should not
|
||||
say that mysql.proc table does not exist if we are unable to
|
||||
open it since this condition may be transient.
|
||||
*/
|
||||
if (!(thd->locked_tables || thd->prelocked_mode))
|
||||
mysql_proc_table_exists= 0;
|
||||
DBUG_RETURN(SP_OPEN_TABLE_FAILED);
|
||||
}
|
||||
|
@ -8417,8 +8417,11 @@ uint my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
|
||||
{
|
||||
ch= *b++;
|
||||
if (b >= (uchar*) end)
|
||||
{
|
||||
*error= 1;
|
||||
return chbeg - beg; /* unexpected EOL */
|
||||
}
|
||||
}
|
||||
|
||||
if (ch >= 0xA1 && ch <= 0xFE &&
|
||||
*b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */
|
||||
|
Reference in New Issue
Block a user