Re: Internal function call from C-language function - Mailing list pgsql-general

From Zoltan Boszormenyi
Subject Re: Internal function call from C-language function
Date
Msg-id 45780BB6.8060805@dunaweb.hu
Whole thread Raw
In response to Re: Internal function call from C-language function  (Martijn van Oosterhout <kleptog@svana.org>)
Responses Re: Internal function call from C-language function  (Martijn van Oosterhout <kleptog@svana.org>)
List pgsql-general
Martijn van Oosterhout írta:
> On Thu, Dec 07, 2006 at 12:55:47PM +0100, Zoltan Boszormenyi wrote:
>
>> However, I have another problem. I have this in the code:
>>
>
> <snip>
>
>
>>        yeardatum = CStringGetDatum("year");
>>        elog(NOTICE, "CStringGetDatum() 1 OK");
>>        returndatum = DirectFunctionCall2(timestamp_part, yeardatum,
>> timest);
>>
>
> You're passing a cstring as first argument, whereas I'm fairly sure you
> should be passing text. When calling from C the're no argument
> checking. I think what you're looking for is:
>
>   yeardatum = text_in("year");
>
> Or something like that.
>
> Hope this helps,
>

text_in() doesn't exists, it's textin() but I have to call it through
DirectFunctionCall1(), like this:

yeardatum = DirectFunctionCall1(textin, CStringGetDatum("year"));

However, the session crashes on the subsequent

returndatum = DirectFunctionCall2(timestamp_part, yeardatum, timest);

Best regards,

Zoltán


pgsql-general by date:

Previous
From: Ragnar
Date:
Subject: Re: Online index builds
Next
From: Martijn van Oosterhout
Date:
Subject: Re: Internal function call from C-language function