mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +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 | ||||
|   | ||||
							
								
								
									
										13
									
								
								sql/sp.cc
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								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,7 +97,13 @@ db_find_routine_aux(THD *thd, int type, sp_name *name, | ||||
|     if (! (table= open_ltable(thd, &tables, ltype))) | ||||
|     { | ||||
|       *tablep= NULL; | ||||
|       mysql_proc_table_exists= 0; | ||||
|       /* | ||||
|         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); | ||||
|     } | ||||
|     *opened= TRUE; | ||||
|   | ||||
| @@ -8417,7 +8417,10 @@ 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 && | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hf@deer.(none)
					hf@deer.(none)