2018-03-04 2:46 GMT+01:00 Tomas Vondra <tomas.von...@2ndquadrant.com>:
> On 03/02/2018 10:30 PM, Pavel Stehule wrote: > > Hi > > > > 2018-03-01 21:14 GMT+01:00 David Steele <da...@pgmasters.net > > <mailto:da...@pgmasters.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 >