Re: PL/pgSQL 2

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Joel Jacobson <joel(at)trustly(dot)com>, Josh Berkus <josh(at)agliodbs(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PL/pgSQL 2
Date: 2014-09-03 15:12:36
Message-ID: CAFj8pRAgpr_ZX49mqMMtpj-EgdQNWxcPnqMb_stMiOtdmmizeA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2014-09-03 17:05 GMT+02:00 Bruce Momjian <bruce(at)momjian(dot)us>:

> On Wed, Sep 3, 2014 at 07:54:09AM +0200, Pavel Stehule wrote:
> > I am not against to improve a PL/pgSQL. And I repeat, what can be done
> and can
> > be done early:
> >
> > a) ASSERT clause -- with some other modification to allow better static
> analyze
> > of DML statements, and enforces checks in runtime.
> >
> > b) #option or PRAGMA clause with GUC with function scope that enforce
> check on
> > processed rows after any DML statement
>

these two yes

> >
> > c) maybe introduction automatic variable ROW_COUNT as shortcut for GET
> > DIAGNOSTICS rc = ROW_COUNT
>

this is my fresh

some smarty designed asserts can be used for static analyses too.

I am able to analyze plan of DML statements, and I can raise warning if
expected rows is not 1 or if there are not filter over unique index

some

UPDATE ... WHERE id = 1;
ASSERT(PROCESSED_ROW_COUNT = 1);

And I can recheck in plpgsql_check, and it can enforce fast check in runtime

Pavel

>
> All these ideas are being captured somewhere, right? Where?
>
> --
> Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
> EnterpriseDB http://enterprisedb.com
>
> + Everyone has their own god. +
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2014-09-03 15:21:04 Re: RLS Design
Previous Message Marko Tiikkaja 2014-09-03 15:09:19 Re: PL/pgSQL 2