Re: POC: PLpgSQL FOREACH IN JSON ARRAY - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: POC: PLpgSQL FOREACH IN JSON ARRAY
Date
Msg-id CAFj8pRA-GKmYig4A23mUyCxEquYPK_t2acg0s_KHWhadh_w5MA@mail.gmail.com
Whole thread
In response to Re: POC: PLpgSQL FOREACH IN JSON ARRAY  (Jim Jones <jim.jones@uni-muenster.de>)
Responses Re: POC: PLpgSQL FOREACH IN JSON ARRAY
Re: POC: PLpgSQL FOREACH IN JSON ARRAY
Re: POC: PLpgSQL FOREACH IN JSON ARRAY
List pgsql-hackers
Hi

st 4. 3. 2026 v 12:35 odesílatel Jim Jones <jim.jones@uni-muenster.de> napsal:
I reviewed the code I have nothing to add at this point. LGTM!

The tests touch a lot of different scenarios, but for the sake of
completeness I'd like to suggest adding these three cases:

-- EXIT and CONTINUE can be triggered by LOOP_RC_PROCESSING
DO $$
DECLARE x int;
BEGIN
  FOREACH x IN JSON ARRAY '[1,2,3,4,5]'
  LOOP
    EXIT WHEN x = 3;
    RAISE NOTICE '%', x;
  END LOOP;
END;
$$;

DO $$
DECLARE x int;
BEGIN
  FOREACH x IN JSON ARRAY '[1,2,3,4,5]'
  LOOP
    CONTINUE WHEN x % 2 = 0;
    RAISE NOTICE '%', x;
  END LOOP;
END;
$$;


-- Variable instead of string
DO $$
DECLARE x int; arr jsonb;
BEGIN
  SELECT jsonb_agg(i) INTO arr
  FROM generate_series(1,3) i;

  FOREACH x IN JSON ARRAY arr
  LOOP
    RAISE NOTICE '%', x;
  END LOOP;
END;
$$;


I merged these examples to tests

Thank you for review

Regards

Pavel
 

Thanks!

Best, Jim
Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Fix errno handling in popen_check() to avoid false error reports
Next
From: Maciek Sakrejda
Date:
Subject: Re: V18 change on EXPLAIN ANALYZE