diff --git a/lib/repack.c b/lib/repack.c index 4451153..21aa538 100644 --- a/lib/repack.c +++ b/lib/repack.c @@ -797,6 +797,12 @@ repack_drop(PG_FUNCTION_ARGS) const char *relname = get_quoted_relname(oid); const char *nspname = get_quoted_nspname(oid); + if (!(relname && nspname)) + { + elog(ERROR, "table name not found for OID %u", oid); + PG_RETURN_VOID(); + } + /* authority check */ must_be_superuser("repack_drop"); @@ -895,13 +901,15 @@ repack_prepare(const char *src, int nargs, Oid *argtypes) static const char * get_quoted_relname(Oid oid) { - return quote_identifier(get_rel_name(oid)); + const char *relname = get_rel_name(oid); + return (relname ? quote_identifier(relname) : NULL); } static const char * get_quoted_nspname(Oid oid) { - return quote_identifier(get_namespace_name(get_rel_namespace(oid))); + const char *nspname = get_namespace_name(get_rel_namespace(oid)); + return (nspname ? quote_identifier(nspname) : NULL); } /*