RETURN QUERY generates error
От | Yura Gal |
---|---|
Тема | RETURN QUERY generates error |
Дата | |
Msg-id | 3b6c69d80803052345g31af3b74k6b8878c65197d621@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: RETURN QUERY generates error
Re: RETURN QUERY generates error |
Список | pgsql-sql |
Here is my function: CREATE OR REPLACE FUNCTION "hg18"."get_genomeseq" (_chr varchar, _byblocks boolean, _starts integer [], _ends integer []) RETURNS SETOF text AS $body$ DECLARE _start integer; _end integer; _sequence text[]; _seq50 RECORD; _seq text; _q text; BEGIN FOR i IN 1..array_upper(_starts, 1) LOOP _start := _starts[i]; _end := _ends[i]; _q := 'SELECTstart, sequence ' || 'FROM hg18.genome ' || $$WHERE chr = 'chr' || '$$ || _chr::varchar || $$' $$ || 'AND start >= floor(' || _start || '/50)*50 ' || 'AND start < ' || _end;--RAISE NOTICE 'Query is %', _q; FOR_seq50 IN EXECUTE _q LOOP IF _seq50.start < _start THEN _sequence[i] := substring(_seq50.sequence, _start%_seq50.start); ELSEIF _seq50.start >= _start AND _seq50.start + 49 <= _end THEN _sequence[i] := _sequence[i]|| _seq50.sequence; ELSE _sequence[i] := _sequence[i] || substring(_seq50.sequence,1, _end%_seq50.start); END IF; END LOOP; END LOOP; IF _byblocks IS TRUE THEN RETURN QUERY SELECT regexp_split_to_table(array_to_string(_sequence, ','), E','); ELSE RETURN QUERY SELECT array_to_string(_sequence, '');END IF; RETURN; END; $body$ LANGUAGE 'plpgsql' IMMUTABLE CALLED ON NULL INPUT SECURITY INVOKER; all is fine until the last IF. Both RETURN QUERY blocks generate error: 'syntax error at or near SELECT ...' I feel that something wrong with casting _sequence var but I can't figure out the exact point.
В списке pgsql-sql по дате отправления: