Oleg Bartunov <oleg(at)sai(dot)msu(dot)su> writes:
> We have implemented multi-key index support for GiST. Patch is available
> from http://www.sai.msu.su/~megera/postgres/gist/code/7.1.2/patch_multikeygist.7.1.2.gz
What is the point of the macro
#define ATTGET(itup, Rel, i, isnull ) ((char*)( \
( IndexTupleSize(itup) == sizeof(IndexTupleData) ) ? \
*(isnull)=true, NULL \
: \
index_getattr(itup, i, (Rel)->rd_att, isnull) \
))
It appears to me that index_getattr should handle an all-NULL index
tuple just fine by itself --- certainly the btree code expects it to.
So I do not see the reason for this extra layer on top of it.
regards, tom lane