Include schema-qualified names in publication error messages.

  • Jump to comment-1
    Dilip Kumar<dilipbalaut@gmail.com>
    Apr 28, 2026, 11:04 AM UTC
    Previously, error messages in checkpublicationadd_relation() only
    reported the relation name when a table could not be added to a
    publication or included in an EXCEPT clause. This could be ambiguous
    in databases where the same relation name exists in multiple schemas.
    This patch updates these error messages to use schema-qualified names,
    improving the clarity of error reporting for CREATE PUBLICATION and
    ALTER PUBLICATION commands.
    This has been discussed on another thread [1]
    [1] https://www.postgresql.org/message-id/CAFiTN-u3Si2XJM9PW0xVsOSoVfTGJZZq-TirZb3eON4rqG1EFw%40mail.gmail.com
    --
    Regards,
    Dilip Kumar
    Google
    • Jump to comment-1
      shveta malik<shveta.malik@gmail.com>
      Apr 28, 2026, 11:39 AM UTC
      On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

      Previously, error messages in checkpublicationadd_relation() only
      reported the relation name when a table could not be added to a
      publication or included in an EXCEPT clause. This could be ambiguous
      in databases where the same relation name exists in multiple schemas.
      +1
      This patch updates these error messages to use schema-qualified names,
      improving the clarity of error reporting for CREATE PUBLICATION and
      ALTER PUBLICATION commands.

      This has been discussed on another thread [1]
      The patch works well.
      I think we can pull out
      'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
      'RelationGetRelationName(targetrel)' into local variables to reduce
      repetition and make the error paths a bit cleaner.
      const char *nspname =
      getnamespacenameortemp(RelationGetNamespace(targetrel));
      const char *relname = RelationGetRelationName(targetrel);
      thanks
      Shveta
      • Jump to comment-1
        Peter Smith<smithpb2250@gmail.com>
        Apr 29, 2026, 3:58 AM UTC
        On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
        On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

        Previously, error messages in checkpublicationadd_relation() only
        reported the relation name when a table could not be added to a
        publication or included in an EXCEPT clause. This could be ambiguous
        in databases where the same relation name exists in multiple schemas.

        +1
        This patch updates these error messages to use schema-qualified names,
        improving the clarity of error reporting for CREATE PUBLICATION and
        ALTER PUBLICATION commands.

        This has been discussed on another thread [1]

        The patch works well.

        I think we can pull out
        'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
        'RelationGetRelationName(targetrel)' into local variables to reduce
        repetition and make the error paths a bit cleaner.

        const char *nspname =
        getnamespacenameortemp(RelationGetNamespace(targetrel));
        const char *relname = RelationGetRelationName(targetrel);
        How about having a dedicated function to return the fully qualified
        relation name you want, which can then substitute the single %s.
        e.g.
        errmsg(errormsg, getqualifiedrelname(targetrel)), ...
        ======
        Kind Regards,
        Peter Smith.
        Fujitsu Australia
        • Jump to comment-1
          Dilip Kumar<dilipbalaut@gmail.com>
          Apr 29, 2026, 10:39 AM UTC
          On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
          On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
          On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

          Previously, error messages in checkpublicationadd_relation() only
          reported the relation name when a table could not be added to a
          publication or included in an EXCEPT clause. This could be ambiguous
          in databases where the same relation name exists in multiple schemas.

          +1
          This patch updates these error messages to use schema-qualified names,
          improving the clarity of error reporting for CREATE PUBLICATION and
          ALTER PUBLICATION commands.

          This has been discussed on another thread [1]

          The patch works well.

          I think we can pull out
          'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
          'RelationGetRelationName(targetrel)' into local variables to reduce
          repetition and make the error paths a bit cleaner.

          const char *nspname =
          getnamespacenameortemp(RelationGetNamespace(targetrel));
          const char *relname = RelationGetRelationName(targetrel);

          How about having a dedicated function to return the fully qualified
          relation name you want, which can then substitute the single %s.

          e.g.
          errmsg(errormsg, getqualifiedrelname(targetrel)), ...
          Yeah that makes sense. I will change this.
          --
          Regards,
          Dilip Kumar
          Google
          • Jump to comment-1
            Dilip Kumar<dilipbalaut@gmail.com>
            Apr 29, 2026, 11:11 AM UTC
            On Wed, Apr 29, 2026 at 4:08 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
            On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
            On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
            On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

            Previously, error messages in checkpublicationadd_relation() only
            reported the relation name when a table could not be added to a
            publication or included in an EXCEPT clause. This could be ambiguous
            in databases where the same relation name exists in multiple schemas.

            +1
            This patch updates these error messages to use schema-qualified names,
            improving the clarity of error reporting for CREATE PUBLICATION and
            ALTER PUBLICATION commands.

            This has been discussed on another thread [1]

            The patch works well.

            I think we can pull out
            'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
            'RelationGetRelationName(targetrel)' into local variables to reduce
            repetition and make the error paths a bit cleaner.

            const char *nspname =
            getnamespacenameortemp(RelationGetNamespace(targetrel));
            const char *relname = RelationGetRelationName(targetrel);

            How about having a dedicated function to return the fully qualified
            relation name you want, which can then substitute the single %s.

            e.g.
            errmsg(errormsg, getqualifiedrelname(targetrel)), ...

            Yeah that makes sense. I will change this.
            --
            Regards,
            Dilip Kumar
            Google
            • Jump to comment-1
              shveta malik<shveta.malik@gmail.com>
              Apr 29, 2026, 11:32 AM UTC
              On Wed, Apr 29, 2026 at 4:41 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
              On Wed, Apr 29, 2026 at 4:08 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
              On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
              On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
              On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

              Previously, error messages in checkpublicationadd_relation() only
              reported the relation name when a table could not be added to a
              publication or included in an EXCEPT clause. This could be ambiguous
              in databases where the same relation name exists in multiple schemas.

              +1
              This patch updates these error messages to use schema-qualified names,
              improving the clarity of error reporting for CREATE PUBLICATION and
              ALTER PUBLICATION commands.

              This has been discussed on another thread [1]

              The patch works well.

              I think we can pull out
              'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
              'RelationGetRelationName(targetrel)' into local variables to reduce
              repetition and make the error paths a bit cleaner.

              const char *nspname =
              getnamespacenameortemp(RelationGetNamespace(targetrel));
              const char *relname = RelationGetRelationName(targetrel);

              How about having a dedicated function to return the fully qualified
              relation name you want, which can then substitute the single %s.

              e.g.
              errmsg(errormsg, getqualifiedrelname(targetrel)), ...

              Yeah that makes sense. I will change this.
              One trivial thing:
              +/*
              + * Get a palloc'd string containing the schema-qualified name of the relation.
              + */
              Extra space here: 'name of'
              There is a similar function, generatequalifiedrelation_name(),
              though I guess we can’t directly reuse it here. It takes a relid;
              while we could extract the OID from the Relation and call it, that
              seems a bit indirect when we already have the Relation in hand. In
              that case, a local helper here seems reasonable. Right?
              thanks
              Shveta
              • Jump to comment-1
                Dilip Kumar<dilipbalaut@gmail.com>
                Apr 29, 2026, 12:32 PM UTC
                On Wed, Apr 29, 2026 at 5:02 PM shveta malik <shveta.malik@gmail.com> wrote:
                On Wed, Apr 29, 2026 at 4:41 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                On Wed, Apr 29, 2026 at 4:08 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
                On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
                On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

                Previously, error messages in checkpublicationadd_relation() only
                reported the relation name when a table could not be added to a
                publication or included in an EXCEPT clause. This could be ambiguous
                in databases where the same relation name exists in multiple schemas.

                +1
                This patch updates these error messages to use schema-qualified names,
                improving the clarity of error reporting for CREATE PUBLICATION and
                ALTER PUBLICATION commands.

                This has been discussed on another thread [1]

                The patch works well.

                I think we can pull out
                'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
                'RelationGetRelationName(targetrel)' into local variables to reduce
                repetition and make the error paths a bit cleaner.

                const char *nspname =
                getnamespacenameortemp(RelationGetNamespace(targetrel));
                const char *relname = RelationGetRelationName(targetrel);

                How about having a dedicated function to return the fully qualified
                relation name you want, which can then substitute the single %s.

                e.g.
                errmsg(errormsg, getqualifiedrelname(targetrel)), ...

                Yeah that makes sense. I will change this.

                One trivial thing:
                +/*
                + * Get a palloc'd string containing the schema-qualified name of the relation.
                + */

                Extra space here: 'name of'
                Oops, fixed now.
                There is a similar function, generatequalifiedrelation_name(),
                though I guess we can’t directly reuse it here. It takes a relid;
                while we could extract the OID from the Relation and call it, that
                seems a bit indirect when we already have the Relation in hand. In
                that case, a local helper here seems reasonable. Right?
                Yeah, we already have a relation descriptor, so it's better to use that.
                --
                Regards,
                Dilip Kumar
                Google
                • Jump to comment-1
                  shveta malik<shveta.malik@gmail.com>
                  Apr 30, 2026, 4:17 AM UTC
                  On Wed, Apr 29, 2026 at 6:01 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 5:02 PM shveta malik <shveta.malik@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 4:41 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 4:08 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
                  On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
                  On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

                  Previously, error messages in checkpublicationadd_relation() only
                  reported the relation name when a table could not be added to a
                  publication or included in an EXCEPT clause. This could be ambiguous
                  in databases where the same relation name exists in multiple schemas.

                  +1
                  This patch updates these error messages to use schema-qualified names,
                  improving the clarity of error reporting for CREATE PUBLICATION and
                  ALTER PUBLICATION commands.

                  This has been discussed on another thread [1]

                  The patch works well.

                  I think we can pull out
                  'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
                  'RelationGetRelationName(targetrel)' into local variables to reduce
                  repetition and make the error paths a bit cleaner.

                  const char *nspname =
                  getnamespacenameortemp(RelationGetNamespace(targetrel));
                  const char *relname = RelationGetRelationName(targetrel);

                  How about having a dedicated function to return the fully qualified
                  relation name you want, which can then substitute the single %s.

                  e.g.
                  errmsg(errormsg, getqualifiedrelname(targetrel)), ...

                  Yeah that makes sense. I will change this.

                  One trivial thing:
                  +/*
                  + * Get a palloc'd string containing the schema-qualified name of the relation.
                  + */

                  Extra space here: 'name of'

                  Oops, fixed now.
                  There is a similar function, generatequalifiedrelation_name(),
                  though I guess we can’t directly reuse it here. It takes a relid;
                  while we could extract the OID from the Relation and call it, that
                  seems a bit indirect when we already have the Relation in hand. In
                  that case, a local helper here seems reasonable. Right?

                  Yeah, we already have a relation descriptor, so it's better to use that.
                  +static char *getqualifiedrelname(Relation rel);
                  This declaration seems unnecessary. We typically avoid adding one
                  unless it’s required due to a later definition being used earlier.
                  Other than that, the patch looks good.
                  thanks
                  Shveta
                  • Jump to comment-1
                    Dilip Kumar<dilipbalaut@gmail.com>
                    Apr 30, 2026, 4:34 AM UTC
                    On Thu, Apr 30, 2026 at 9:47 AM shveta malik <shveta.malik@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 6:01 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 5:02 PM shveta malik <shveta.malik@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 4:41 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 4:08 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
                    On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
                    On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

                    Previously, error messages in checkpublicationadd_relation() only
                    reported the relation name when a table could not be added to a
                    publication or included in an EXCEPT clause. This could be ambiguous
                    in databases where the same relation name exists in multiple schemas.

                    +1
                    This patch updates these error messages to use schema-qualified names,
                    improving the clarity of error reporting for CREATE PUBLICATION and
                    ALTER PUBLICATION commands.

                    This has been discussed on another thread [1]

                    The patch works well.

                    I think we can pull out
                    'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
                    'RelationGetRelationName(targetrel)' into local variables to reduce
                    repetition and make the error paths a bit cleaner.

                    const char *nspname =
                    getnamespacenameortemp(RelationGetNamespace(targetrel));
                    const char *relname = RelationGetRelationName(targetrel);

                    How about having a dedicated function to return the fully qualified
                    relation name you want, which can then substitute the single %s.

                    e.g.
                    errmsg(errormsg, getqualifiedrelname(targetrel)), ...

                    Yeah that makes sense. I will change this.

                    One trivial thing:
                    +/*
                    + * Get a palloc'd string containing the schema-qualified name of the relation.
                    + */

                    Extra space here: 'name of'

                    Oops, fixed now.
                    There is a similar function, generatequalifiedrelation_name(),
                    though I guess we can’t directly reuse it here. It takes a relid;
                    while we could extract the OID from the Relation and call it, that
                    seems a bit indirect when we already have the Relation in hand. In
                    that case, a local helper here seems reasonable. Right?

                    Yeah, we already have a relation descriptor, so it's better to use that.

                    +static char *getqualifiedrelname(Relation rel);

                    This declaration seems unnecessary. We typically avoid adding one
                    unless it’s required due to a later definition being used earlier.
                    I generally prefer to add the static declaration irrespective of the
                    order. I understand your point, but that isn't uniformly followed,
                    though I prefer to add it.
                    Other than that, the patch looks good.
                    Thanks.
                    --
                    Regards,
                    Dilip Kumar
                    Google
                • Jump to comment-1
                  vignesh C<vignesh21@gmail.com>
                  Apr 30, 2026, 7:32 AM UTC
                  On Wed, 29 Apr 2026 at 18:02, Dilip Kumar <dilipbalaut@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 5:02 PM shveta malik <shveta.malik@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 4:41 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 4:08 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                  On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
                  On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
                  On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

                  Previously, error messages in checkpublicationadd_relation() only
                  reported the relation name when a table could not be added to a
                  publication or included in an EXCEPT clause. This could be ambiguous
                  in databases where the same relation name exists in multiple schemas.

                  +1
                  This patch updates these error messages to use schema-qualified names,
                  improving the clarity of error reporting for CREATE PUBLICATION and
                  ALTER PUBLICATION commands.

                  This has been discussed on another thread [1]

                  The patch works well.

                  I think we can pull out
                  'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
                  'RelationGetRelationName(targetrel)' into local variables to reduce
                  repetition and make the error paths a bit cleaner.

                  const char *nspname =
                  getnamespacenameortemp(RelationGetNamespace(targetrel));
                  const char *relname = RelationGetRelationName(targetrel);

                  How about having a dedicated function to return the fully qualified
                  relation name you want, which can then substitute the single %s.

                  e.g.
                  errmsg(errormsg, getqualifiedrelname(targetrel)), ...

                  Yeah that makes sense. I will change this.

                  One trivial thing:
                  +/*
                  + * Get a palloc'd string containing the schema-qualified name of the relation.
                  + */

                  Extra space here: 'name of'

                  Oops, fixed now.
                  There is a similar function, generatequalifiedrelation_name(),
                  though I guess we can’t directly reuse it here. It takes a relid;
                  while we could extract the OID from the Relation and call it, that
                  seems a bit indirect when we already have the Relation in hand. In
                  that case, a local helper here seems reasonable. Right?

                  Yeah, we already have a relation descriptor, so it's better to use that.
                  We can remove the variables relname and result here by changing it to
                  something like:
                  static char *
                  getqualifiedrelname(Relation rel)
                  {
                  char *nspname;
                  
                  nspname = get_namespace_name_or_temp(RelationGetNamespace(rel));
                  if (!nspname)
                      elog(ERROR, "cache lookup failed for namespace %u",
                           RelationGetNamespace(rel));
                  
                  return quote_qualified_identifier(nspname,
                                                    RelationGetRelationName(rel));
                  }
                  Regards,
                  Vignesh
                  • Jump to comment-1
                    Dilip Kumar<dilipbalaut@gmail.com>
                    Apr 30, 2026, 7:37 AM UTC
                    On Thu, Apr 30, 2026 at 1:02 PM vignesh C <vignesh21@gmail.com> wrote:
                    On Wed, 29 Apr 2026 at 18:02, Dilip Kumar <dilipbalaut@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 5:02 PM shveta malik <shveta.malik@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 4:41 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 4:08 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
                    On Wed, Apr 29, 2026 at 9:28 AM Peter Smith <smithpb2250@gmail.com> wrote:
                    On Tue, Apr 28, 2026 at 9:39 PM shveta malik <shveta.malik@gmail.com> wrote:
                    On Tue, Apr 28, 2026 at 4:34 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:

                    Previously, error messages in checkpublicationadd_relation() only
                    reported the relation name when a table could not be added to a
                    publication or included in an EXCEPT clause. This could be ambiguous
                    in databases where the same relation name exists in multiple schemas.

                    +1
                    This patch updates these error messages to use schema-qualified names,
                    improving the clarity of error reporting for CREATE PUBLICATION and
                    ALTER PUBLICATION commands.

                    This has been discussed on another thread [1]

                    The patch works well.

                    I think we can pull out
                    'getnamespacenameortemp(RelationGetNamespace(targetrel))' and
                    'RelationGetRelationName(targetrel)' into local variables to reduce
                    repetition and make the error paths a bit cleaner.

                    const char *nspname =
                    getnamespacenameortemp(RelationGetNamespace(targetrel));
                    const char *relname = RelationGetRelationName(targetrel);

                    How about having a dedicated function to return the fully qualified
                    relation name you want, which can then substitute the single %s.

                    e.g.
                    errmsg(errormsg, getqualifiedrelname(targetrel)), ...

                    Yeah that makes sense. I will change this.

                    One trivial thing:
                    +/*
                    + * Get a palloc'd string containing the schema-qualified name of the relation.
                    + */

                    Extra space here: 'name of'

                    Oops, fixed now.
                    There is a similar function, generatequalifiedrelation_name(),
                    though I guess we can’t directly reuse it here. It takes a relid;
                    while we could extract the OID from the Relation and call it, that
                    seems a bit indirect when we already have the Relation in hand. In
                    that case, a local helper here seems reasonable. Right?

                    Yeah, we already have a relation descriptor, so it's better to use that.

                    We can remove the variables relname and result here by changing it to
                    something like:
                    static char *
                    getqualifiedrelname(Relation rel)
                    {
                    char *nspname;

                    nspname = getnamespacenameortemp(RelationGetNamespace(rel));
                    if (!nspname)
                    elog(ERROR, "cache lookup failed for namespace %u",
                    RelationGetNamespace(rel));

                    return quotequalifiedidentifier(nspname,
                    RelationGetRelationName(rel));
                    }
                    Yeah we may, but I feel what we have now looks more readable.
                    --
                    Regards,
                    Dilip Kumar
                    Google
                    • Jump to comment-1
                      Euler Taveira<euler@eulerto.com>
                      Apr 30, 2026, 1:45 PM UTC
                      On Thu, Apr 30, 2026, at 4:37 AM, Dilip Kumar wrote:

                      Yeah we may, but I feel what we have now looks more readable.
                      My suggestion is that this function should be available in a central place.
                      That's not the only place that could use qualified schema and relation. If you
                      search for getnamespacenameortemp you will notice that this code path is
                      repeated in other parts of the code too (see ruleutils.c). It would be good if
                      we can have a common path for it. Maybe the signature has to be
                      getqualifiedrelname(Oid) to accommodate other cases.
                      --
                      Euler Taveira
                      EDB https://www.enterprisedb.com/
                      • Jump to comment-1
                        Dilip Kumar<dilipbalaut@gmail.com>
                        Apr 30, 2026, 1:53 PM UTC
                        On Thu, 30 Apr 2026 at 7:14 PM, Euler Taveira <euler@eulerto.com> wrote:


                        On Thu, Apr 30, 2026, at 4:37 AM, Dilip Kumar wrote:

                        Yeah we may, but I feel what we have now looks more readable.

                        My suggestion is that this function should be available in a central place.
                        That's not the only place that could use qualified schema and relation. If
                        you
                        search for getnamespacenameortemp you will notice that this code path
                        is
                        repeated in other parts of the code too (see ruleutils.c). It would be
                        good if
                        we can have a common path for it. Maybe the signature has to be
                        getqualifiedrelname(Oid) to accommodate
                        IMHO it’s not a good idea to use Oid when you already have reldesc.

                        Dilip