mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge mysql.com:/extern/mysql/bk/mysql-5.0-runtime
into mysql.com:/extern/mysql/5.0/bug16896/mysql-5.0
This commit is contained in:
@ -1176,3 +1176,6 @@ end|
|
||||
call bug15091();
|
||||
ERROR 42S02: Unknown table 'c' in field list
|
||||
drop procedure bug15091;
|
||||
drop function if exists bug16896;
|
||||
create aggregate function bug16896() returns int return 1;
|
||||
ERROR 42000: AGGREGATE is not supported for stored functions
|
||||
|
@ -1703,6 +1703,17 @@ call bug15091();
|
||||
drop procedure bug15091;
|
||||
|
||||
|
||||
#
|
||||
# BUG#16896: Stored function: unused AGGREGATE-clause in CREATE FUNCTION
|
||||
#
|
||||
--disable_warnings
|
||||
drop function if exists bug16896;
|
||||
--enable_warnings
|
||||
|
||||
--error ER_SP_NO_AGGREGATE
|
||||
create aggregate function bug16896() returns int return 1;
|
||||
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
@ -1710,3 +1721,4 @@ drop procedure bug15091;
|
||||
#drop procedure if exists bugNNNN|
|
||||
#--enable_warnings
|
||||
#create procedure bugNNNN...
|
||||
|
||||
|
@ -5607,3 +5607,5 @@ ER_SP_PROC_TABLE_CORRUPT
|
||||
eng "Failed to load routine %s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)"
|
||||
ER_SP_WRONG_NAME 42000
|
||||
eng "Incorrect routine name '%-.64s'"
|
||||
ER_SP_NO_AGGREGATE 42000
|
||||
eng "AGGREGATE is not supported for stored functions"
|
||||
|
@ -1326,6 +1326,16 @@ create_function_tail:
|
||||
LEX *lex= Lex;
|
||||
sp_head *sp;
|
||||
|
||||
/*
|
||||
First check if AGGREGATE was used, in that case it's a
|
||||
syntax error.
|
||||
*/
|
||||
if (lex->udf.type == UDFTYPE_AGGREGATE)
|
||||
{
|
||||
my_error(ER_SP_NO_AGGREGATE, MYF(0));
|
||||
YYABORT;
|
||||
}
|
||||
|
||||
if (lex->sphead)
|
||||
{
|
||||
my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
|
||||
|
@ -144,6 +144,7 @@ char *metaphon(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
||||
my_bool myfunc_double_init(UDF_INIT *, UDF_ARGS *args, char *message);
|
||||
double myfunc_double(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
|
||||
char *error);
|
||||
my_bool myfunc_int_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
||||
longlong myfunc_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
|
||||
char *error);
|
||||
my_bool sequence_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
||||
@ -597,6 +598,14 @@ longlong myfunc_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
|
||||
return val;
|
||||
}
|
||||
|
||||
/*
|
||||
At least one of _init/_deinit is needed unless the server is started
|
||||
with --allow_suspicious_udfs.
|
||||
*/
|
||||
my_bool myfunc_int_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Simple example of how to get a sequences starting from the first argument
|
||||
|
Reference in New Issue
Block a user