mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-36337: udf_example UDF pointers need unsigned is_null/error
This is required to match the sql/sql_udf.h
This commit is contained in:
committed by
Sergei Golubchik
parent
497d6324bc
commit
c91c2e74ff
@@ -156,33 +156,33 @@ static pthread_mutex_t LOCK_hostname;
|
|||||||
my_bool metaphon_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
my_bool metaphon_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
||||||
void metaphon_deinit(UDF_INIT *initid);
|
void metaphon_deinit(UDF_INIT *initid);
|
||||||
char *metaphon(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
char *metaphon(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
||||||
unsigned long *length, char *is_null, char *error);
|
unsigned long *length, uchar *is_null, uchar *error);
|
||||||
my_bool myfunc_double_init(UDF_INIT *, UDF_ARGS *args, char *message);
|
my_bool myfunc_double_init(UDF_INIT *, UDF_ARGS *args, char *message);
|
||||||
double myfunc_double(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
|
double myfunc_double(UDF_INIT *initid, UDF_ARGS *args, uchar *is_null,
|
||||||
char *error);
|
uchar *error);
|
||||||
my_bool myfunc_int_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
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,
|
longlong myfunc_int(UDF_INIT *initid, UDF_ARGS *args, uchar *is_null,
|
||||||
char *error);
|
uchar *error);
|
||||||
my_bool udf_sequence_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
my_bool udf_sequence_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
||||||
void udf_sequence_deinit(UDF_INIT *initid);
|
void udf_sequence_deinit(UDF_INIT *initid);
|
||||||
longlong udf_sequence(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
|
longlong udf_sequence(UDF_INIT *initid, UDF_ARGS *args, uchar *is_null,
|
||||||
char *error);
|
uchar *error);
|
||||||
my_bool avgcost_init( UDF_INIT* initid, UDF_ARGS* args, char* message );
|
my_bool avgcost_init( UDF_INIT* initid, UDF_ARGS* args, char* message );
|
||||||
void avgcost_deinit( UDF_INIT* initid );
|
void avgcost_deinit( UDF_INIT* initid );
|
||||||
void avgcost_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
|
void avgcost_reset( UDF_INIT* initid, UDF_ARGS* args, uchar* is_null, uchar *error );
|
||||||
void avgcost_clear( UDF_INIT* initid, char* is_null, char *error );
|
void avgcost_clear( UDF_INIT* initid, uchar* is_null, uchar *error );
|
||||||
void avgcost_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
|
void avgcost_add( UDF_INIT* initid, UDF_ARGS* args, uchar* is_null, uchar *error );
|
||||||
double avgcost( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
|
double avgcost( UDF_INIT* initid, UDF_ARGS* args, uchar* is_null, uchar *error );
|
||||||
my_bool avg2_init( UDF_INIT* initid, UDF_ARGS* args, char* message );
|
my_bool avg2_init( UDF_INIT* initid, UDF_ARGS* args, char* message );
|
||||||
void avg2_deinit( UDF_INIT* initid );
|
void avg2_deinit( UDF_INIT* initid );
|
||||||
void avg2_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
|
void avg2_reset( UDF_INIT* initid, UDF_ARGS* args, uchar *is_null, uchar *error );
|
||||||
void avg2_clear( UDF_INIT* initid, char* is_null, char *error );
|
void avg2_clear( UDF_INIT* initid, uchar* is_null, uchar *error );
|
||||||
void avg2_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
|
void avg2_add( UDF_INIT* initid, UDF_ARGS* args, uchar *is_null, uchar *error );
|
||||||
void avg2_remove( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
|
void avg2_remove( UDF_INIT* initid, UDF_ARGS* args, uchar* is_null, uchar *error );
|
||||||
double avg2( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
|
double avg2( UDF_INIT* initid, UDF_ARGS* args, uchar* is_null, uchar *error );
|
||||||
my_bool is_const_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
my_bool is_const_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
||||||
char *is_const(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long
|
char *is_const(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long
|
||||||
*length, char *is_null, char *error);
|
*length, uchar *is_null, uchar *error);
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -292,7 +292,7 @@ static char codes[26] = {
|
|||||||
|
|
||||||
char *metaphon(UDF_INIT *initid __attribute__((unused)),
|
char *metaphon(UDF_INIT *initid __attribute__((unused)),
|
||||||
UDF_ARGS *args, char *result, unsigned long *length,
|
UDF_ARGS *args, char *result, unsigned long *length,
|
||||||
char *is_null, char *error __attribute__((unused)))
|
uchar *is_null, uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
const char *word=args->args[0];
|
const char *word=args->args[0];
|
||||||
const char *w_end;
|
const char *w_end;
|
||||||
@@ -568,7 +568,7 @@ my_bool myfunc_double_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
|
|||||||
|
|
||||||
|
|
||||||
double myfunc_double(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
double myfunc_double(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
||||||
char *is_null, char *error __attribute__((unused)))
|
uchar *is_null, uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
unsigned long val = 0;
|
unsigned long val = 0;
|
||||||
unsigned long v = 0;
|
unsigned long v = 0;
|
||||||
@@ -607,8 +607,8 @@ double myfunc_double(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
|||||||
/* This function returns the sum of all arguments */
|
/* This function returns the sum of all arguments */
|
||||||
|
|
||||||
longlong myfunc_int(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
longlong myfunc_int(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
||||||
char *is_null __attribute__((unused)),
|
uchar *is_null __attribute__((unused)),
|
||||||
char *error __attribute__((unused)))
|
uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
longlong val = 0;
|
longlong val = 0;
|
||||||
uint i;
|
uint i;
|
||||||
@@ -681,8 +681,8 @@ void udf_sequence_deinit(UDF_INIT *initid)
|
|||||||
}
|
}
|
||||||
|
|
||||||
longlong udf_sequence(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
longlong udf_sequence(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
||||||
char *is_null __attribute__((unused)),
|
uchar *is_null __attribute__((unused)),
|
||||||
char *error __attribute__((unused)))
|
uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
ulonglong val=0;
|
ulonglong val=0;
|
||||||
if (args->arg_count)
|
if (args->arg_count)
|
||||||
@@ -712,11 +712,11 @@ longlong udf_sequence(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
|||||||
my_bool lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
my_bool lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
||||||
void lookup_deinit(UDF_INIT *initid);
|
void lookup_deinit(UDF_INIT *initid);
|
||||||
char *lookup(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
char *lookup(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
||||||
unsigned long *length, char *null_value, char *error);
|
unsigned long *length, uchar *null_value, uchar *error);
|
||||||
my_bool reverse_lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
my_bool reverse_lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
|
||||||
void reverse_lookup_deinit(UDF_INIT *initid);
|
void reverse_lookup_deinit(UDF_INIT *initid);
|
||||||
char *reverse_lookup(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
char *reverse_lookup(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
||||||
unsigned long *length, char *null_value, char *error);
|
unsigned long *length, uchar *null_value, uchar *error);
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -750,8 +750,8 @@ void lookup_deinit(UDF_INIT *initid __attribute__((unused)))
|
|||||||
}
|
}
|
||||||
|
|
||||||
char *lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
char *lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
||||||
char *result, unsigned long *res_length, char *null_value,
|
char *result, unsigned long *res_length, uchar *null_value,
|
||||||
char *error __attribute__((unused)))
|
uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
uint length;
|
uint length;
|
||||||
char name_buff[256];
|
char name_buff[256];
|
||||||
@@ -831,7 +831,7 @@ void reverse_lookup_deinit(UDF_INIT *initid __attribute__((unused)))
|
|||||||
|
|
||||||
char *reverse_lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
char *reverse_lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
|
||||||
char *result, unsigned long *res_length,
|
char *result, unsigned long *res_length,
|
||||||
char *null_value, char *error __attribute__((unused)))
|
uchar *null_value, uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
#if defined(HAVE_GETHOSTBYADDR_R) && defined(HAVE_SOLARIS_STYLE_GETHOST)
|
#if defined(HAVE_GETHOSTBYADDR_R) && defined(HAVE_SOLARIS_STYLE_GETHOST)
|
||||||
char name_buff[256];
|
char name_buff[256];
|
||||||
@@ -974,7 +974,7 @@ avgcost_deinit( UDF_INIT* initid )
|
|||||||
|
|
||||||
/* This is only for MySQL 4.0 compatibility */
|
/* This is only for MySQL 4.0 compatibility */
|
||||||
void
|
void
|
||||||
avgcost_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
|
avgcost_reset(UDF_INIT* initid, UDF_ARGS* args, uchar* is_null, uchar* message)
|
||||||
{
|
{
|
||||||
avgcost_clear(initid, is_null, message);
|
avgcost_clear(initid, is_null, message);
|
||||||
avgcost_add(initid, args, is_null, message);
|
avgcost_add(initid, args, is_null, message);
|
||||||
@@ -983,8 +983,8 @@ avgcost_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
|
|||||||
/* This is needed to get things to work in MySQL 4.1.1 and above */
|
/* This is needed to get things to work in MySQL 4.1.1 and above */
|
||||||
|
|
||||||
void
|
void
|
||||||
avgcost_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
|
avgcost_clear(UDF_INIT* initid, uchar* is_null __attribute__((unused)),
|
||||||
char* message __attribute__((unused)))
|
uchar* message __attribute__((unused)))
|
||||||
{
|
{
|
||||||
struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
|
struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
|
||||||
data->totalprice= 0.0;
|
data->totalprice= 0.0;
|
||||||
@@ -995,8 +995,8 @@ avgcost_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
|
|||||||
|
|
||||||
void
|
void
|
||||||
avgcost_add(UDF_INIT* initid, UDF_ARGS* args,
|
avgcost_add(UDF_INIT* initid, UDF_ARGS* args,
|
||||||
char* is_null __attribute__((unused)),
|
uchar* is_null __attribute__((unused)),
|
||||||
char* message __attribute__((unused)))
|
uchar* message __attribute__((unused)))
|
||||||
{
|
{
|
||||||
if (args->args[0] && args->args[1])
|
if (args->args[0] && args->args[1])
|
||||||
{
|
{
|
||||||
@@ -1043,7 +1043,7 @@ avgcost_add(UDF_INIT* initid, UDF_ARGS* args,
|
|||||||
|
|
||||||
double
|
double
|
||||||
avgcost( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
|
avgcost( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
|
||||||
char* is_null, char* error __attribute__((unused)))
|
uchar* is_null, uchar* error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
|
struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
|
||||||
if (!data->count || !data->totalquantity)
|
if (!data->count || !data->totalquantity)
|
||||||
@@ -1121,7 +1121,8 @@ avg2_deinit( UDF_INIT* initid )
|
|||||||
|
|
||||||
/* This is only for MySQL 4.0 compatibility */
|
/* This is only for MySQL 4.0 compatibility */
|
||||||
void
|
void
|
||||||
avg2_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
|
avg2_reset(UDF_INIT* initid, UDF_ARGS* args, uchar* is_null,
|
||||||
|
uchar* message)
|
||||||
{
|
{
|
||||||
avgcost_clear(initid, is_null, message);
|
avgcost_clear(initid, is_null, message);
|
||||||
avgcost_add(initid, args, is_null, message);
|
avgcost_add(initid, args, is_null, message);
|
||||||
@@ -1130,8 +1131,8 @@ avg2_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
|
|||||||
/* This is needed to get things to work in MySQL 4.1.1 and above */
|
/* This is needed to get things to work in MySQL 4.1.1 and above */
|
||||||
|
|
||||||
void
|
void
|
||||||
avg2_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
|
avg2_clear(UDF_INIT* initid, uchar* is_null __attribute__((unused)),
|
||||||
char* message __attribute__((unused)))
|
uchar* message __attribute__((unused)))
|
||||||
{
|
{
|
||||||
struct avg2_data* data = (struct avg2_data*)initid->ptr;
|
struct avg2_data* data = (struct avg2_data*)initid->ptr;
|
||||||
data->sum= 0.0;
|
data->sum= 0.0;
|
||||||
@@ -1141,8 +1142,8 @@ avg2_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
|
|||||||
|
|
||||||
void
|
void
|
||||||
avg2_add(UDF_INIT* initid, UDF_ARGS* args,
|
avg2_add(UDF_INIT* initid, UDF_ARGS* args,
|
||||||
char* is_null __attribute__((unused)),
|
uchar* is_null __attribute__((unused)),
|
||||||
char* message __attribute__((unused)))
|
uchar* message __attribute__((unused)))
|
||||||
{
|
{
|
||||||
if (args->args[0] && args->args[1])
|
if (args->args[0] && args->args[1])
|
||||||
{
|
{
|
||||||
@@ -1158,8 +1159,8 @@ avg2_add(UDF_INIT* initid, UDF_ARGS* args,
|
|||||||
|
|
||||||
void
|
void
|
||||||
avg2_remove(UDF_INIT* initid, UDF_ARGS* args,
|
avg2_remove(UDF_INIT* initid, UDF_ARGS* args,
|
||||||
char* is_null __attribute__((unused)),
|
uchar* is_null __attribute__((unused)),
|
||||||
char* message __attribute__((unused)))
|
uchar* message __attribute__((unused)))
|
||||||
{
|
{
|
||||||
if (args->args[0] && args->args[1])
|
if (args->args[0] && args->args[1])
|
||||||
{
|
{
|
||||||
@@ -1174,8 +1175,8 @@ avg2_remove(UDF_INIT* initid, UDF_ARGS* args,
|
|||||||
|
|
||||||
|
|
||||||
double
|
double
|
||||||
avg2( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
|
avg2(UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
|
||||||
char* is_null, char* error __attribute__((unused)))
|
uchar* is_null, uchar* error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
struct avg2_data* data = (struct avg2_data*)initid->ptr;
|
struct avg2_data* data = (struct avg2_data*)initid->ptr;
|
||||||
if (!data->count)
|
if (!data->count)
|
||||||
@@ -1191,8 +1192,8 @@ avg2( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
|
|||||||
my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
|
my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
|
||||||
char *message);
|
char *message);
|
||||||
char *myfunc_argument_name(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
char *myfunc_argument_name(UDF_INIT *initid, UDF_ARGS *args, char *result,
|
||||||
unsigned long *length, char *null_value,
|
unsigned long *length, uchar *null_value,
|
||||||
char *error);
|
uchar *error);
|
||||||
|
|
||||||
my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
|
my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
|
||||||
char *message)
|
char *message)
|
||||||
@@ -1210,8 +1211,8 @@ my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
|
|||||||
|
|
||||||
char *myfunc_argument_name(UDF_INIT *initid __attribute__((unused)),
|
char *myfunc_argument_name(UDF_INIT *initid __attribute__((unused)),
|
||||||
UDF_ARGS *args, char *result,
|
UDF_ARGS *args, char *result,
|
||||||
unsigned long *length, char *null_value,
|
unsigned long *length, uchar *null_value,
|
||||||
char *error __attribute__((unused)))
|
uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
if (!args->attributes[0])
|
if (!args->attributes[0])
|
||||||
{
|
{
|
||||||
@@ -1241,7 +1242,7 @@ my_bool is_const_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
|
|||||||
|
|
||||||
char * is_const(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
|
char * is_const(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
|
||||||
char *result, unsigned long *length,
|
char *result, unsigned long *length,
|
||||||
char *is_null, char *error __attribute__((unused)))
|
uchar *is_null,uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
if (initid->ptr != 0) {
|
if (initid->ptr != 0) {
|
||||||
sprintf(result, "const");
|
sprintf(result, "const");
|
||||||
@@ -1280,7 +1281,7 @@ my_bool check_const_len_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
|
|||||||
|
|
||||||
char * check_const_len(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
|
char * check_const_len(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
|
||||||
char *result, unsigned long *length,
|
char *result, unsigned long *length,
|
||||||
char *is_null, char *error __attribute__((unused)))
|
uchar *is_null,uchar *error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
strmov(result, initid->ptr);
|
strmov(result, initid->ptr);
|
||||||
*length= (uint) strlen(result);
|
*length= (uint) strlen(result);
|
||||||
|
Reference in New Issue
Block a user