Skip to content

Commit b445f66

Browse files
committed
MDEV-36337: udf_example UDF pointers need unsigned is_null/error
This is required to match the sql/sql_udf.h
1 parent 2a2b55f commit b445f66

File tree

1 file changed

+50
-49
lines changed

1 file changed

+50
-49
lines changed

sql/udf_example.c

+50-49
Original file line numberDiff line numberDiff line change
@@ -156,33 +156,33 @@ static pthread_mutex_t LOCK_hostname;
156156
my_bool metaphon_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
157157
void metaphon_deinit(UDF_INIT *initid);
158158
char *metaphon(UDF_INIT *initid, UDF_ARGS *args, char *result,
159-
unsigned long *length, char *is_null, char *error);
159+
unsigned long *length, unsigned char *is_null, unsigned char *error);
160160
my_bool myfunc_double_init(UDF_INIT *, UDF_ARGS *args, char *message);
161-
double myfunc_double(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
162-
char *error);
161+
double myfunc_double(UDF_INIT *initid, UDF_ARGS *args, unsigned char *is_null,
162+
unsigned char *error);
163163
my_bool myfunc_int_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
164-
longlong myfunc_int(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
165-
char *error);
164+
longlong myfunc_int(UDF_INIT *initid, UDF_ARGS *args, unsigned char *is_null,
165+
unsigned char *error);
166166
my_bool udf_sequence_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
167167
void udf_sequence_deinit(UDF_INIT *initid);
168-
longlong udf_sequence(UDF_INIT *initid, UDF_ARGS *args, char *is_null,
169-
char *error);
168+
longlong udf_sequence(UDF_INIT *initid, UDF_ARGS *args, unsigned char *is_null,
169+
unsigned char *error);
170170
my_bool avgcost_init( UDF_INIT* initid, UDF_ARGS* args, char* message );
171171
void avgcost_deinit( UDF_INIT* initid );
172-
void avgcost_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
173-
void avgcost_clear( UDF_INIT* initid, char* is_null, char *error );
174-
void avgcost_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
175-
double avgcost( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
172+
void avgcost_reset( UDF_INIT* initid, UDF_ARGS* args, unsigned char* is_null, unsigned char *error );
173+
void avgcost_clear( UDF_INIT* initid, unsigned char* is_null, unsigned char *error );
174+
void avgcost_add( UDF_INIT* initid, UDF_ARGS* args, unsigned char* is_null, unsigned char *error );
175+
double avgcost( UDF_INIT* initid, UDF_ARGS* args, unsigned char* is_null, unsigned char *error );
176176
my_bool avg2_init( UDF_INIT* initid, UDF_ARGS* args, char* message );
177177
void avg2_deinit( UDF_INIT* initid );
178-
void avg2_reset( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
179-
void avg2_clear( UDF_INIT* initid, char* is_null, char *error );
180-
void avg2_add( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
181-
void avg2_remove( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
182-
double avg2( UDF_INIT* initid, UDF_ARGS* args, char* is_null, char *error );
178+
void avg2_reset( UDF_INIT* initid, UDF_ARGS* args, unsigned char *is_null, unsigned char *error );
179+
void avg2_clear( UDF_INIT* initid, unsigned char* is_null, unsigned char *error );
180+
void avg2_add( UDF_INIT* initid, UDF_ARGS* args, unsigned char *is_null, unsigned char *error );
181+
void avg2_remove( UDF_INIT* initid, UDF_ARGS* args, unsigned char* is_null, unsigned char *error );
182+
double avg2( UDF_INIT* initid, UDF_ARGS* args, unsigned char* is_null, unsigned char *error );
183183
my_bool is_const_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
184184
char *is_const(UDF_INIT *initid, UDF_ARGS *args, char *result, unsigned long
185-
*length, char *is_null, char *error);
185+
*length, unsigned char *is_null, unsigned char *error);
186186

187187

188188
/*************************************************************************
@@ -292,7 +292,7 @@ static char codes[26] = {
292292

293293
char *metaphon(UDF_INIT *initid __attribute__((unused)),
294294
UDF_ARGS *args, char *result, unsigned long *length,
295-
char *is_null, char *error __attribute__((unused)))
295+
unsigned char *is_null, unsigned char *error __attribute__((unused)))
296296
{
297297
const char *word=args->args[0];
298298
const char *w_end;
@@ -568,7 +568,7 @@ my_bool myfunc_double_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
568568

569569

570570
double myfunc_double(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
571-
char *is_null, char *error __attribute__((unused)))
571+
unsigned char *is_null, unsigned char *error __attribute__((unused)))
572572
{
573573
unsigned long val = 0;
574574
unsigned long v = 0;
@@ -607,8 +607,8 @@ double myfunc_double(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
607607
/* This function returns the sum of all arguments */
608608

609609
longlong myfunc_int(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
610-
char *is_null __attribute__((unused)),
611-
char *error __attribute__((unused)))
610+
unsigned char *is_null __attribute__((unused)),
611+
unsigned char *error __attribute__((unused)))
612612
{
613613
longlong val = 0;
614614
uint i;
@@ -681,8 +681,8 @@ void udf_sequence_deinit(UDF_INIT *initid)
681681
}
682682

683683
longlong udf_sequence(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
684-
char *is_null __attribute__((unused)),
685-
char *error __attribute__((unused)))
684+
unsigned char *is_null __attribute__((unused)),
685+
unsigned char *error __attribute__((unused)))
686686
{
687687
ulonglong val=0;
688688
if (args->arg_count)
@@ -712,11 +712,11 @@ longlong udf_sequence(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
712712
my_bool lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
713713
void lookup_deinit(UDF_INIT *initid);
714714
char *lookup(UDF_INIT *initid, UDF_ARGS *args, char *result,
715-
unsigned long *length, char *null_value, char *error);
715+
unsigned long *length, unsigned char *null_value, unsigned char *error);
716716
my_bool reverse_lookup_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
717717
void reverse_lookup_deinit(UDF_INIT *initid);
718718
char *reverse_lookup(UDF_INIT *initid, UDF_ARGS *args, char *result,
719-
unsigned long *length, char *null_value, char *error);
719+
unsigned long *length, unsigned char *null_value, unsigned char *error);
720720

721721

722722
/****************************************************************************
@@ -750,8 +750,8 @@ void lookup_deinit(UDF_INIT *initid __attribute__((unused)))
750750
}
751751

752752
char *lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
753-
char *result, unsigned long *res_length, char *null_value,
754-
char *error __attribute__((unused)))
753+
char *result, unsigned long *res_length, unsigned char *null_value,
754+
unsigned char *error __attribute__((unused)))
755755
{
756756
uint length;
757757
char name_buff[256];
@@ -831,7 +831,7 @@ void reverse_lookup_deinit(UDF_INIT *initid __attribute__((unused)))
831831

832832
char *reverse_lookup(UDF_INIT *initid __attribute__((unused)), UDF_ARGS *args,
833833
char *result, unsigned long *res_length,
834-
char *null_value, char *error __attribute__((unused)))
834+
unsigned char *null_value, unsigned char *error __attribute__((unused)))
835835
{
836836
#if defined(HAVE_GETHOSTBYADDR_R) && defined(HAVE_SOLARIS_STYLE_GETHOST)
837837
char name_buff[256];
@@ -974,7 +974,7 @@ avgcost_deinit( UDF_INIT* initid )
974974

975975
/* This is only for MySQL 4.0 compatibility */
976976
void
977-
avgcost_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
977+
avgcost_reset(UDF_INIT* initid, UDF_ARGS* args, unsigned char* is_null, unsigned char* message)
978978
{
979979
avgcost_clear(initid, is_null, message);
980980
avgcost_add(initid, args, is_null, message);
@@ -983,8 +983,8 @@ avgcost_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
983983
/* This is needed to get things to work in MySQL 4.1.1 and above */
984984

985985
void
986-
avgcost_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
987-
char* message __attribute__((unused)))
986+
avgcost_clear(UDF_INIT* initid, unsigned char* is_null __attribute__((unused)),
987+
unsigned char* message __attribute__((unused)))
988988
{
989989
struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
990990
data->totalprice= 0.0;
@@ -995,8 +995,8 @@ avgcost_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
995995

996996
void
997997
avgcost_add(UDF_INIT* initid, UDF_ARGS* args,
998-
char* is_null __attribute__((unused)),
999-
char* message __attribute__((unused)))
998+
unsigned char* is_null __attribute__((unused)),
999+
unsigned char* message __attribute__((unused)))
10001000
{
10011001
if (args->args[0] && args->args[1])
10021002
{
@@ -1043,7 +1043,7 @@ avgcost_add(UDF_INIT* initid, UDF_ARGS* args,
10431043

10441044
double
10451045
avgcost( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
1046-
char* is_null, char* error __attribute__((unused)))
1046+
unsigned char* is_null, unsigned char* error __attribute__((unused)))
10471047
{
10481048
struct avgcost_data* data = (struct avgcost_data*)initid->ptr;
10491049
if (!data->count || !data->totalquantity)
@@ -1121,7 +1121,8 @@ avg2_deinit( UDF_INIT* initid )
11211121

11221122
/* This is only for MySQL 4.0 compatibility */
11231123
void
1124-
avg2_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
1124+
avg2_reset(UDF_INIT* initid, UDF_ARGS* args, unsigned char* is_null,
1125+
unsigned char* message)
11251126
{
11261127
avgcost_clear(initid, is_null, message);
11271128
avgcost_add(initid, args, is_null, message);
@@ -1130,8 +1131,8 @@ avg2_reset(UDF_INIT* initid, UDF_ARGS* args, char* is_null, char* message)
11301131
/* This is needed to get things to work in MySQL 4.1.1 and above */
11311132

11321133
void
1133-
avg2_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
1134-
char* message __attribute__((unused)))
1134+
avg2_clear(UDF_INIT* initid, unsigned char* is_null __attribute__((unused)),
1135+
unsigned char* message __attribute__((unused)))
11351136
{
11361137
struct avg2_data* data = (struct avg2_data*)initid->ptr;
11371138
data->sum= 0.0;
@@ -1141,8 +1142,8 @@ avg2_clear(UDF_INIT* initid, char* is_null __attribute__((unused)),
11411142

11421143
void
11431144
avg2_add(UDF_INIT* initid, UDF_ARGS* args,
1144-
char* is_null __attribute__((unused)),
1145-
char* message __attribute__((unused)))
1145+
unsigned char* is_null __attribute__((unused)),
1146+
unsigned char* message __attribute__((unused)))
11461147
{
11471148
if (args->args[0] && args->args[1])
11481149
{
@@ -1158,8 +1159,8 @@ avg2_add(UDF_INIT* initid, UDF_ARGS* args,
11581159

11591160
void
11601161
avg2_remove(UDF_INIT* initid, UDF_ARGS* args,
1161-
char* is_null __attribute__((unused)),
1162-
char* message __attribute__((unused)))
1162+
unsigned char* is_null __attribute__((unused)),
1163+
unsigned char* message __attribute__((unused)))
11631164
{
11641165
if (args->args[0] && args->args[1])
11651166
{
@@ -1174,8 +1175,8 @@ avg2_remove(UDF_INIT* initid, UDF_ARGS* args,
11741175

11751176

11761177
double
1177-
avg2( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
1178-
char* is_null, char* error __attribute__((unused)))
1178+
avg2(UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
1179+
unsigned char* is_null, unsigned char* error __attribute__((unused)))
11791180
{
11801181
struct avg2_data* data = (struct avg2_data*)initid->ptr;
11811182
if (!data->count)
@@ -1191,8 +1192,8 @@ avg2( UDF_INIT* initid, UDF_ARGS* args __attribute__((unused)),
11911192
my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
11921193
char *message);
11931194
char *myfunc_argument_name(UDF_INIT *initid, UDF_ARGS *args, char *result,
1194-
unsigned long *length, char *null_value,
1195-
char *error);
1195+
unsigned long *length, unsigned char *null_value,
1196+
unsigned char *error);
11961197

11971198
my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
11981199
char *message)
@@ -1210,8 +1211,8 @@ my_bool myfunc_argument_name_init(UDF_INIT *initid, UDF_ARGS *args,
12101211

12111212
char *myfunc_argument_name(UDF_INIT *initid __attribute__((unused)),
12121213
UDF_ARGS *args, char *result,
1213-
unsigned long *length, char *null_value,
1214-
char *error __attribute__((unused)))
1214+
unsigned long *length, unsigned char *null_value,
1215+
unsigned char *error __attribute__((unused)))
12151216
{
12161217
if (!args->attributes[0])
12171218
{
@@ -1241,7 +1242,7 @@ my_bool is_const_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
12411242

12421243
char * is_const(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
12431244
char *result, unsigned long *length,
1244-
char *is_null, char *error __attribute__((unused)))
1245+
unsigned char *is_null,unsigned char *error __attribute__((unused)))
12451246
{
12461247
if (initid->ptr != 0) {
12471248
sprintf(result, "const");
@@ -1280,7 +1281,7 @@ my_bool check_const_len_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
12801281

12811282
char * check_const_len(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)),
12821283
char *result, unsigned long *length,
1283-
char *is_null, char *error __attribute__((unused)))
1284+
unsigned char *is_null,unsigned char *error __attribute__((unused)))
12841285
{
12851286
strmov(result, initid->ptr);
12861287
*length= (uint) strlen(result);

0 commit comments

Comments
 (0)