From: | Jesper Krogh <jesper(at)krogh(dot)cc> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: SP-GiST versus index-only scans |
Date: | 2011-12-14 19:50:01 |
Message-ID: | 4EE8FDE9.7070804@krogh.cc |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2011-12-14 19:48, Tom Lane wrote:
> Jesper Krogh<jesper(at)krogh(dot)cc> writes:
>> On 2011-12-14 19:00, Tom Lane wrote:
>>> So the problem is that we have to either disallow such opclass designs,
>>> or support per-opclass rather than per-index-AM decisions about whether
>>> index-only scans are possible.
>> Just a quick comment, for some queries like the famous
>> select count(*) from table where column @@ to_tsquery('something');
>> I do think index-only-scans does make sense even on indices
>> where the original tuple cannot be re-constructed. This also goes
>> for gin indices as well.
> I think this is somewhat wishful thinking unfortunately. The difficulty
> is that if the index isn't capable of reconstructing the original value,
> then it's probably giving only an approximate (lossy) answer, which
> means we'll have to visit the heap to recheck each result, which
> pretty much defeats the purpose of an index-only scan. So I can't get
> excited about contorting things to support this.
I can see that it is hard to generalize, but in the tsvector case the
we are indeed not capable of reconstructing the row since the
positions are not stored in the index, the actual lookup is not a
lossy and I'm fairly sure (based on experience) that pg dont
revisit heap-tuples for checking (only for visibillity).
--
Jesper
--
Jesper
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2011-12-14 20:09:48 | Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64 |
Previous Message | Andrew Dunstan | 2011-12-14 19:49:11 | Re: [PATCH] PostgreSQL fails to build with 32bit MinGW-w64 |