From: | Christopher Browne <cbbrowne(at)gmail(dot)com> |
---|---|
To: | Adam Brusselback <adambrusselback(at)gmail(dot)com> |
Cc: | Rob Sargent <robjsargent(at)gmail(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: looking for a globally unique row ID |
Date: | 2017-09-15 19:30:28 |
Message-ID: | CAFNqd5UmPxqs3oe4++PFzw4QJg-eOhjW1=2sLL4=6zh0hfPnSg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 15 September 2017 at 14:45, Adam Brusselback
<adambrusselback(at)gmail(dot)com> wrote:
>> I cannot image a single postgres index covering more than one physical
>> table. Are you really asking for that?
>
>
> While not available yet, that is a feature that has had discussion before.
> Global indexes are what i've seen it called in those discussions. One of
> the main use cases is to provide uniqueness across multiple tables, which
> would also allow things like foreign keys on partitioned tables.
It certainly does come up periodically; it seems like a challengingly different
thing to implement (as compared to "regular" indexes), from two perspectives:
a) The present index implementation only needs to reference tuples from one
table, so the tuple references can be direct heap references.
If multiple tables (partitions being the most obvious case) were to be covered,
each index entry would also require indication of which table it comes from.
b) Referencing which index entries can be dropped (e.g. - vacuumed out)
is a fair bit more complex because the index entries depend on multiple
tables. This adds, um, concurrency complications, if data is being deleted
from multiple tables concurrently. (Over-simplifying question: "When
a table that participates in the sharing is vacuumed, does the shared
index get vacuumed? What if two such tables are vacuumed concurrently?")
This has added up to make it not an easy thing to implement.
To be sure, if a shared index required greatly worsened locking to do
maintenance, or suffered from inability to keep it tidy, that would make the
feature of rather less interest...
--
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Koukoulis | 2017-09-15 19:35:16 | cursor declare |
Previous Message | Rob Sargent | 2017-09-15 18:49:35 | Re: looking for a globally unique row ID |