Thanks Hans,

Yes, SQLUDR_CHAR can support input/output values as TIMESTAMP. This solves my 
problem.
So Trafodion UDF can support TIMESTAMP as both input parameter and output , 
this is great!

Thanks,
Ming

发件人: Hans Zeller [mailto:hans.zel...@esgyn.com]
发送时间: 2016年3月24日 1:34
收件人: user@trafodion.incubator.apache.org
主题: Re: How to implement a TO_DATE UDF in Trafodion

Hi Ming, I think the C data type corresponding to datetime values is 
SQLUDR_CHAR. You create a string that looks like "2016-03-23 01:23:45" (this 
example is for a TIMESTAMP(0)) and return that. Trafodion will convert it to 
the datetime type.

Sorry, I have not tested it but hope it will work.

Hans

On Thu, Mar 17, 2016 at 8:43 PM, Liu, Ming (Ming) 
<ming....@esgyn.cn<mailto:ming....@esgyn.cn>> wrote:
Hi, all,

I just learned the support of TO_DATE will be avialbe in Trafodion in R2.0 from 
Anoop, that is great! At present, due to the urgent requirement of current 
migration project, we cannot wait, so I want to write a UDF to do the TO_DATE.
When I try to write it, I found it seems the UDF can only return simple data 
type like INT, VARCHAR, I cannot find the definition of returning a 
TIMESTAMP/DATE, could anyone help here?

In sqludr.h , I cannot find corresponding data type for DATE/TIMESTAM.
So I don’t know how to define the UDF’s entry function, example as below:

SQLUDR_LIBFUNC SQLUDR_INT32 to_date(SQLUDR_VC_STRUCT *srcStr,    //input string
                                SQLUDR_CHAR *pattern,     //date format
                                ??? *out1,     //the output
                                SQLUDR_INT16 *inInd1,
                                SQLUDR_INT16 *inInd2,
                                SQLUDR_INT16 *outInd1,
                                SQLUDR_TRAIL_ARGS)

How can I specify the out1 type to be a DATE or TIMESTAMP? I marked with ‘???’ .

Thanks in advance,
Ming

Reply via email to