On Fri, 2024-02-02 at 02:04 -0800, Nikolay Samokhvalov wrote:
> On Thu, Feb 1, 2024 at 04:42 Laurenz Albe <laurenz.a...@cybertec.at> wrote:
> > Today, the only feasible solution is not to create more than 64 
> > subtransactions
> > (savepoints or PL/pgSQL EXCEPTION clauses) per transaction.
> 
> I think 64+ nesting level is quite rare

It doesn't have to be 64 *nested* subtransactions.  This is enough:

CREATE TABLE tab (x integer);

DO
$$DECLARE
   i integer;
BEGIN
   FOR i IN 1..70 LOOP
      BEGIN
         INSERT INTO tab VALUES (i);
      EXCEPTION
         WHEN unique_violation THEN
            NULL; -- ignore
      END;
   END LOOP;
END;$$;

Yours,
Laurenz Albe


Reply via email to