On Wed, Feb 28, 2018 at 05:37:11PM -0500, Peter Eisentraut wrote:
> On 2/28/18 15:45, Tom Lane wrote:
>> I have reviewed this patch and attach an updated version below.
>> I've rebased it up to today, fixed a few minor errors, and adopted
>> most of Michael's suggestions. Also, since I remain desperately
>> unhappy with putting zeroes into prorettype, I changed it to not
>> do that ;-) ... now procedures have VOIDOID as their prorettype,
>> and it will be substantially less painful to allow them to return
>> some other scalar result in future, should we wish to. I believe
>> I've found all the places that were relying on prorettype == 0 as
>> a substitute for prokind == 'p'.
>
> I have just posted "INOUT parameters in procedures", which contains some
> of those same changes. So I think we're on the same page. I will work
> on consolidating this.
Thanks Peter.
I have read the patch set that Tom has posted here and hunted for other
inconsistencies. It seems to me that you have spotted everything.
The changes in ProcedureCreate() are nice.
I was wondering as well if it would be worth checking the contents of
pg_proc with prorettype = 0 in the regression tests to always make sure
that this never happens... Until I saw that opr_sanity.sql was actually
doing already that so procedures actually are breaking that check on
HEAD.
--
Michael