2230{
2231 Relation table_rel;
2232 List *index_list;
2233 ListCell *lc;
2234
2235
2236 Oid b2d_oid = postgis_oid(BOX2DFOID);
2237 Oid gdx_oid = postgis_oid(GIDXOID);
2238
2239 if (!(b2d_oid && gdx_oid))
2240 return InvalidOid;
2241
2242
2243 table_rel = RelationIdGetRelation(table_oid);
2244 index_list = RelationGetIndexList(table_rel);
2245 RelationClose(table_rel);
2246
2247
2248 foreach(lc, index_list)
2249 {
2250 Oid index_oid = lfirst_oid(lc);
2251 Oid atttypid;
2252
2253
2255
2256
2257 if (*idx_attnum == InvalidAttrNumber)
2258 continue;
2259
2260
2262 continue;
2263
2264
2265
2267 if (atttypid == b2d_oid || atttypid == gdx_oid)
2268 {
2269
2271 return index_oid;
2272 }
2273 }
2274 return InvalidOid;
2275}
static int index_get_keytype(Oid index_oid, int16 index_attnum)
#define STATISTIC_KIND_2D
#define STATISTIC_KIND_ND
static int index_get_am(Oid index_oid)
static int16 index_has_attr(Oid index_oid, Oid table_oid, int16 table_attnum)