Hello,

> 
> extern "C" __declspec(dllexport) char *echo(UDF_INIT *initid, UDF_ARGS *args, char 
> *is_null, char *error)
> {
>   return args->args[0];
> }
> 

args->args[0] is not null terminated. This is how I've been handling
this. please let me know if there is a better approach (i.e. whether it
is possible, for example, to terminate args->args[0] 'in place', my
guess is not)

char buff[255];
int arglen = args->lengths[0] < 255 ? args->lengths[0] : 255;
strncpy(buff,args->args[0],arglen);
buff[arglen] = 0;

etc.

of course, you can't return a pointer to buff in this case. if you want
to return the argument you will have to allocate memory in _init and
pass it along in initid->ptr which then could used instead of buff etc.

cheers,



-- 
Murad Nayal M.D. Ph.D.
Department of Biochemistry and Molecular Biophysics
College of Physicians and Surgeons of Columbia University
630 West 168th Street. New York, NY 10032
Tel: 212-305-6884       Fax: 212-305-6926

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to