Обсуждение: Index-only scans with btree_gist
I've pushed Anastasia's patch to support index-only scans with GiST, and it's time to add opclasses support for all the opclasses that are not lossy. I think at least all the btree_gist opclasses need to be supported, it would be pretty surprising if they didn't support index-only scans, while some more complex opclasses did. Attached is a WIP patch for that. It covers all the varlen types that btree_gist supports, and int2, int4 and oid. The rest of the fixed-width types should be just a matter of copy-pasting. I'll continue adding those, but wanted to let people know I'm working on this. - Heikki
Вложения
On 03/26/2015 10:31 PM, Heikki Linnakangas wrote: > I've pushed Anastasia's patch to support index-only scans with GiST, and > it's time to add opclasses support for all the opclasses that are not > lossy. I think at least all the btree_gist opclasses need to be > supported, it would be pretty surprising if they didn't support > index-only scans, while some more complex opclasses did. > > Attached is a WIP patch for that. It covers all the varlen types that > btree_gist supports, and int2, int4 and oid. The rest of the fixed-width > types should be just a matter of copy-pasting. I'll continue adding > those, but wanted to let people know I'm working on this. Would it also be worth doing the same for the inet_ops class for inet/cidr? I have hacked a quick WIP patch which I believe should work, but have not looked into the index only scan code enough to be sure. -- Andreas Karlsson
Вложения
On 03/28/2015 01:14 AM, Andreas Karlsson wrote: > On 03/26/2015 10:31 PM, Heikki Linnakangas wrote: >> I've pushed Anastasia's patch to support index-only scans with GiST, and >> it's time to add opclasses support for all the opclasses that are not >> lossy. I think at least all the btree_gist opclasses need to be >> supported, it would be pretty surprising if they didn't support >> index-only scans, while some more complex opclasses did. >> >> Attached is a WIP patch for that. It covers all the varlen types that >> btree_gist supports, and int2, int4 and oid. The rest of the fixed-width >> types should be just a matter of copy-pasting. I'll continue adding >> those, but wanted to let people know I'm working on this. > > Would it also be worth doing the same for the inet_ops class for > inet/cidr? I have hacked a quick WIP patch which I believe should work, > but have not looked into the index only scan code enough to be sure. Looks good to me. Committed, thanks. - Heikki
On 03/28/2015 02:12 PM, Heikki Linnakangas wrote: > Looks good to me. Committed, thanks. Thanks! Do you know if it is possible to add index-only scan support to range indexes? I have never looked at those and do not know if they are lossy. Andreas
On 03/28/2015 09:36 PM, Andreas Karlsson wrote: > Thanks! Do you know if it is possible to add index-only scan support to > range indexes? I have never looked at those and do not know if they are > lossy. Seems like range types are not compressed at all so implementing index-only scans was trivial. A patch is attached. -- Andreas Karlsson
Вложения
On 03/29/2015 03:25 AM, Andreas Karlsson wrote: > On 03/28/2015 09:36 PM, Andreas Karlsson wrote: >> Thanks! Do you know if it is possible to add index-only scan support to >> range indexes? I have never looked at those and do not know if they are >> lossy. > > Seems like range types are not compressed at all so implementing > index-only scans was trivial. A patch is attached. Noticed a couple of typos, so to avoid having them sneak into the code here is a version without them. -- Andreas Karlsson
Вложения
On 03/29/2015 04:30 AM, Andreas Karlsson wrote: > On 03/29/2015 03:25 AM, Andreas Karlsson wrote: >> On 03/28/2015 09:36 PM, Andreas Karlsson wrote: >>> Thanks! Do you know if it is possible to add index-only scan support to >>> range indexes? I have never looked at those and do not know if they are >>> lossy. >> >> Seems like range types are not compressed at all so implementing >> index-only scans was trivial. A patch is attached. > > Noticed a couple of typos, so to avoid having them sneak into the code > here is a version without them. Thanks, pushed. - Heikki