Re: clean up docs for v12 - Mailing list pgsql-hackers

From Tom Lane
Subject Re: clean up docs for v12
Date
Msg-id 20637.1555957068@sss.pgh.pa.us
Whole thread Raw
In response to Re: clean up docs for v12  (Andres Freund <andres@anarazel.de>)
Responses Re: clean up docs for v12
Re: clean up docs for v12
List pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2019-04-22 13:27:17 -0400, Tom Lane wrote:
>> I wonder
>> also if it wouldn't be smart to explicitly check that the "guaranteeing"
>> column is not attisdropped.

> Yea, that probably would be smart.  I don't think there's an active
> problem, because we remove NOT NULL when deleting an attribute, but it
> seems good to be doubly sure / explain why that's safe:
>         /* Remove any NOT NULL constraint the column may have */
>         attStruct->attnotnull = false;
> I'm a bit unsure whether to make it an assert, elog(ERROR) or just not
> assume column presence?

I'd just make the code look like

        /*
         * If it's NOT NULL then it must be present in every tuple,
         * unless there's a "missing" entry that could provide a non-null
         * value for it.  Out of paranoia, also check !attisdropped.
         */
        if (att->attnotnull &&
            !att->atthasmissing &&
            !att->attisdropped)
            guaranteed_column_number = attnum;

I don't think the extra check is so expensive as to be worth obsessing
over.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: pg_dump is broken for partition tablespaces
Next
From: Andres Freund
Date:
Subject: Re: pg_dump is broken for partition tablespaces