GetPublicationByName: Don't repeat ourselves
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 23 Dec 2019 15:47:36 +0000 (12:47 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Mon, 23 Dec 2019 15:47:36 +0000 (12:47 -0300)
Use get_publication_oid() instead of reimplementing it.

Discussion: https://postgr.es/m/20191220201017.GA17292@alvherre.pgsql

src/backend/catalog/pg_publication.c

index d442c8e0bbcea93db81978af032a395457441a36..f6e9a68bf70770558dac49b7f2a173dfebda78b2 100644 (file)
@@ -374,7 +374,6 @@ GetPublication(Oid pubid)
    Form_pg_publication pubform;
 
    tup = SearchSysCache1(PUBLICATIONOID, ObjectIdGetDatum(pubid));
-
    if (!HeapTupleIsValid(tup))
        elog(ERROR, "cache lookup failed for publication %u", pubid);
 
@@ -403,19 +402,9 @@ GetPublicationByName(const char *pubname, bool missing_ok)
 {
    Oid         oid;
 
-   oid = GetSysCacheOid1(PUBLICATIONNAME, Anum_pg_publication_oid,
-                         CStringGetDatum(pubname));
-   if (!OidIsValid(oid))
-   {
-       if (missing_ok)
-           return NULL;
-
-       ereport(ERROR,
-               (errcode(ERRCODE_UNDEFINED_OBJECT),
-                errmsg("publication \"%s\" does not exist", pubname)));
-   }
+   oid = get_publication_oid(pubname, missing_ok);
 
-   return GetPublication(oid);
+   return OidIsValid(oid) ? GetPublication(oid) : NULL;
 }
 
 /*