Thread: [COMMITTERS] pgsql: Fix collprovider of predefined collations

[COMMITTERS] pgsql: Fix collprovider of predefined collations

From
Peter Eisentraut
Date:
Fix collprovider of predefined collations

An earlier version of the patch had collprovider as an integer and thus
set these to 0, but the correct setting is now null.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/ec7129b7812ce276520f749d0946875663c34093

Modified Files
--------------
src/include/catalog/catversion.h   | 2 +-
src/include/catalog/pg_collation.h | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)


Re: [COMMITTERS] pgsql: Fix collprovider of predefined collations

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> Fix collprovider of predefined collations
> An earlier version of the patch had collprovider as an integer and thus
> set these to 0, but the correct setting is now null.

Surely this is not right.  Neither collprovider nor the other fixed-length
fields following it in pg_collation are marked nullable, and most of them
are accessed as struct fields so that's not an easy thing to change.

The fact that the buildfarm didn't blow up is a bit odd.  Maybe we're
missing some enforcement somewhere?

            regards, tom lane


Re: [COMMITTERS] pgsql: Fix collprovider of predefined collations

From
Tom Lane
Date:
I wrote:
> Peter Eisentraut <peter_e@gmx.net> writes:
>> Fix collprovider of predefined collations
>> An earlier version of the patch had collprovider as an integer and thus
>> set these to 0, but the correct setting is now null.

> Surely this is not right.  Neither collprovider nor the other fixed-length
> fields following it in pg_collation are marked nullable, and most of them
> are accessed as struct fields so that's not an easy thing to change.

Ah, on looking closer, I see what the patch actually changes to null is
collversion not collprovider.  So the patch is ok, the commit message
not so much.

> The fact that the buildfarm didn't blow up is a bit odd.  Maybe we're
> missing some enforcement somewhere?

As penance for the false alarm, I looked into that angle and indeed we
didn't have any cross-check against storing NULL from the BKI data into
a putatively not null column.  We do now.

            regards, tom lane


Re: [COMMITTERS] pgsql: Fix collprovider of predefined collations

From
Peter Eisentraut
Date:
On 6/13/17 10:57, Tom Lane wrote:
> I wrote:
>> Peter Eisentraut <peter_e@gmx.net> writes:
>>> Fix collprovider of predefined collations
>>> An earlier version of the patch had collprovider as an integer and thus
>>> set these to 0, but the correct setting is now null.
>
>> Surely this is not right.  Neither collprovider nor the other fixed-length
>> fields following it in pg_collation are marked nullable, and most of them
>> are accessed as struct fields so that's not an easy thing to change.
>
> Ah, on looking closer, I see what the patch actually changes to null is
> collversion not collprovider.  So the patch is ok, the commit message
> not so much.

yup :(

>> The fact that the buildfarm didn't blow up is a bit odd.  Maybe we're
>> missing some enforcement somewhere?
>
> As penance for the false alarm, I looked into that angle and indeed we
> didn't have any cross-check against storing NULL from the BKI data into
> a putatively not null column.  We do now.

great

--
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services