mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fix for bug#20701 BINARY keyword should be forbidden in stored routines
create function func() returns char(10) binary ... is no more possible. This will be reenabled when bug 2676 "DECLARE can't have COLLATE clause in stored procedure" is fixed. Fix after 2nd review mysql-test/r/sp-error.result: update result mysql-test/r/sp.result: update result mysql-test/t/sp-error.test: add a test case for bug#20701 BINARY keyword should be forbidden in stored procedures mysql-test/t/sp.test: Fix test case which uses binary for the return value of a function. It's no more possible after fix for bug#20701 BINARY keyword should be forbidden in SP Fix few glitches where ; is used instead of | . The delimiter is | sql/sql_yacc.yy: Fix for bug#20701 BINARY keyword should be forbidden in stored routines create function func() returns char(10) binary ... is no more possible. This will be reenabled when bug 2676 "DECLARE can't have COLLATE clause in stored procedure" is fixed
This commit is contained in:
@ -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
|
||||
|
@ -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|
|
||||
|
||||
#
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user