Re: different results from plpgsql functions related to last changes in master
2018-02-18 17:48 GMT+01:00 Tom Lane: > Pavel Stehule writes: > > I did update of plpgsql_check and I see, so some functions returns > > different result than on older posgresql. Probably this is wanted behave, > > but It should be mentioned as partial compatibility break, because some > > regress test can be broken too. > > This is mentioned in the relevant commit message (4b93f5799): > > ... A lesser, but still real, annoyance is that ROW format cannot > represent a true NULL composite value, only a row of per-field NULL > values, which is not exactly the same thing. > > In the case you're showing here, a true NULL got changed into ROW(NULL) > by the old code, but that no longer happens. > I understand, and I have not any problem with this behave. Just I am expecting so lot of people will be surprised. Regards Pavel > > regards, tom lane >
Re: different results from plpgsql functions related to last changes in master
Pavel Stehulewrites: > I did update of plpgsql_check and I see, so some functions returns > different result than on older posgresql. Probably this is wanted behave, > but It should be mentioned as partial compatibility break, because some > regress test can be broken too. This is mentioned in the relevant commit message (4b93f5799): ... A lesser, but still real, annoyance is that ROW format cannot represent a true NULL composite value, only a row of per-field NULL values, which is not exactly the same thing. In the case you're showing here, a true NULL got changed into ROW(NULL) by the old code, but that no longer happens. regards, tom lane
different results from plpgsql functions related to last changes in master
Hi I did update of plpgsql_check and I see, so some functions returns different result than on older posgresql. Probably this is wanted behave, but It should be mentioned as partial compatibility break, because some regress test can be broken too. create table t(i int); create function test_t(OUT t) returns t AS $$ begin $1 := null; end; $$ language plpgsql; select test_t(); result on PostgreSQL11 is null, on older is empty record "()" Regards Pavel