Loading configure.in +9 −0 Original line number Diff line number Diff line Loading @@ -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.*) Loading mysql-test/Makefile.am +1 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) \ Loading mysql-test/r/sp-error.result +10 −0 Original line number Diff line number Diff line Loading @@ -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| mysql-test/t/sp-error.test +23 −0 Original line number Diff line number Diff line Loading @@ -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 Loading sql/sp.cc +9 −4 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); } Loading Loading
configure.in +9 −0 Original line number Diff line number Diff line Loading @@ -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.*) Loading
mysql-test/Makefile.am +1 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) \ Loading
mysql-test/r/sp-error.result +10 −0 Original line number Diff line number Diff line Loading @@ -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|
mysql-test/t/sp-error.test +23 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
sql/sp.cc +9 −4 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); } Loading