Merge moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.1-merge
into moonlight.intranet:/home/tomash/src/mysql_ab/mysql-5.1-runtine-merge
This commit is contained in:
commit
b341356abd
@ -1,35 +1,5 @@
|
||||
# Local macros for automake & autoconf
|
||||
|
||||
# A local version of AC_CHECK_SIZEOF that includes sys/types.h
|
||||
dnl MYSQL_CHECK_SIZEOF(TYPE [, CROSS-SIZE])
|
||||
AC_DEFUN([MYSQL_CHECK_SIZEOF],
|
||||
[changequote(<<, >>)dnl
|
||||
dnl The name to #define.
|
||||
define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
|
||||
dnl The cache variable name.
|
||||
define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
|
||||
changequote([, ])dnl
|
||||
AC_MSG_CHECKING(size of $1)
|
||||
AC_CACHE_VAL(AC_CV_NAME,
|
||||
[AC_TRY_RUN([#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#if STDC_HEADERS
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
main()
|
||||
{
|
||||
FILE *f=fopen("conftestval", "w");
|
||||
if (!f) exit(1);
|
||||
fprintf(f, "%d\n", sizeof($1));
|
||||
exit(0);
|
||||
}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
|
||||
AC_MSG_RESULT($AC_CV_NAME)
|
||||
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [ ])
|
||||
undefine([AC_TYPE_NAME])dnl
|
||||
undefine([AC_CV_NAME])dnl
|
||||
])
|
||||
|
||||
#---START: Used in for client configure
|
||||
AC_DEFUN([MYSQL_TYPE_ACCEPT],
|
||||
[ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
|
@ -1687,7 +1687,7 @@ then
|
||||
AC_MSG_ERROR("MySQL needs a long long type.")
|
||||
fi
|
||||
# off_t is not a builtin type
|
||||
MYSQL_CHECK_SIZEOF(off_t, 4)
|
||||
AC_CHECK_SIZEOF(off_t, 4)
|
||||
if test "$ac_cv_sizeof_off_t" -eq 0
|
||||
then
|
||||
AC_MSG_ERROR("MySQL needs a off_t type.")
|
||||
|
@ -135,7 +135,13 @@ make_atomic_swap(ptr)
|
||||
#undef _atomic_h_cleanup_
|
||||
#endif
|
||||
|
||||
typedef int32 intptr; /* TODO configure check */
|
||||
#if SIZEOF_CHARP == SIZEOF_INT
|
||||
typedef int intptr;
|
||||
#elif SIZEOF_CHARP == SIZEOF_LONG
|
||||
typedef long intptr;
|
||||
#else
|
||||
#error
|
||||
#endif
|
||||
|
||||
#define MY_ATOMIC_OK 0
|
||||
#define MY_ATOMIC_NOT_1CPU 1
|
||||
|
@ -2279,7 +2279,7 @@ INSERT INTO t1 VALUES(1), (2), (3), (4), (5);
|
||||
CREATE FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11) RETURN a+b //
|
||||
CREATE PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
|
||||
BEGIN SELECT a+b INTO c; end //
|
||||
create function bug9056_func2(f1 char binary) returns char binary
|
||||
create function bug9056_func2(f1 char binary) returns char
|
||||
begin
|
||||
set f1= concat( 'hello', f1 );
|
||||
return f1;
|
||||
|
@ -1181,3 +1181,8 @@ show authors;
|
||||
return 42;
|
||||
end|
|
||||
ERROR 0A000: Not allowed to return a result set from a function
|
||||
drop function if exists bug20701|
|
||||
create function bug20701() returns varchar(25) binary return "test"|
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'return value collation'
|
||||
create function bug20701() returns varchar(25) return "test"|
|
||||
drop function bug20701|
|
||||
|
@ -3620,12 +3620,18 @@ call bug11333(10)|
|
||||
drop procedure bug11333|
|
||||
drop table t3|
|
||||
drop function if exists bug9048|
|
||||
create function bug9048(f1 char binary) returns char binary
|
||||
create function bug9048(f1 char binary) returns char
|
||||
begin
|
||||
set f1= concat( 'hello', f1 );
|
||||
return f1;
|
||||
end|
|
||||
drop function bug9048|
|
||||
create function bug9048(f1 char binary) returns char binary
|
||||
begin
|
||||
set f1= concat( 'hello', f1 );
|
||||
return f1;
|
||||
end|
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'return value collation'
|
||||
drop procedure if exists bug12849_1|
|
||||
create procedure bug12849_1(inout x char) select x into x|
|
||||
set @var='a'|
|
||||
@ -4074,7 +4080,7 @@ select res;
|
||||
end|
|
||||
create table t3 (a int)|
|
||||
insert into t3 values (0)|
|
||||
create view v1 as select a from t3;
|
||||
create view v1 as select a from t3|
|
||||
create procedure bug10100pt(level int, lim int)
|
||||
begin
|
||||
if level < lim then
|
||||
@ -4095,7 +4101,7 @@ else
|
||||
select * from v1;
|
||||
end if;
|
||||
end|
|
||||
prepare stmt2 from "select * from t3;";
|
||||
prepare stmt2 from "select * from t3;"|
|
||||
create procedure bug10100pd(level int, lim int)
|
||||
begin
|
||||
if level < lim then
|
||||
@ -4465,7 +4471,7 @@ Error 1347 'test.v1' is not BASE TABLE
|
||||
Error 1347 'test.v1' is not BASE TABLE
|
||||
Error 1347 'test.v1' is not BASE TABLE
|
||||
drop procedure bug13012|
|
||||
drop view v1;
|
||||
drop view v1|
|
||||
select * from t1 order by data|
|
||||
id data
|
||||
aa 0
|
||||
|
@ -951,7 +951,7 @@ CREATE FUNCTION `bug9056_func1`(a INT, b INT) RETURNS int(11) RETURN a+b //
|
||||
CREATE PROCEDURE `bug9056_proc1`(IN a INT, IN b INT, OUT c INT)
|
||||
BEGIN SELECT a+b INTO c; end //
|
||||
|
||||
create function bug9056_func2(f1 char binary) returns char binary
|
||||
create function bug9056_func2(f1 char binary) returns char
|
||||
begin
|
||||
set f1= concat( 'hello', f1 );
|
||||
return f1;
|
||||
|
@ -1728,10 +1728,28 @@ begin
|
||||
return 42;
|
||||
end|
|
||||
|
||||
#
|
||||
# BUG#20701: BINARY keyword should be forbidden in stored routines
|
||||
#
|
||||
--disable_warnings
|
||||
drop function if exists bug20701|
|
||||
--enable_warnings
|
||||
#
|
||||
# This was disabled in 5.1.12. See bug #20701
|
||||
# When collation support in SP is implemented, then this test should
|
||||
# be removed.
|
||||
#
|
||||
--error ER_NOT_SUPPORTED_YET
|
||||
create function bug20701() returns varchar(25) binary return "test"|
|
||||
create function bug20701() returns varchar(25) return "test"|
|
||||
drop function bug20701|
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
#--disable_warnings
|
||||
#drop procedure if exists bugNNNN|
|
||||
#drop function if exists bugNNNN|
|
||||
#--enable_warnings
|
||||
#create procedure bugNNNN...
|
||||
#create function bugNNNN...
|
||||
|
@ -4381,12 +4381,23 @@ drop table t3|
|
||||
--disable_warnings
|
||||
drop function if exists bug9048|
|
||||
--enable_warnings
|
||||
create function bug9048(f1 char binary) returns char binary
|
||||
create function bug9048(f1 char binary) returns char
|
||||
begin
|
||||
set f1= concat( 'hello', f1 );
|
||||
return f1;
|
||||
end|
|
||||
drop function bug9048|
|
||||
#
|
||||
# This was disabled in 5.1.12. See bug #20701
|
||||
# When collation support in SP is implemented, then this test should
|
||||
# be removed.
|
||||
#
|
||||
--error ER_NOT_SUPPORTED_YET
|
||||
create function bug9048(f1 char binary) returns char binary
|
||||
begin
|
||||
set f1= concat( 'hello', f1 );
|
||||
return f1;
|
||||
end|
|
||||
|
||||
# Bug #12849 Stored Procedure: Crash on procedure call with CHAR type
|
||||
# 'INOUT' parameter
|
||||
@ -4940,7 +4951,7 @@ end|
|
||||
# a procedure which use tables and recursion
|
||||
create table t3 (a int)|
|
||||
insert into t3 values (0)|
|
||||
create view v1 as select a from t3;
|
||||
create view v1 as select a from t3|
|
||||
create procedure bug10100pt(level int, lim int)
|
||||
begin
|
||||
if level < lim then
|
||||
@ -4963,7 +4974,7 @@ begin
|
||||
end if;
|
||||
end|
|
||||
# dynamic sql & recursion
|
||||
prepare stmt2 from "select * from t3;";
|
||||
prepare stmt2 from "select * from t3;"|
|
||||
create procedure bug10100pd(level int, lim int)
|
||||
begin
|
||||
if level < lim then
|
||||
@ -5258,7 +5269,7 @@ call bug13012()|
|
||||
call bug13012()|
|
||||
call bug13012()|
|
||||
drop procedure bug13012|
|
||||
drop view v1;
|
||||
drop view v1|
|
||||
select * from t1 order by data|
|
||||
|
||||
#
|
||||
|
10
sql/sp.cc
10
sql/sp.cc
@ -992,6 +992,7 @@ sp_find_routine(THD *thd, int type, sp_name *name, sp_cache **cp,
|
||||
}
|
||||
DBUG_RETURN(sp->m_first_free_instance);
|
||||
}
|
||||
|
||||
level= sp->m_last_cached_sp->m_recursion_level + 1;
|
||||
if (level > depth)
|
||||
{
|
||||
@ -1161,19 +1162,16 @@ sp_update_procedure(THD *thd, sp_name *name, st_sp_chistics *chistics)
|
||||
int
|
||||
sp_show_create_procedure(THD *thd, sp_name *name)
|
||||
{
|
||||
int ret= SP_KEY_NOT_FOUND;
|
||||
sp_head *sp;
|
||||
DBUG_ENTER("sp_show_create_procedure");
|
||||
DBUG_PRINT("enter", ("name: %.*s", name->m_name.length, name->m_name.str));
|
||||
|
||||
if ((sp= sp_find_routine(thd, TYPE_ENUM_PROCEDURE, name,
|
||||
&thd->sp_proc_cache, FALSE)))
|
||||
{
|
||||
int ret= sp->show_create_procedure(thd);
|
||||
ret= sp->show_create_procedure(thd);
|
||||
|
||||
DBUG_RETURN(ret);
|
||||
}
|
||||
|
||||
DBUG_RETURN(SP_KEY_NOT_FOUND);
|
||||
DBUG_RETURN(ret);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1672,6 +1672,17 @@ create_function_tail:
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
sp_head *sp= lex->sphead;
|
||||
/*
|
||||
This was disabled in 5.1.12. See bug #20701
|
||||
When collation support in SP is implemented, then this test
|
||||
should be removed.
|
||||
*/
|
||||
if (($8 == FIELD_TYPE_STRING || $8 == MYSQL_TYPE_VARCHAR)
|
||||
&& (lex->type & BINCMP_FLAG))
|
||||
{
|
||||
my_error(ER_NOT_SUPPORTED_YET, MYF(0), "return value collation");
|
||||
YYABORT;
|
||||
}
|
||||
|
||||
if (sp->fill_field_definition(YYTHD, lex,
|
||||
(enum enum_field_types) $8,
|
||||
|
Loading…
x
Reference in New Issue
Block a user