summaryrefslogtreecommitdiff
path: root/sql/sql_udf.h
diff options
context:
space:
mode:
authorunknown <monty@narttu.mysql.fi>2003-08-27 22:30:50 +0300
committerunknown <monty@narttu.mysql.fi>2003-08-27 22:30:50 +0300
commit0ee6f7fde0c5737b2a0b703b1c2755186d7d319b (patch)
tree20979ee2d8e2b0c2cb5d979c17fcb2a620ae17a1 /sql/sql_udf.h
parent91dc31d38334cddc0b47c9ac0c0be338fc8cfd20 (diff)
downloadmariadb-git-0ee6f7fde0c5737b2a0b703b1c2755186d7d319b.tar.gz
hanged UDF interface to use clear() instead of reset()
BUILD/FINISH.sh: Add just_clean option (for cleanup script) scripts/mysql_fix_privilege_tables.sql: Added 'USE mysql' for easer use on windows sql/item_sum.cc: Changed UDF interface to use clear() instead of reset() sql/item_sum.h: Changed UDF interface to use clear() instead of reset() sql/slave.cc: Fixed checking of eof for slave/master protocol. (Bug #887) sql/sql_udf.cc: Changed UDF interface to use clear() instead of reset() sql/sql_udf.h: Changed UDF interface to use clear() instead of reset() sql/sql_yacc.yy: ERRORS and WARNINGS should not be reserved words sql/udf_example.cc: Changed UDF interface to use clear() instead of reset()
Diffstat (limited to 'sql/sql_udf.h')
-rw-r--r--sql/sql_udf.h25
1 files changed, 8 insertions, 17 deletions
diff --git a/sql/sql_udf.h b/sql/sql_udf.h
index 29a351ac52f..7b10b80f148 100644
--- a/sql/sql_udf.h
+++ b/sql/sql_udf.h
@@ -33,7 +33,7 @@ typedef struct st_udf_func
void *func;
void *func_init;
void *func_deinit;
- void *func_reset;
+ void *func_clear;
void *func_add;
ulong usage_count;
} udf_func;
@@ -49,7 +49,7 @@ class udf_handler :public Sql_alloc
UDF_ARGS f_args;
UDF_INIT initid;
char *num_buffer;
- uchar error;
+ uchar error, is_null;
bool initialized;
Item **args;
@@ -57,7 +57,7 @@ class udf_handler :public Sql_alloc
table_map used_tables_cache;
bool const_item_cache;
udf_handler(udf_func *udf_arg) :u_d(udf_arg), buffers(0), error(0),
- initialized(0)
+ is_null(0), initialized(0)
{}
~udf_handler();
const char *name() const { return u_d ? u_d->name.str : "?"; }
@@ -73,7 +73,6 @@ class udf_handler :public Sql_alloc
*null_value=1;
return 0.0;
}
- uchar is_null=0;
double (*func)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *)=
(double (*)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *)) u_d->func;
double tmp=func(&initid, &f_args, &is_null, &error);
@@ -92,7 +91,6 @@ class udf_handler :public Sql_alloc
*null_value=1;
return LL(0);
}
- uchar is_null=0;
longlong (*func)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *)=
(longlong (*)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *)) u_d->func;
longlong tmp=func(&initid, &f_args, &is_null, &error);
@@ -104,22 +102,15 @@ class udf_handler :public Sql_alloc
*null_value=0;
return tmp;
}
- void reset(my_bool *null_value)
+ void clear()
{
- uchar is_null=0;
- if (get_arguments())
- {
- *null_value=1;
- return;
- }
- void (*func)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *)=
- (void (*)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *)) u_d->func_reset;
- func(&initid, &f_args, &is_null, &error);
- *null_value= (my_bool) (is_null || error);
+ is_null= 0;
+ void (*func)(UDF_INIT *, uchar *, uchar *)=
+ (void (*)(UDF_INIT *, uchar *, uchar *)) u_d->func_clear;
+ func(&initid, &is_null, &error);
}
void add(my_bool *null_value)
{
- uchar is_null=0;
if (get_arguments())
{
*null_value=1;