Commit 6f0f3b07 authored by unknown's avatar unknown

Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0

into deer.(none):/home/hf/work/mysql-5.0.errmsg

parents 1fa01e62 769eabaf
...@@ -351,6 +351,15 @@ then ...@@ -351,6 +351,15 @@ then
if echo $CXX | grep gcc > /dev/null 2>&1 if echo $CXX | grep gcc > /dev/null 2>&1
then then
GCC_VERSION=`gcc -v 2>&1 | grep version | sed -e 's/[[^0-9. ]]//g; s/^ *//g; s/ .*//g'` 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'" echo "Using gcc version '$GCC_VERSION'"
case "$GCC_VERSION" in case "$GCC_VERSION" in
3.4.*|3.5.*) 3.4.*|3.5.*)
......
...@@ -32,7 +32,7 @@ endif ...@@ -32,7 +32,7 @@ endif
benchdir_root= $(prefix) benchdir_root= $(prefix)
testdir = $(benchdir_root)/mysql-test 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) EXTRA_DIST = $(EXTRA_SCRIPTS)
test_SCRIPTS = mysql-test-run install_test_db test_SCRIPTS = mysql-test-run install_test_db
test_DATA = std_data/client-key.pem std_data/client-cert.pem std_data/cacert.pem test_DATA = std_data/client-key.pem std_data/client-cert.pem std_data/cacert.pem
...@@ -59,7 +59,6 @@ dist-hook: ...@@ -59,7 +59,6 @@ dist-hook:
$(INSTALL_DATA) $(srcdir)/std_data/*.frm $(distdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/*.frm $(distdir)/std_data
$(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(distdir)/lib $(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(distdir)/lib
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib $(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib
$(INSTALL_DATA) $(srcdir)/*.supp $(distdir)/
install-data-local: install-data-local:
$(mkinstalldirs) \ $(mkinstalldirs) \
......
...@@ -503,4 +503,14 @@ ERROR 0A000: LOCK is not allowed in stored procedures ...@@ -503,4 +503,14 @@ ERROR 0A000: LOCK is not allowed in stored procedures
create procedure bug6600() create procedure bug6600()
unlock table t1| unlock table t1|
ERROR 0A000: UNLOCK is not allowed in stored procedures 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| drop table t1|
...@@ -696,6 +696,29 @@ create procedure bug6600() ...@@ -696,6 +696,29 @@ create procedure bug6600()
create procedure bug6600() create procedure bug6600()
unlock table t1| 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 # BUG#NNNN: New bug synopsis
......
...@@ -70,9 +70,8 @@ db_find_routine_aux(THD *thd, int type, sp_name *name, ...@@ -70,9 +70,8 @@ db_find_routine_aux(THD *thd, int type, sp_name *name,
type, name->m_name.length, name->m_name.str)); type, name->m_name.length, name->m_name.str));
/* /*
Speed up things if mysql.proc doesn't exists Speed up things if mysql.proc doesn't exists. mysql_proc_table_exists
mysql_proc_table_exists is set when on creates a stored procedure is set when we create or read stored procedure or on flush privileges.
or on flush privileges
*/ */
if (!mysql_proc_table_exists && ltype == TL_READ) if (!mysql_proc_table_exists && ltype == TL_READ)
DBUG_RETURN(SP_OPEN_TABLE_FAILED); DBUG_RETURN(SP_OPEN_TABLE_FAILED);
...@@ -98,6 +97,12 @@ db_find_routine_aux(THD *thd, int type, sp_name *name, ...@@ -98,6 +97,12 @@ db_find_routine_aux(THD *thd, int type, sp_name *name,
if (! (table= open_ltable(thd, &tables, ltype))) if (! (table= open_ltable(thd, &tables, ltype)))
{ {
*tablep= NULL; *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; mysql_proc_table_exists= 0;
DBUG_RETURN(SP_OPEN_TABLE_FAILED); DBUG_RETURN(SP_OPEN_TABLE_FAILED);
} }
......
...@@ -8417,8 +8417,11 @@ uint my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)), ...@@ -8417,8 +8417,11 @@ uint my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
{ {
ch= *b++; ch= *b++;
if (b >= (uchar*) end) if (b >= (uchar*) end)
{
*error= 1;
return chbeg - beg; /* unexpected EOL */ return chbeg - beg; /* unexpected EOL */
} }
}
if (ch >= 0xA1 && ch <= 0xFE && if (ch >= 0xA1 && ch <= 0xFE &&
*b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */ *b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment