Use get_am_name to find indexAM name

pull/5192/head
Onur Tirtir 2021-08-18 00:44:37 +03:00
parent dfc950ce1e
commit fa9933daf3
1 changed files with 2 additions and 7 deletions

View File

@ -888,17 +888,12 @@ GetIndexAccessMethodName(Oid indexId)
Oid indexAMId = indexForm->relam;
ReleaseSysCache(indexTuple);
/* fetch pg_am tuple of index' access method */
HeapTuple indexAMTuple = SearchSysCache1(AMOID, ObjectIdGetDatum(indexAMId));
if (!HeapTupleIsValid(indexAMTuple))
char *indexAmName = get_am_name(indexAMId);
if (!indexAmName)
{
ereport(ERROR, (errmsg("access method with oid %u does not exist", indexAMId)));
}
Form_pg_am indexAMForm = (Form_pg_am) GETSTRUCT(indexAMTuple);
char *indexAmName = pstrdup(indexAMForm->amname.data);
ReleaseSysCache(indexAMTuple);
return indexAmName;
}