Re: set not null column using existing constraint

From: Marco Piovan <mpiovan(at)workwave(dot)com>
To: Rui DeSousa <rui(dot)desousa(at)icloud(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: set not null column using existing constraint
Date: 2018-01-10 16:02:33
Message-ID: CAKGTZp7D9W0idj8WaXEUOpJSNFuwL9uw7aH-D9mRAcBhcZMBtQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

The column is not marked as NOT NULL but a valid constraint "CHECK (column
IS NOT NULL)" exists.

I haven't found a way to use that specific constraint and avoid the table
rescan.

Regards

On Wed, Jan 10, 2018 at 5:00 PM, Rui DeSousa <rui(dot)desousa(at)icloud(dot)com> wrote:

> Marco,
>
> Since the column has already been altered to be not null then attaching
> the primary key will not need to rescan the table to mark the column as not
> null again — just use the “using index" clause.
>
> i.e.
>
> alter table rui.member add primary key using index member_pkey;
>
>
> On Jan 10, 2018, at 7:09 AM, Marco Piovan <mpiovan(at)workwave(dot)com> wrote:
>
> Hello,
> I want to create a primary key using an existing unique index.
> I have already created the index concurrently and I have already validated
> a not null constraint on the same column.
>
> Looking at the postgres documentation (https://www.postgresql.org/
> docs/9.6/static/sql-altertable.html):
>
> "If PRIMARY KEY is specified, and the index's columns are not already
> marked NOT NULL, then this command will attempt to do ALTER COLUMN SET
> NOT NULL against each such column. That requires a full table scan to
> verify the column(s) contain no nulls. In all other cases, this is a fast
> operation."
>
> Is it possible to specify the already validated not null constraint and
> avoid another scan of the table (with lock)?
>
> Best regards
>
> --
> Marco Piovan
>
>
>

--
*Marco Piovan*

Senior System Engineer
mpiovan(at)workwave(dot)com | workwave.com

Via Luigi Da Porto, 2/C - 37122 Verona (VR) - Italy


<https://www.workwave.com/> <https://www.facebook.com/WorkWaveCo>
<https://www.linkedin.com/company/workwave> <https://twitter.com/WorkWave>
<https://plus.google.com/u/0/108362178327115857089/posts>

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message David G. Johnston 2018-01-10 16:13:21 Re: set not null column using existing constraint
Previous Message Rui DeSousa 2018-01-10 16:00:03 Re: set not null column using existing constraint