diff --git a/src/common/backend/catalog/namespace.cpp b/src/common/backend/catalog/namespace.cpp index 44774bda08b6cf59014200bf073d4cf3b670a196..605cea1000fa0a7283fd1cb708daf3f829a86f17 100644 --- a/src/common/backend/catalog/namespace.cpp +++ b/src/common/backend/catalog/namespace.cpp @@ -334,7 +334,14 @@ Oid RangeVarGetRelidExtended(const RangeVar* relation, LOCKMODE lockmode, bool m errDetail = RelnameGetRelidExtended(relation->relname, &relId, refSynOid, detailInfo); if (OidIsValid(relId)) { Oid namespaceId = get_rel_namespace(relId); - LookupExplicitNamespace(get_namespace_name(namespaceId)); + char* nspname = get_namespace_name(namespaceId); + if (nspname) { + LookupExplicitNamespace(nspname); + pfree(nspname); + } else { + ereport(ERROR, (errmodule(MOD_SEC), errcode(ERRCODE_UNDEFINED_SCHEMA), + errmsg("schema with OID %u does not exist", namespaceId))); + } } } else { relId = RelnameGetRelid(relation->relname, detailInfo);