From: Tom Lane Date: Fri, 13 Feb 2004 01:08:20 +0000 (+0000) Subject: Try to make 'cross-database references are not implemented' errors a X-Git-Tag: REL8_0_0BETA1~1177 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=96656f7dd71f15e8ab522dfb07b7cf010a971fd8;p=postgresql Try to make 'cross-database references are not implemented' errors a bit more helpful by identifying the specific qualified name being complained of. --- diff --git a/src/backend/catalog/namespace.c b/src/backend/catalog/namespace.c index 6c24387701..91a604eac7 100644 --- a/src/backend/catalog/namespace.c +++ b/src/backend/catalog/namespace.c @@ -13,7 +13,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.62 2004/01/19 19:04:40 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.63 2004/02/13 01:08:20 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -165,7 +165,9 @@ RangeVarGetRelid(const RangeVar *relation, bool failOK) if (strcmp(relation->catalogname, get_database_name(MyDatabaseId)) != 0) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cross-database references are not implemented"))); + errmsg("cross-database references are not implemented: \"%s.%s.%s\"", + relation->catalogname, relation->schemaname, + relation->relname))); } if (relation->schemaname) @@ -218,7 +220,9 @@ RangeVarGetCreationNamespace(const RangeVar *newRelation) if (strcmp(newRelation->catalogname, get_database_name(MyDatabaseId)) != 0) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cross-database references are not implemented"))); + errmsg("cross-database references are not implemented: \"%s.%s.%s\"", + newRelation->catalogname, newRelation->schemaname, + newRelation->relname))); } if (newRelation->istemp) @@ -1182,7 +1186,8 @@ DeconstructQualifiedName(List *names, if (strcmp(catalogname, get_database_name(MyDatabaseId)) != 0) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cross-database references are not implemented"))); + errmsg("cross-database references are not implemented: %s", + NameListToString(names)))); break; default: ereport(ERROR, diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index d1d5e9cb53..c23e39a25d 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/parse_expr.c,v 1.164 2003/11/29 19:51:52 pgsql Exp $ + * $PostgreSQL: pgsql/src/backend/parser/parse_expr.c,v 1.165 2004/02/13 01:08:20 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1115,7 +1115,8 @@ transformColumnRef(ParseState *pstate, ColumnRef *cref) if (strcmp(name1, get_database_name(MyDatabaseId)) != 0) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cross-database references are not implemented"))); + errmsg("cross-database references are not implemented: %s", + NameListToString(cref->fields)))); /* Whole-row reference? */ if (strcmp(name4, "*") == 0) diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c index ec7f1db0a6..6bed23f906 100644 --- a/src/backend/parser/parse_target.c +++ b/src/backend/parser/parse_target.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.114 2003/11/29 19:51:52 pgsql Exp $ + * $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.115 2004/02/13 01:08:20 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -159,7 +159,8 @@ transformTargetList(ParseState *pstate, List *targetlist) if (strcmp(name1, get_database_name(MyDatabaseId)) != 0) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cross-database references are not implemented"))); + errmsg("cross-database references are not implemented: %s", + NameListToString(fields)))); schemaname = strVal(lsecond(fields)); relname = strVal(lthird(fields)); break;