Обсуждение: problem with calling c functions
I'll just show an example:
I have:
int myfunc (text *a, text* b)
{
return(12);
}
in psql:
test=# CREATE FUNCTION myfunc(text, text)
test-# RETURNS integer
test-# AS
'/home/hchapman/src/nms/wwp_database/c-functions/call_dynamic.so'
test-# LANGUAGE 'C';
CREATE
test=# SELECT myfunc('aa','ss') as result;
result
--------
12
(1 row)
test=# SELECT myfunc('aa',NULL) as result;
result
--------
(1 row)
test=#
oops, got a little trigger-happy with the send button.
Question: Why isn't 12 printed after the second SELECT statement?
Thanks,
R.
On Thu, 21 Sep 2000, Richard Harvey Chapman wrote:
> I'll just show an example:
>
> I have:
>
> int myfunc (text *a, text* b)
> {
> return(12);
> }
>
> in psql:
>
> test=# CREATE FUNCTION myfunc(text, text)
> test-# RETURNS integer
> test-# AS
> '/home/hchapman/src/nms/wwp_database/c-functions/call_dynamic.so'
> test-# LANGUAGE 'C';
> CREATE
> test=# SELECT myfunc('aa','ss') as result;
> result
> --------
> 12
> (1 row)
>
> test=# SELECT myfunc('aa',NULL) as result;
> result
> --------
>
> (1 row)
>
> test=#
>
Richard Harvey Chapman <hchapman@3gfp.com> writes:
> Question: Why isn't 12 printed after the second SELECT statement?
NULL arguments/results for user functions are a longstanding problem
(check the list archives). This is finally fixed in current sources
for 7.1, but there's no good workaround in existing releases.
regards, tom lane