Matthew Wakeling <matthew@xxxxxxxxxxx> writes: > CREATE OR REPLACE FUNCTION overlap_gene_primer() RETURNS SETOF RECORD AS $$ > DECLARE > left location; > retval RECORD; > BEGIN > DECLARE left_cursor NO SCROLL CURSOR FOR SELECT location FROM location, gene WHERE location.id = gene.id ORDER BY objectid, start, end; > left = FETCH left_cursor; > END; > $$ LANGUAGE plpgsql; Well, the DECLARE for the cursor should go in the DECLARE section, and the syntax for the FETCH should be FETCH cursorname INTO recordvariablename; and I'm too lazy to check right now but I think you might be missing an OPEN for the cursor. regards, tom lane -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance