From: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
Cc: | Amit Langote <amitlangote09(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY |
Date: | 2021-04-10 18:42:26 |
Message-ID: | 20210410184226.GY6592@telsasoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, Mar 21, 2021 at 03:01:15PM -0300, Alvaro Herrera wrote:
> > But note that it doesn't check if an existing constraint "implies" the new
> > constraint - maybe it should.
>
> Hm, I'm not sure I want to do that, because that means that if I later
> have to attach the partition again with the same partition bounds, then
> I might have to incur a scan to recheck the constraint. I think we want
> to make the new constraint be as tight as possible ...
If it *implies* the partition constraint, then it's at least as tight (and
maybe tighter), yes ?
I think you're concerned with the case that someone has a partition with
"tight" bounds like (a>=200 and a<300) and a check constraint that's "less
tight" like (a>=100 AND a<400). In that case, the loose check constraint
doesn't imply the tighter partition constraint, so your patch would add a
non-redundant constraint.
I'm interested in the case that someone has a check constraint that almost but
not exactly matches the partition constraint, like (a<300 AND a>=200). In that
case, your patch adds a redundant constraint.
I wrote a patch which seems to effect my preferred behavior - please check.
--
Justin
Attachment | Content-Type | Size |
---|---|---|
0001-DETACH-CONCURRENTLY-avoid-creation-of-redundant-cons.patch | text/x-diff | 4.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Noah Misch | 2021-04-10 20:03:26 | Re: SQL-standard function body |
Previous Message | Peter Eisentraut | 2021-04-10 17:56:32 | Re: truncating timestamps on arbitrary intervals |