mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Change get_constraint_index() to use pg_constraint.conindid
It was still using a scan of pg_depend instead of using the conindid column that has been added since. Since it is now just a catalog lookup wrapper and not related to pg_depend, move from pg_depend.c to lsyscache.c. Reviewed-by: Matthias van de Meent <boekewurm+postgres@gmail.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://www.postgresql.org/message-id/flat/4688d55c-9a2e-9a5a-d166-5f24fe0bf8db%40enterprisedb.com
This commit is contained in:
27
src/backend/utils/cache/lsyscache.c
vendored
27
src/backend/utils/cache/lsyscache.c
vendored
@ -1094,6 +1094,33 @@ get_constraint_name(Oid conoid)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* get_constraint_index
|
||||
* Given the OID of a unique, primary-key, or exclusion constraint,
|
||||
* return the OID of the underlying index.
|
||||
*
|
||||
* Return InvalidOid if the index couldn't be found; this suggests the
|
||||
* given OID is bogus, but we leave it to caller to decide what to do.
|
||||
*/
|
||||
Oid
|
||||
get_constraint_index(Oid conoid)
|
||||
{
|
||||
HeapTuple tp;
|
||||
|
||||
tp = SearchSysCache1(CONSTROID, ObjectIdGetDatum(conoid));
|
||||
if (HeapTupleIsValid(tp))
|
||||
{
|
||||
Form_pg_constraint contup = (Form_pg_constraint) GETSTRUCT(tp);
|
||||
Oid result;
|
||||
|
||||
result = contup->conindid;
|
||||
ReleaseSysCache(tp);
|
||||
return result;
|
||||
}
|
||||
else
|
||||
return InvalidOid;
|
||||
}
|
||||
|
||||
/* ---------- LANGUAGE CACHE ---------- */
|
||||
|
||||
char *
|
||||
|
Reference in New Issue
Block a user