Re: Proposal: Add a UNIQUE NOT ENFORCED constraint

From: Jacob Jackson <jej(dot)jackson(dot)08(at)gmail(dot)com>
To: Neil Chen <carpenter(dot)nail(dot)cz(at)gmail(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Proposal: Add a UNIQUE NOT ENFORCED constraint
Date: 2026-01-08 01:38:49
Message-ID: CAAiQw3zzFy+Rf-wjkeHpDbxNAmTOuNOU18wVZ6uYjUwv6p+tJA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jan 7, 2026 at 5:22 AM Neil Chen <carpenter(dot)nail(dot)cz(at)gmail(dot)com> wrote:
> If we want the query planner to generate an execution plan as if a column were unique, would setting n_distinct = -1 in the table statistics achieve the same effect?

Setting n_distinct is less clear in describing the data (it isn't tied
to the table schema itself and can be ambiguous in whether values are
actually totally unique or just close enough, which can complicate
things), and, because it only impacts statistics estimations, it still
doesn't help in queries where uniqueness is required. Postgres will
still add a node to ensure uniqueness in that case. There are also
some other limitations with n_distinct (e.g. extended stats are
required for multi-column pairs, which further complicates
documentation and adds complexity/overhead).

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Japin Li 2026-01-08 01:40:37 Re: [PATCH] Add pg_get_role_ddl() functions for role recreation
Previous Message Chao Li 2026-01-08 01:38:48 Re: DOC: fixes multiple errors in alter table doc