Search Postgresql Archives

Re: cursor empty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/08/2018 05:39 AM, Philipp Kraus wrote:
Hello,

I have got a function with this definition:

CREATE OR REPLACE FUNCTION vectorize(refcursor)
     RETURNS SETOF refcursor
     LANGUAGE 'plpgsql'
     COST 100
     STABLE
     ROWS 1000
AS $BODY$

begin
	perform pivottable(
		'_vector',
		'select * from viewdata',
		array['ideate', 'name', 'description', 'latitude', 'longitude'],
		array['parametername'],
		array['parametervalue::text', 'parametervaluetext']
	);	
	open $1 scroll for select * from _vector;
	return next $1;
end

$BODY$;

The perform call creates a dynamic column pivot table, if I run manually

select pivottable(
	'_vector',
	'select * from viewdata',
	array['ideate', 'name', 'description', 'latitude', 'longitude'],
	array['parametername'],
	array['parametervalue::text', 'parametervaluetext']
);	
select * from _vector;

I get all the data in the output, so everything is fine.

My goal is now to encapsulate the two lines into a function, so I define
a stable function and based on the dynamic column set a cursor. I get in
pgadmin the column names back, but the rows are empty if I run:

select * from vectorize('myvec');
fetch all from myvec;

Can you explain me, which part is wrong?

I am going to say:

perform pivottable( ...

https://www.postgresql.org/docs/10/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-NORESULT

"Sometimes it is useful to evaluate an expression or SELECT query but discard the result, for example when calling a function that has side-effects but no useful result value. To do this in PL/pgSQL, use the PERFORM statement:

PERFORM query;

This executes query and discards the result.  ..."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^



Thanks

Phil






--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux