mirror of
https://github.com/postgres/postgres.git
synced 2025-08-31 17:02:12 +03:00
Teach SP-GiST to do index-only scans.
Operator classes can specify whether or not they support this; this preserves the flexibility to use lossy representations within an index. In passing, move constant data about a given index into the rd_amcache cache area, instead of doing fresh lookups each time we start an index operation. This is mainly to try to make sure that spgcanreturn() has insignificant cost; I still don't have any proof that it matters for actual index accesses. Also, get rid of useless copying of FmgrInfo pointers; we can perfectly well use the relcache's versions in-place.
This commit is contained in:
@@ -30,6 +30,7 @@ spg_quad_config(PG_FUNCTION_ARGS)
|
||||
|
||||
cfg->prefixType = POINTOID;
|
||||
cfg->labelType = VOIDOID; /* we don't need node labels */
|
||||
cfg->canReturnData = true;
|
||||
cfg->longValuesOK = false;
|
||||
PG_RETURN_VOID();
|
||||
}
|
||||
@@ -324,6 +325,9 @@ spg_quad_leaf_consistent(PG_FUNCTION_ARGS)
|
||||
/* all tests are exact */
|
||||
out->recheck = false;
|
||||
|
||||
/* leafDatum is what it is... */
|
||||
out->leafValue = in->leafDatum;
|
||||
|
||||
switch (in->strategy)
|
||||
{
|
||||
case RTLeftStrategyNumber:
|
||||
|
Reference in New Issue
Block a user