attached patch implements quad-tree on ranges. Some performance results in comparison with current GiST indexing.
@@ -788,7 +774,7 @@ range_super_union(TypeCacheEntry *typcache, RangeType * r1, R angeType * r2) * part of the relcache entry for the index, typically) this essentially * eliminates lookup overhead during operations on a GiST range index. */ -static Datum +Datum TrickFunctionCall2(PGFunction proc, FmgrInfo *flinfo, Datum arg1, Datum arg2) { FunctionCallInfoData fcinfo;
I don't think we want to expose TrickFunctionCall2(). Not with that name, anyway. Perhaps we should refactor the functions called this way, range_adjacent, range_overlaps etc., to have internal counterparts that can be called without FunctionCall(). Like: