2234{
2235 Relation table_rel;
2236 List *index_list;
2237 ListCell *lc;
2238
2239
2240 Oid b2d_oid = postgis_oid(BOX2DFOID);
2241 Oid gdx_oid = postgis_oid(GIDXOID);
2242
2243 if (!(b2d_oid && gdx_oid))
2244 return InvalidOid;
2245
2246
2247 table_rel = RelationIdGetRelation(table_oid);
2248 index_list = RelationGetIndexList(table_rel);
2249 RelationClose(table_rel);
2250
2251
2252 foreach(lc, index_list)
2253 {
2254 Oid index_oid = lfirst_oid(lc);
2255 Oid atttypid;
2256
2257
2259
2260
2261 if (*idx_attnum == InvalidAttrNumber)
2262 continue;
2263
2264
2266 continue;
2267
2268
2269
2271 if (atttypid == b2d_oid || atttypid == gdx_oid)
2272 {
2273
2275 return index_oid;
2276 }
2277 }
2278 return InvalidOid;
2279}
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)