On Wed, Sep 16, 2026 at 3:51 PM Amit Kapila <[email protected]> wrote:
>
> > 4.
> > + if (isexcept)
> > + ereport(ERROR,
> > + (errcode(ERRCODE_WRONG_OBJECT_TYPE),
> > + errmsg("\"%s\" is not a published relation of publication \"%s\"",
> > + RelationGetRelationName(relation), pubname)));
> > + else
> > + ereport(ERROR,
> > + (errcode(ERRCODE_WRONG_OBJECT_TYPE),
> > + errmsg("\"%s\" is not an excluded relation of publication \"%s\"",
> > + RelationGetRelationName(relation), pubname)));
> >
> > Publications can have the same table name in multiple schemas. The
> > name should be fully-qualified in the errmsg to eliminate any
> > ambiguity.
> >
>
> But I don't see any ambiguity here as the user can only pass one
> relation name. Also, we use the unqualified name in nearby message
> [1]. We use RelationGetRelationName all over the code in the error
> messages and I don't see the need to qualify here. We will simply
> return the name the user has passed.
>

In this experiment below I got an unexpected result.
- Is it a bug?
- Is it somehow reporting about a "t1" table of another schema?
- Did I type something wrong somewhere?

I cannot tell because the table name was not qualified...

CREATE SCHEMA s1;
CREATE SCHEMA s2;
CREATE SCHEMA s3;

CREATE TABLE t1(a int);
CREATE TABLE s1.t1(a int);
CREATE TABLE s2.t1(a int);
CREATE TABLE s3.t1(a int);

CREATE PUBLICATION pub FOR ALL TABLES EXCEPT (TABLE s2.t1, s3.t1);

SELECT pg_get_object_address('publication relation','{public,t1}','{pub}');
2026-09-16 17:06:17.136 AEST [250078] ERROR:  publication relation
"t1" in publication "pub" does not exist
2026-09-16 17:06:17.136 AEST [250078] STATEMENT:  SELECT
pg_get_object_address('publication relation','{public,t1}','{pub}');
ERROR:  publication relation "t1" in publication "pub" does not exist

That message can't be right because....

\d+ public.t1
                                           Table "public.t1"
 Column |  Type   | Collation | Nullable | Default | Storage |
Compression | Stats target | Description
--------+---------+-----------+----------+---------+---------+-------------+--------------+-------------
 a      | integer |           |          |         | plain   |
    |              |
Included in publications:
    "pub"
Access method: heap

======
Kind Regards,
Peter Smith
Fujitsu Australia


Reply via email to