Thread

Commits

  1. doc: Small example improvement

  2. Doc: remove long-obsolete advice about generated constraint names.

  1. generated constraint name

    The Post Office <noreply@postgresql.org> — 2025-04-06T10:16:30Z

    The following documentation comment has been logged on the website:
    
    Page: https://www.postgresql.org/docs/17/ddl-alter.html
    Description:
    
    url:
    https://www.postgresql.org/docs/current/ddl-alter.html#DDL-ALTER-REMOVING-A-CONSTRAINT
    
    (If you are dealing with a generated constraint name like $2, don't forget
    that you'll need to double-quote it to make it a valid identifier.)
    
    If I have a constraint with the name $2, are there other constraints with
    names $1, $3 ... ?
    
  2. Re: generated constraint name

    David G. Johnston <david.g.johnston@gmail.com> — 2025-04-07T13:34:38Z

    On Sunday, April 6, 2025, PG Doc comments form <noreply@postgresql.org>
    wrote:
    
    > The following documentation comment has been logged on the website:
    >
    > Page: https://www.postgresql.org/docs/17/ddl-alter.html
    > Description:
    >
    > url:
    > https://www.postgresql.org/docs/current/ddl-alter.html#
    > DDL-ALTER-REMOVING-A-CONSTRAINT
    >
    > (If you are dealing with a generated constraint name like $2, don't forget
    > that you'll need to double-quote it to make it a valid identifier.)
    >
    > If I have a constraint with the name $2, are there other constraints with
    > names $1, $3 ... ?
    >
    
    I feel like that whole parenthetical should just go away.  The point of the
    comment is to remind the user of how identifier values work with respect to
    mandatory double quoting.  The name itself, other than having a $, has no
    special importance.
    
    David J.
    
  3. Re: generated constraint name

    Yaroslav Saburov <y.saburov@gmail.com> — 2025-04-08T06:10:53Z

    You do not provide the output of the table description, but write that the system generated the name $2
    
    > 7 квіт. 2025 р. о 16:34 David G. Johnston <david.g.johnston@gmail.com> пише:
    > 
    > On Sunday, April 6, 2025, PG Doc comments form <noreply@postgresql.org> wrote:
    >> The following documentation comment has been logged on the website:
    >> 
    >> Page: https://www.postgresql.org/docs/17/ddl-alter.html
    >> Description:
    >> 
    >> url:
    >> https://www.postgresql.org/docs/current/ddl-alter.html#DDL-ALTER-REMOVING-A-CONSTRAINT
    >> 
    >> (If you are dealing with a generated constraint name like $2, don't forget
    >> that you'll need to double-quote it to make it a valid identifier.)
    >> 
    >> If I have a constraint with the name $2, are there other constraints with
    >> names $1, $3 ... ?
    > 
    > I feel like that whole parenthetical should just go away.  The point of the comment is to remind the user of how identifier values work with respect to mandatory double quoting.  The name itself, other than having a $, has no special importance.
    > 
    > David J.
    > 
    
  4. Re: generated constraint name

    Peter Eisentraut <peter@eisentraut.org> — 2025-04-10T14:11:42Z

    On 07.04.25 15:34, David G. Johnston wrote:
    > On Sunday, April 6, 2025, PG Doc comments form <noreply@postgresql.org 
    > <mailto:noreply@postgresql.org>> wrote:
    > 
    >     The following documentation comment has been logged on the website:
    > 
    >     Page: https://www.postgresql.org/docs/17/ddl-alter.html <https://
    >     www.postgresql.org/docs/17/ddl-alter.html>
    >     Description:
    > 
    >     url:
    >     https://www.postgresql.org/docs/current/ddl-alter.html#DDL-ALTER-
    >     REMOVING-A-CONSTRAINT <https://www.postgresql.org/docs/current/ddl-
    >     alter.html#DDL-ALTER-REMOVING-A-CONSTRAINT>
    > 
    >     (If you are dealing with a generated constraint name like $2, don't
    >     forget
    >     that you'll need to double-quote it to make it a valid identifier.)
    > 
    >     If I have a constraint with the name $2, are there other constraints
    >     with
    >     names $1, $3 ... ?
    > 
    > 
    > I feel like that whole parenthetical should just go away.  The point of 
    > the comment is to remind the user of how identifier values work with 
    > respect to mandatory double quoting.  The name itself, other than having 
    > a $, has no special importance.
    
    I think generated constraint names were generally "$1", "$2", etc. at 
    some point, instead of the more readable ones you get today.  But this 
    must be ancient.
    
    
    
    
    
  5. Re: generated constraint name

    Tom Lane <tgl@sss.pgh.pa.us> — 2025-04-10T15:13:00Z

    Peter Eisentraut <peter@eisentraut.org> writes:
    > On 07.04.25 15:34, David G. Johnston wrote:
    >> I feel like that whole parenthetical should just go away.  The point of 
    >> the comment is to remind the user of how identifier values work with 
    >> respect to mandatory double quoting.  The name itself, other than having 
    >> a $, has no special importance.
    
    > I think generated constraint names were generally "$1", "$2", etc. at 
    > some point, instead of the more readable ones you get today.  But this 
    > must be ancient.
    
    Good point.  A bit of git-blame'ing shows that this documentation
    wording appeared in e560dd353 of 2003-11-05, but we changed the
    generation rule to not be "$n" in 45616f5bb of 2004-06-10.
    (Oddly, I moved this documentation text around in 2005 without
    noticing it was obsolete; or perhaps I did realize that but figured
    it was still applicable to versions in the field.)
    
    I concur with David that we should just drop the para.  It's merely
    confusing now.  If you have a generated constraint name, it won't
    require double-quoting unless your table or column name does, and
    if they do you are doubtless already quite familiar with how
    quoting works.
    
    			regards, tom lane
    
    
    
    
  6. Re: generated constraint name

    Yaroslav Saburov <y.saburov@gmail.com> — 2025-04-11T08:32:45Z

    Thank you all.
    
    In order not to open a new thread, (small clarification)
    
    On the tutorial-agg page in the code example
    
    SELECT city FROM weather WHERE temp_lo = max(temp_lo); WRONG
    
    you need to add a comment before WRONG
    
    > 10 квіт. 2025 р. о 18:13 Tom Lane <tgl@sss.pgh.pa.us> пише:
    > 
    > Peter Eisentraut <peter@eisentraut.org> writes:
    >>> On 07.04.25 15:34, David G. Johnston wrote:
    >>> I feel like that whole parenthetical should just go away.  The point of 
    >>> the comment is to remind the user of how identifier values work with 
    >>> respect to mandatory double quoting.  The name itself, other than having 
    >>> a $, has no special importance.
    > 
    >> I think generated constraint names were generally "$1", "$2", etc. at 
    >> some point, instead of the more readable ones you get today.  But this 
    >> must be ancient.
    > 
    > Good point.  A bit of git-blame'ing shows that this documentation
    > wording appeared in e560dd353 of 2003-11-05, but we changed the
    > generation rule to not be "$n" in 45616f5bb of 2004-06-10.
    > (Oddly, I moved this documentation text around in 2005 without
    > noticing it was obsolete; or perhaps I did realize that but figured
    > it was still applicable to versions in the field.)
    > 
    > I concur with David that we should just drop the para.  It's merely
    > confusing now.  If you have a generated constraint name, it won't
    > require double-quoting unless your table or column name does, and
    > if they do you are doubtless already quite familiar with how
    > quoting works.
    > 
    >            regards, tom lane
    
  7. Re: generated constraint name

    Euler Taveira <euler@eulerto.com> — 2025-04-11T12:45:02Z

    On Fri, Apr 11, 2025, at 5:32 AM, Yaroslav Saburov wrote:
    > 
    > Thank you all.
    > 
    > 
    > 
    > In order not to open a new thread, (small clarification)
    > 
    
    Don't be afraid to open a new thread. Indeed, a new topic (even if it is
    minimal) deserves a new thread.
    
    > On the tutorial-agg page in the code example
    > 
    > 
    > 
    > SELECT city FROM weather WHERE temp_lo = max(temp_lo); WRONG
    > 
    > 
    > 
    > you need to add a comment before WRONG
    > 
    
    If you consider that that query is correct and it fails in the "wrong" then you
    made the point.
    
    postgres-# select 1;    wrong
    ERROR:  syntax error at or near "WRONG"
    LINE 1: WRONG
            ^
    
    However, the query is not correct and it fails before processing the second
    statement (wrong) so it doesn't matter much in this case. Even after saying
    that, I agree with you that this annotation without the comment characters
    don't make much sense.
    
    postgres=# SELECT city FROM weather WHERE temp_lo = max(temp_lo);     WRONG
    ERROR:  aggregate functions are not allowed in WHERE
    LINE 1: SELECT city FROM weather WHERE temp_lo = max(temp_lo);
                                                     ^
    
    
    --
    Euler Taveira
    EDB   https://www.enterprisedb.com/
    
  8. Re: generated constraint name

    Robert Treat <rob@xzilla.net> — 2025-04-24T15:13:24Z

    On Fri, Apr 11, 2025 at 8:45 AM Euler Taveira <euler@eulerto.com> wrote:
    > On Fri, Apr 11, 2025, at 5:32 AM, Yaroslav Saburov wrote:
    > On the tutorial-agg page in the code example
    >
    > SELECT city FROM weather WHERE temp_lo = max(temp_lo); WRONG
    >
    > you need to add a comment before WRONG
    >
    > If you consider that that query is correct and it fails in the "wrong" then you
    > made the point.
    >
    > postgres-# select 1;    wrong
    > ERROR:  syntax error at or near "WRONG"
    > LINE 1: WRONG
    >         ^
    >
    > However, the query is not correct and it fails before processing the second
    > statement (wrong) so it doesn't matter much in this case. Even after saying
    > that, I agree with you that this annotation without the comment characters
    > don't make much sense.
    >
    > postgres=# SELECT city FROM weather WHERE temp_lo = max(temp_lo);     WRONG
    > ERROR:  aggregate functions are not allowed in WHERE
    > LINE 1: SELECT city FROM weather WHERE temp_lo = max(temp_lo);
    >                                                  ^
    
    While this was a small change, I do think it was an improvement, so
    bumping Euler's suggested patch as I think it got lost in the other
    discussion.
    
    Robert Treat
    https://xzilla.net
    
    
    
    
  9. Re: generated constraint name

    Peter Eisentraut <peter@eisentraut.org> — 2025-04-29T12:44:10Z

    On 24.04.25 17:13, Robert Treat wrote:
    > On Fri, Apr 11, 2025 at 8:45 AM Euler Taveira <euler@eulerto.com> wrote:
    >> On Fri, Apr 11, 2025, at 5:32 AM, Yaroslav Saburov wrote:
    >> On the tutorial-agg page in the code example
    >>
    >> SELECT city FROM weather WHERE temp_lo = max(temp_lo); WRONG
    >>
    >> you need to add a comment before WRONG
    >>
    >> If you consider that that query is correct and it fails in the "wrong" then you
    >> made the point.
    >>
    >> postgres-# select 1;    wrong
    >> ERROR:  syntax error at or near "WRONG"
    >> LINE 1: WRONG
    >>          ^
    >>
    >> However, the query is not correct and it fails before processing the second
    >> statement (wrong) so it doesn't matter much in this case. Even after saying
    >> that, I agree with you that this annotation without the comment characters
    >> don't make much sense.
    >>
    >> postgres=# SELECT city FROM weather WHERE temp_lo = max(temp_lo);     WRONG
    >> ERROR:  aggregate functions are not allowed in WHERE
    >> LINE 1: SELECT city FROM weather WHERE temp_lo = max(temp_lo);
    >>                                                   ^
    > 
    > While this was a small change, I do think it was an improvement, so
    > bumping Euler's suggested patch as I think it got lost in the other
    > discussion.
    
    Committed.  Thanks for the reminder/review.