Re: discarding duplicate indexes - Mailing list pgsql-hackers

From Josh Kupershmidt
Subject Re: discarding duplicate indexes
Date
Msg-id CAK3UJRHXyAo_+B8oHw7v71bc+h_k+LXbsvCOc_bxaATstOz1+w@mail.gmail.com
Whole thread Raw
In response to Re: discarding duplicate indexes  (Gavin Flower <GavinFlower@archidevsys.co.nz>)
List pgsql-hackers
On Thu, Dec 20, 2012 at 1:26 AM, Gavin Flower
<GavinFlower@archidevsys.co.nz> wrote:
> On 20/12/12 14:57, Josh Kupershmidt wrote:
>
> CREATE TABLE test (id int);
> CREATE INDEX test_idx1 ON test (id);
> CREATE INDEX test_idx2 ON test (id);
>
> I initially misread your example code, but after I realised my mistake, I
> thought of an alternative scenario that might be worth considering.
>
> CREATE TABLE test (id int, int sub, text payload);
> CREATE INDEX test_idx1 ON test (id, sub);
> CREATE INDEX test_idx2 ON test (id);
>
>
> Now test_idx2 is logically included in test_idx1, but if the majority of
> transactions only query on id, then test_idx2 would be more better as it
> ties up less RAM

Well, this situation works without any LIKE ... INCLUDING INDEXES
surprises. If you CREATE TABLE test_copycat (LIKE test INCLUDING INDEXES);

you should see test_copycat created with both indexes, since
indexParams is considered for this deduplicating.

Josh



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Parser Cruft in gram.y
Next
From: Andres Freund
Date:
Subject: Re: Parser Cruft in gram.y