Changes in amcanreturn() interface to support multicolumn indexes

From: Anastasia Lubennikova <lubennikovaav(at)gmail(dot)com>
To: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Changes in amcanreturn() interface to support multicolumn indexes
Date: 2014-06-26 08:37:08
Message-ID: CAP4vRV7XxvziKV6u7kZt6OoBAmmRX0Pun-h==zDDnzjJ269=yA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Changes in amcanreturn() interface to support multicolumn indexes.
Hi, hackers
I work on GSoC project Support_for_Index-only_scans_for_GIST_GSoC_2014
<https://wiki.postgresql.org/wiki/Support_for_Index-only_scans_for_GIST_GSoC_2014>
There is a question of support multicolumn index only scans for GIST.
I need help with this problem.

bool amcanreturn() - function to check whether index supports index-only
scans.
Now it's defined for
- B-tree. It always returns true, so there's no questions.
- SP-GIST. It doesn't support multicolumn indexes, so there's no problems
in spgcanreturn too.

- GIST. In first version it works only for onecolumn indexes.
gistcanreturn() checks whether fetch() method is defined for column's data
type.

There is a question of support multicolumn index only scans for GIST.
gistcanreturn() can return true if fetch is implemented for all indexed
columns and false otherwise.
But that's not very good case for multicolumn indexes.

I think, it requires extend the interface to add separate columns checking.
But I can't understand what kind of changes is required
and how would it affect on previous amcanreturn interface.

--
Regards,
Lubennikova Anastasia

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2014-06-26 08:46:30 Re: Allowing join removals for more join types
Previous Message Christoph Berg 2014-06-26 08:19:36 Re: postgresql.auto.conf and reload