|
|
|
@ -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 |
|
|
|
|
* level when the heap is not accessed, since tuple-level predicate |
|
|
|
|