Re: [HACKERS] plpgsql - additional extra checks

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
Cc: David Steele <david(at)pgmasters(dot)net>, Stephen Frost <sfrost(at)snowman(dot)net>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Daniel Gustafsson <daniel(at)yesql(dot)se>, Marko Tiikkaja <marko(at)joh(dot)to>, Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [HACKERS] plpgsql - additional extra checks
Date: 2018-03-04 12:37:39
Message-ID: CAFj8pRBkoW9o4RG1jbXz2LntoULDq3EFhTJxkfPjuECU2Mi2PQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2018-03-04 2:46 GMT+01:00 Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>:

> On 03/02/2018 10:30 PM, Pavel Stehule wrote:
> > Hi
> >
> > 2018-03-01 21:14 GMT+01:00 David Steele <david(at)pgmasters(dot)net
> > <mailto:david(at)pgmasters(dot)net>>:
> >
> > Hi Pavel,
> >
> > On 1/7/18 3:31 AM, Pavel Stehule wrote:
> > >
> > > There, now it's in the correct Waiting for Author state. :)
> > >
> > > thank you for comments. All should be fixed in attached patch
> >
> > This patch no longer applies (and the conflicts do not look trivial).
> > Can you provide a rebased patch?
> >
> > $ git apply -3 ../other/plpgsql-extra-check-180107.patch
> > error: patch failed: src/pl/plpgsql/src/pl_exec.c:5944
> > Falling back to three-way merge...
> > Applied patch to 'src/pl/plpgsql/src/pl_exec.c' with conflicts.
> > U src/pl/plpgsql/src/pl_exec.c
> >
> > Marked as Waiting on Author.
> >
> >
> > I am sending updated code. It reflects Tom's changes - now, the rec is
> > used as row type too, so the checks must be on two places. With this
> > update is related one change. When result is empty, then the extra
> > checks doesn't work - PLpgSQL runtime doesn't pass necessary tupledesc.
> > But usually, when result is empty, then there are not problems with
> > missing values, because every value is NULL.
> >
>
> I've looked at this patch today, and in general it seems in fairly good
> shape - I don't really see any major issues in it that would mean it
> can't be promoted to RFC soon.
>
> A couple of comments though:
>
> 1) I think the docs are OK, but there are a couple of keywords that
> should be wrapped in <literal> or <command> tags, otherwise the
> formatting will be incorrect.
>
> I've done that in the attached patch, as it's easier than listing which
> keywords/where etc. I haven't wrapped the lines, though, to make it
> easier to see the difference in meld or similar tools.
>
>
> 2) The does does a bunch of checks of log level, in the form
>
> if (too_many_rows_level >= WARNING)
>
> which is perhaps a bit too verbose, because the default value of that
> variable is 0. So
>
> if (too_many_rows_level)
>
> would be enough, and it makes the checks a bit shorter. Again, this is
> done in the attached patch.
>
>
> 3) There is a couple of typos in the comments, like "stric_" instead of
> "strict_" and so on. Again, fixed in the patch, along with slightly
> rewording a bunch of comments like
>
> /* no source for destination column */
>
> instead of
>
> /* there are no data */
>
> and so on.
>
>
> 4) I have also reworded the text of the two checks. Firstly, I've replaced
>
> query returned more than one row
>
> with
>
> SELECT INTO query returned more than one row
>
> which I think provides additional useful context to the user.
>
> I've also replaced
>
> Number of evaluated fields does not match expected.
>
> with
>
> Number of source and target fields in assignment does not match.
>
> because the original text seems a bit cumbersome to me. It might be
> useful to also include the expected/actual number of fields, to provide
> a bit more context. That's valuable particularly for WARNING messages,
> which do not include information about line numbers (or even function
> name). So anything that helps to locate the query (of possibly many in
> that function) is valuable.
>

Tomas, thank you for correction.

Regards

Pavel

>
>
> Stephen: I see you're listed as reviewer on this patch - do you see an
> issue blocking this patch from getting RFC? I see you did a review in
> January, but Pavel seems to have resolved the issues you identified.
>
>
> regards
>
> --
> Tomas Vondra http://www.2ndQuadrant.com
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Emre Hasegeli 2018-03-04 13:12:49 Re: constraint exclusion and nulls in IN (..) clause
Previous Message Fabien COELHO 2018-03-04 10:38:03 Re: 2018-03 Commitfest Summary (Andres #1)