Thread: Bug in PL/PgSQL "SELECT .. INTO" statement parser

Bug in PL/PgSQL "SELECT .. INTO" statement parser

From
Oleg Serov
Date:
Here is an example:

CREATE TABLE test2 (
    id BIGINT,
    chunk_id BIGINT
);
CREATE TABLE test1 (
    id BIGINT
);

CREATE OR REPLACE FUNCTION "bug" () RETURNS pg_catalog.void AS
$body$
DECLARE
    row_test1 test1%rowtype;
    row_test2 test2%rowtype;
BEGIN
    SELECT test1, chunk_ad
        FROM test1 JOIN test2 ON(chunk.id =3D test2.chunk_id)
        LIMIT 1
       INTO row_test1, row_test2;

END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY DEFINER;

Will throw error:
ERROR:  LIMIT #,# syntax is not supported
HINT:  Use separate LIMIT and OFFSET clauses.
QUERY:  SELECT test1, chunk_ad FROM test1 JOIN test2 ON(chunk.id =3D
test2.chunk_id) LIMIT 1, 0,  $1
CONTEXT:  SQL statement in PL/PgSQL function "bug" near line 8

********** =EF=DB=C9=C2=CB=C1 **********

ERROR: LIMIT #,# syntax is not supported
SQL state: 42601
=F0=CF=C4=D3=CB=C1=DA=CB=C1:Use separate LIMIT and OFFSET clauses.
=EB=CF=CE=D4=C5=CB=D3=D4:SQL statement in PL/PgSQL function "bug" near line=
 8