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? 
Thanks

Phil



Reply via email to