Add error check for lossy distance functions in index-only scans.
Maybe we should actually support this, but for the moment let's just throw an error if the opclass tries it.
This commit is contained in:
parent
72809480d6
commit
f84c8601d6
@ -165,6 +165,19 @@ IndexOnlyNext(IndexOnlyScanState *node)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We don't currently support rechecking ORDER BY distances. (In
|
||||||
|
* principle, if the index can support retrieval of the originally
|
||||||
|
* indexed value, it should be able to produce an exact distance
|
||||||
|
* calculation too. So it's not clear that adding code here for
|
||||||
|
* recheck/re-sort would be worth the trouble. But we should at least
|
||||||
|
* throw an error if someone tries it.)
|
||||||
|
*/
|
||||||
|
if (scandesc->numberOfOrderBys > 0 && scandesc->xs_recheckorderby)
|
||||||
|
ereport(ERROR,
|
||||||
|
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||||
|
errmsg("lossy distance functions are not supported in index-only scans")));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Predicate locks for index-only scans must be acquired at the page
|
* Predicate locks for index-only scans must be acquired at the page
|
||||||
* level when the heap is not accessed, since tuple-level predicate
|
* level when the heap is not accessed, since tuple-level predicate
|
||||||
|
Loading…
x
Reference in New Issue
Block a user