mirror of
https://github.com/postgres/postgres.git
synced 2025-08-18 12:22:09 +03:00
Fix GiST index-only scans for opclasses with different storage type.
We cannot use the index's tuple descriptor directly to describe the index tuples returned in an index-only scan. That's because the index might use a different datatype for the values stored on disk than the type originally indexed. As long as they were both pass-by-ref, it worked, but will not work for pass-by-value types of different sizes. I noticed this as a crash when I started hacking a patch to add fetch methods to btree_gist.
This commit is contained in:
@@ -657,7 +657,7 @@ gistFetchTuple(GISTSTATE *giststate, Relation r, IndexTuple tuple)
|
||||
}
|
||||
MemoryContextSwitchTo(oldcxt);
|
||||
|
||||
return index_form_tuple(giststate->tupdesc, fetchatt, isnull);
|
||||
return index_form_tuple(giststate->fetchTupdesc, fetchatt, isnull);
|
||||
}
|
||||
|
||||
float
|
||||
|
Reference in New Issue
Block a user