On Thu, Nov 2, 2017 at 9:53 AM, Connor Wolf <conn...@imaginaryindustries.com> wrote: > As such: > Will compound queries as I describe above basically require a custom type to > make it possible? My (admittedly naive) expectation > is that the eventual query for this index will look something like "SELECT * > FROM example_table WHERE indexed_column <=> target_value < 4;", > with "<=>" being the operator for the relevant distance calculation > (hamming, for the BK tree, numeric for the VP-tree). > > The existing VP-tree code appears to not support multiple operators > whatsoever, probably because it was very preliminary.
I'm not an expert in this area in any way whatsoever; I don't know a VP-tree from a BK-tree from a maple tree. However, I can tell you that as a general rule, PostgreSQL index access methods can only apply index quals of the form "WHERE column op value" or ordering criteria of the form "ORDER BY column op value". So, in the above example, you might think about trying to set up the access method so that it can efficiently return values ordered by indexed_column <=> target_value and then wrapping the ORDER BY query in a subselect to cut off fetching values at the correct point. But no operator class for any access method can directly handle that query efficiently as you've written it. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (email@example.com) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers