diff options
author | unknown <cmiller@zippy.cornsilk.net> | 2007-08-06 08:17:49 -0400 |
---|---|---|
committer | unknown <cmiller@zippy.cornsilk.net> | 2007-08-06 08:17:49 -0400 |
commit | a97875e55271324588448139e34e0db928213f15 (patch) | |
tree | 8b0bba44f81b0db018c393fd7f53740481785f4e /sql | |
parent | 39bbd9833f3c35c3fefe15ebad419a6b02ef4d6e (diff) | |
parent | ccb32a59465eb502d6e292e5f074dcade1ec7fa8 (diff) | |
download | mariadb-git-a97875e55271324588448139e34e0db928213f15.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.1-maint
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_func.cc | 3 | ||||
-rw-r--r-- | sql/udf_example.c | 35 |
2 files changed, 37 insertions, 1 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc index 9a26169ad30..4492b7519aa 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -2916,7 +2916,8 @@ udf_handler::fix_fields(THD *thd, Item_result_field *func, String *res= arguments[i]->val_str(&buffers[i]); if (arguments[i]->null_value) continue; - f_args.args[i]= (char*) res->ptr(); + f_args.args[i]= (char*) res->c_ptr(); + f_args.lengths[i]= res->length(); break; } case INT_RESULT: diff --git a/sql/udf_example.c b/sql/udf_example.c index b603464568e..5165a577555 100644 --- a/sql/udf_example.c +++ b/sql/udf_example.c @@ -1106,4 +1106,39 @@ char * is_const(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)), } +my_bool check_const_len_init(UDF_INIT *initid, UDF_ARGS *args, char *message) +{ + if (args->arg_count != 1) + { + strmov(message, "IS_CONST accepts only one argument"); + return 1; + } + if (args->args[0] == 0) + { + initid->ptr= "Not constant"; + } + else if(strlen(args->args[0]) == args->lengths[0]) + { + initid->ptr= "Correct length"; + } + else + { + initid->ptr= "Wrong length"; + } + initid->max_length = 100; + return 0; +} + +char * check_const_len(UDF_INIT *initid, UDF_ARGS *args __attribute__((unused)), + char *result, unsigned long *length, + char *is_null, char *error __attribute__((unused))) +{ + strmov(result, initid->ptr); + *length= strlen(result); + *is_null= 0; + return result; +} + + + #endif /* HAVE_DLOPEN */ |