mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge rurik.mysql.com:/home/igor/mysql-5.0
into rurik.mysql.com:/home/igor/dev/mysql-5.0-0
This commit is contained in:
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include "rlconf.h"
|
||||
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
|
30
cmd-line-utils/readline/config_readline.h
Normal file
30
cmd-line-utils/readline/config_readline.h
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
config-readline.h Maintained by hand. Contains the readline specific
|
||||
parts from config.h.in in readline 4.3
|
||||
*/
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
Ultrix botches type-ahead when switching from canonical to
|
||||
non-canonical mode, at least through version 4.3
|
||||
*/
|
||||
#if !defined (HAVE_TERMIOS_H) || !defined (HAVE_TCGETATTR) || defined (ultrix)
|
||||
# define TERMIOS_MISSING
|
||||
#endif
|
||||
|
||||
#if defined (STRCOLL_BROKEN)
|
||||
# undef HAVE_STRCOLL
|
||||
#endif
|
||||
|
||||
#if defined (__STDC__) && defined (HAVE_STDARG_H)
|
||||
# define PREFER_STDARG
|
||||
# define USE_VARARGS
|
||||
#else
|
||||
# if defined (HAVE_VARARGS_H)
|
||||
# define PREFER_VARARGS
|
||||
# define USE_VARARGS
|
||||
# endif
|
||||
#endif
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#if !defined (BUFSIZ)
|
||||
#include <stdio.h>
|
||||
|
@ -22,9 +22,7 @@
|
||||
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -25,9 +25,7 @@
|
||||
you can call. I think I have done that. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -25,9 +25,7 @@
|
||||
you can call. I think I have done that. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -22,9 +22,7 @@
|
||||
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#if defined (HAVE_STDLIB_H)
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
|
@ -26,9 +26,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -20,9 +20,7 @@
|
||||
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#if defined (HAVE_STDLIB_H)
|
||||
# include <stdlib.h>
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
# include <unistd.h>
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -23,9 +23,7 @@
|
||||
|
||||
#include "rlconf.h"
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
@ -22,9 +22,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include "posixstat.h"
|
||||
|
@ -22,9 +22,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
|
@ -22,9 +22,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
|
@ -22,9 +22,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h> /* Just for NULL. Yuck. */
|
||||
#include <sys/types.h>
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include "posixstat.h"
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
# include <unistd.h>
|
||||
|
@ -19,9 +19,7 @@
|
||||
along with Readline; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#if defined (HAVE_UNISTD_H)
|
||||
# ifdef _MINIX
|
||||
|
@ -22,9 +22,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -21,9 +21,7 @@
|
||||
59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
|
@ -31,9 +31,7 @@
|
||||
|
||||
#if defined (VI_MODE)
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
@ -20,9 +20,7 @@
|
||||
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
|
||||
#define READLINE_LIBRARY
|
||||
|
||||
#if defined (HAVE_CONFIG_H)
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include "config_readline.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
16
configure.in
16
configure.in
@ -451,33 +451,33 @@ PS=$ac_cv_path_PS
|
||||
# Linux style
|
||||
if $PS p $$ 2> /dev/null | grep $0 > /dev/null
|
||||
then
|
||||
FIND_PROC="$PS p \$\$PID | grep mysqld > /dev/null"
|
||||
FIND_PROC="$PS p \$\$PID | grep \$\$MYSQLD > /dev/null"
|
||||
# Solaris
|
||||
elif $PS -fp $$ 2> /dev/null | grep $0 > /dev/null
|
||||
then
|
||||
FIND_PROC="$PS -p \$\$PID | grep mysqld > /dev/null"
|
||||
FIND_PROC="$PS -p \$\$PID | grep \$\$MYSQLD > /dev/null"
|
||||
# BSD style
|
||||
elif $PS -uaxww 2> /dev/null | grep $0 > /dev/null
|
||||
then
|
||||
FIND_PROC="$PS -uaxww | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
||||
FIND_PROC="$PS -uaxww | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
|
||||
# SysV style
|
||||
elif $PS -ef 2> /dev/null | grep $0 > /dev/null
|
||||
then
|
||||
FIND_PROC="$PS -ef | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
||||
FIND_PROC="$PS -ef | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
|
||||
# Do anybody use this?
|
||||
elif $PS $$ 2> /dev/null | grep $0 > /dev/null
|
||||
then
|
||||
FIND_PROC="$PS \$\$PID | grep mysqld > /dev/null"
|
||||
FIND_PROC="$PS \$\$PID | grep \$\$MYSQLD > /dev/null"
|
||||
else
|
||||
case $SYSTEM_TYPE in
|
||||
*freebsd*)
|
||||
FIND_PROC="$PS p \$\$PID | grep mysqld > /dev/null"
|
||||
FIND_PROC="$PS p \$\$PID | grep \$\$MYSQLD > /dev/null"
|
||||
;;
|
||||
*darwin*)
|
||||
FIND_PROC="$PS -uaxww | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
||||
FIND_PROC="$PS -uaxww | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
|
||||
;;
|
||||
*cygwin*)
|
||||
FIND_PROC="$PS -e | grep mysqld | grep \" \$\$PID \" > /dev/null"
|
||||
FIND_PROC="$PS -e | grep \$\$MYSQLD | grep \" \$\$PID \" > /dev/null"
|
||||
;;
|
||||
*netware*)
|
||||
FIND_PROC=
|
||||
|
@ -256,12 +256,12 @@ INSERT INTO t2 VALUES (0),(0),(1),(1),(2),(2);
|
||||
explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref j1 j1 4 const 1 Using index
|
||||
1 SIMPLE t1 range i1 i1 4 NULL 7 Using where; Using index
|
||||
1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
|
||||
explain select * from t1 force index(i1), t2 force index(j1) where
|
||||
(t1.key1 <t2.keya + 1) and t2.keya=3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref j1 j1 4 const 1 Using index
|
||||
1 SIMPLE t1 range i1 i1 4 NULL 7 Using where; Using index
|
||||
1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (
|
||||
a int(11) default NULL,
|
||||
|
@ -457,9 +457,9 @@ ERROR 42S22: Unknown column 'aa' in 'order clause'
|
||||
drop procedure bug2653_1|
|
||||
drop procedure bug2653_2|
|
||||
create procedure bug4344() drop procedure bug4344|
|
||||
ERROR HY000: Can't drop a PROCEDURE from within another stored routine
|
||||
ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
|
||||
create procedure bug4344() drop function bug4344|
|
||||
ERROR HY000: Can't drop a FUNCTION from within another stored routine
|
||||
ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
|
||||
drop procedure if exists bug3294|
|
||||
create procedure bug3294()
|
||||
begin
|
||||
@ -585,4 +585,13 @@ end;
|
||||
end;
|
||||
end|
|
||||
drop procedure bug9073|
|
||||
create procedure bug7047()
|
||||
alter procedure bug7047|
|
||||
ERROR HY000: Can't drop or alter a PROCEDURE from within another stored routine
|
||||
create function bug7047() returns int
|
||||
begin
|
||||
alter function bug7047;
|
||||
return 0;
|
||||
end|
|
||||
ERROR HY000: Can't drop or alter a FUNCTION from within another stored routine
|
||||
drop table t1|
|
||||
|
@ -2958,4 +2958,13 @@ select @x|
|
||||
set global query_cache_size = @qcs1|
|
||||
delete from t1|
|
||||
drop function bug9902|
|
||||
drop procedure if exists bug6898|
|
||||
create procedure bug6898()
|
||||
begin
|
||||
goto label1;
|
||||
label label1;
|
||||
begin end;
|
||||
goto label1;
|
||||
end|
|
||||
drop procedure bug6898|
|
||||
drop table t1,t2;
|
||||
|
@ -226,3 +226,17 @@ select * from t1;
|
||||
a b
|
||||
0 2
|
||||
drop table t1;
|
||||
create table t1 (a int, b varchar(10), key b(b(5))) engine=myisam;
|
||||
create table t2 (a int, b varchar(10)) engine=myisam;
|
||||
insert into t1 values ( 1, 'abcd1e');
|
||||
insert into t1 values ( 2, 'abcd2e');
|
||||
insert into t2 values ( 1, 'abcd1e');
|
||||
insert into t2 values ( 2, 'abcd2e');
|
||||
analyze table t1,t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status OK
|
||||
update t1, t2 set t1.a = t2.a where t2.b = t1.b;
|
||||
show warnings;
|
||||
Level Code Message
|
||||
drop table t1, t2;
|
||||
|
@ -817,6 +817,20 @@ end|
|
||||
drop procedure bug9073|
|
||||
|
||||
|
||||
#
|
||||
# BUG#7047: Stored procedure crash if alter procedure
|
||||
#
|
||||
--error ER_SP_NO_DROP_SP
|
||||
create procedure bug7047()
|
||||
alter procedure bug7047|
|
||||
--error ER_SP_NO_DROP_SP
|
||||
create function bug7047() returns int
|
||||
begin
|
||||
alter function bug7047;
|
||||
return 0;
|
||||
end|
|
||||
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
@ -3628,6 +3628,22 @@ delete from t1|
|
||||
drop function bug9902|
|
||||
|
||||
|
||||
#
|
||||
# BUG#6898: Stored procedure crash if GOTO statements exist
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug6898|
|
||||
--enable_warnings
|
||||
create procedure bug6898()
|
||||
begin
|
||||
goto label1;
|
||||
label label1;
|
||||
begin end;
|
||||
goto label1;
|
||||
end|
|
||||
drop procedure bug6898|
|
||||
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
@ -189,3 +189,15 @@ insert into t1 values (0, '1');
|
||||
update t1 set b = b + 1 where a = 0;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# BUG#9103 "Erroneous data truncation warnings on multi-table updates"
|
||||
create table t1 (a int, b varchar(10), key b(b(5))) engine=myisam;
|
||||
create table t2 (a int, b varchar(10)) engine=myisam;
|
||||
insert into t1 values ( 1, 'abcd1e');
|
||||
insert into t1 values ( 2, 'abcd2e');
|
||||
insert into t2 values ( 1, 'abcd1e');
|
||||
insert into t2 values ( 2, 'abcd2e');
|
||||
analyze table t1,t2;
|
||||
update t1, t2 set t1.a = t2.a where t2.b = t1.b;
|
||||
show warnings;
|
||||
drop table t1, t2;
|
||||
|
@ -2257,7 +2257,8 @@ inline double get_index_only_read_time(const PARAM* param, ha_rows records,
|
||||
param->table->file->ref_length) + 1);
|
||||
read_time=((double) (records+keys_per_block-1)/
|
||||
(double) keys_per_block);
|
||||
return read_time;
|
||||
/* Add 0.01 to avoid cost races between 'range' and 'index' */
|
||||
return read_time + 0.01;
|
||||
}
|
||||
|
||||
|
||||
@ -5532,7 +5533,7 @@ QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (cp_buffer_from_ref(ref) && thd->is_fatal_error ||
|
||||
if (cp_buffer_from_ref(thd,ref) && thd->is_fatal_error ||
|
||||
!(range= new QUICK_RANGE()))
|
||||
goto err; // out of memory
|
||||
|
||||
@ -7912,6 +7913,8 @@ int QUICK_GROUP_MIN_MAX_SELECT::reset(void)
|
||||
file->extra(HA_EXTRA_KEYREAD); /* We need only the key attributes */
|
||||
result= file->ha_index_init(index);
|
||||
result= file->index_last(record);
|
||||
if (result == HA_ERR_END_OF_FILE)
|
||||
DBUG_RETURN(0);
|
||||
if (result)
|
||||
DBUG_RETURN(result);
|
||||
if (quick_prefix_select && quick_prefix_select->reset())
|
||||
|
@ -5213,7 +5213,7 @@ ER_VIEW_INVALID
|
||||
eng "View '%-.64s.%-.64s' references invalid table(s) or column(s) or function(s)"
|
||||
rus "View '%-.64s.%-.64s' <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
ER_SP_NO_DROP_SP
|
||||
eng "Can't drop a %s from within another stored routine"
|
||||
eng "Can't drop or alter a %s from within another stored routine"
|
||||
ER_SP_GOTO_IN_HNDLR
|
||||
eng "GOTO is not allowed in a stored procedure handler"
|
||||
ER_TRG_ALREADY_EXISTS
|
||||
|
@ -1499,7 +1499,7 @@ sp_instr_jump::opt_shortcut_jump(sp_head *sp, sp_instr *start)
|
||||
{
|
||||
uint ndest;
|
||||
|
||||
if (start == i)
|
||||
if (start == i || this == i)
|
||||
break;
|
||||
ndest= i->opt_shortcut_jump(sp, start);
|
||||
if (ndest == dest)
|
||||
|
@ -9583,7 +9583,7 @@ join_read_const(JOIN_TAB *tab)
|
||||
if (table->status & STATUS_GARBAGE) // If first read
|
||||
{
|
||||
table->status= 0;
|
||||
if (cp_buffer_from_ref(&tab->ref))
|
||||
if (cp_buffer_from_ref(tab->join->thd, &tab->ref))
|
||||
error=HA_ERR_KEY_NOT_FOUND;
|
||||
else
|
||||
{
|
||||
@ -9647,7 +9647,7 @@ join_read_always_key(JOIN_TAB *tab)
|
||||
|
||||
if (!table->file->inited)
|
||||
table->file->ha_index_init(tab->ref.key);
|
||||
if (cp_buffer_from_ref(&tab->ref))
|
||||
if (cp_buffer_from_ref(tab->join->thd, &tab->ref))
|
||||
return -1;
|
||||
if ((error=table->file->index_read(table->record[0],
|
||||
tab->ref.key_buff,
|
||||
@ -9674,7 +9674,7 @@ join_read_last_key(JOIN_TAB *tab)
|
||||
|
||||
if (!table->file->inited)
|
||||
table->file->ha_index_init(tab->ref.key);
|
||||
if (cp_buffer_from_ref(&tab->ref))
|
||||
if (cp_buffer_from_ref(tab->join->thd, &tab->ref))
|
||||
return -1;
|
||||
if ((error=table->file->index_read_last(table->record[0],
|
||||
tab->ref.key_buff,
|
||||
@ -9848,7 +9848,7 @@ join_ft_read_first(JOIN_TAB *tab)
|
||||
if (!table->file->inited)
|
||||
table->file->ha_index_init(tab->ref.key);
|
||||
#if NOT_USED_YET
|
||||
if (cp_buffer_from_ref(&tab->ref)) // as ft-key doesn't use store_key's
|
||||
if (cp_buffer_from_ref(tab->join->thd, &tab->ref)) // as ft-key doesn't use store_key's
|
||||
return -1; // see also FT_SELECT::init()
|
||||
#endif
|
||||
table->file->ft_init();
|
||||
@ -11609,7 +11609,8 @@ cmp_buffer_with_ref(JOIN_TAB *tab)
|
||||
{
|
||||
memcpy(tab->ref.key_buff2, tab->ref.key_buff, tab->ref.key_length);
|
||||
}
|
||||
if ((tab->ref.key_err=cp_buffer_from_ref(&tab->ref)) || diff)
|
||||
if ((tab->ref.key_err= cp_buffer_from_ref(tab->join->thd, &tab->ref)) ||
|
||||
diff)
|
||||
return 1;
|
||||
return memcmp(tab->ref.key_buff2, tab->ref.key_buff, tab->ref.key_length)
|
||||
!= 0;
|
||||
@ -11617,11 +11618,17 @@ cmp_buffer_with_ref(JOIN_TAB *tab)
|
||||
|
||||
|
||||
bool
|
||||
cp_buffer_from_ref(TABLE_REF *ref)
|
||||
cp_buffer_from_ref(THD *thd, TABLE_REF *ref)
|
||||
{
|
||||
enum enum_check_fields save_count_cuted_fields= thd->count_cuted_fields;
|
||||
thd->count_cuted_fields= CHECK_FIELD_IGNORE;
|
||||
for (store_key **copy=ref->key_copy ; *copy ; copy++)
|
||||
if ((*copy)->copy())
|
||||
{
|
||||
thd->count_cuted_fields= save_count_cuted_fields;
|
||||
return 1; // Something went wrong
|
||||
}
|
||||
thd->count_cuted_fields= save_count_cuted_fields;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -520,7 +520,7 @@ public:
|
||||
const char *name() const { return "const"; }
|
||||
};
|
||||
|
||||
bool cp_buffer_from_ref(TABLE_REF *ref);
|
||||
bool cp_buffer_from_ref(THD *thd, TABLE_REF *ref);
|
||||
bool error_if_full_join(JOIN *join);
|
||||
int report_error(TABLE *table, int error);
|
||||
int safe_index_read(JOIN_TAB *tab);
|
||||
|
@ -3305,6 +3305,11 @@ alter:
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
|
||||
if (lex->sphead)
|
||||
{
|
||||
my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
|
||||
YYABORT;
|
||||
}
|
||||
bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
|
||||
}
|
||||
sp_a_chistics
|
||||
@ -3318,6 +3323,11 @@ alter:
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
|
||||
if (lex->sphead)
|
||||
{
|
||||
my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
|
||||
YYABORT;
|
||||
}
|
||||
bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
|
||||
}
|
||||
sp_a_chistics
|
||||
|
Reference in New Issue
Block a user