improper call to spi_printtup ???

Поиск
Список
Период
Сортировка
От Darko Prenosil
Тема improper call to spi_printtup ???
Дата
Msg-id 200406281954.21275.darko.prenosil@finteh.hr
обсуждение исходный текст
Ответы Re: improper call to spi_printtup ???  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
I have set returning function written in 'c', declared as:

CREATE OR REPLACE FUNCTION check_view (text,text) RETURNS setof pg_attribute AS
'/usr/local/pgsql/lib/libplpq.so','check_view'LANGUAGE 'c' WITH (isstrict);
 

When I call this function from psql :SELECT attrelid,attnum FROM check_view('pg_catalog','pg_tables') ;
I have: attrelid | attnum----------+--------    16595 |      1     1259 |      1        0 |      0     1259 |     11
1259 |     22        0 |      0
 
That is expected result, or in other words it works fine.

Now when I try to use 'check_view0 function in some other pl/psql function:
CREATE OR REPLACE FUNCTION testfunc() RETURNS bool AS 'BEGIN    SELECT attrelid,attnum FROM
check_view(''pg_catalog'',''pg_tables'');    RETURN FALSE;END;' LANGUAGE 'plpgsql';
 
SELECT testfunc() ;

I have:(-403)ERROR:  improper call to spi_printtupCONTEXT:  PL/pgSQL function "testfunc" line 2 at SQL statement

Anyone knows what I'm doing wrong ? Is there some special issue when writing 
functions for pl/psql that I'm not aware ?

Thanks in advance !


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Gavin Sherry
Дата:
Сообщение: Re: Tablespace permissions issue
Следующее
От: Robert Treat
Дата:
Сообщение: Re: lock timeout patch