From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: petermittere@gmail.com
Cc: pgsql-docs@lists.postgresql.org
Subject: Re: please define 'statement' in the glossary
Date: Sun, 13 Jul 2025 23:11:14 +0200
Message-ID: <097e693ea6cc3541cbcd72c915d7d492c26930c0.camel@cybertec.at> (raw)
In-Reply-To: <270191.1752420426@sss.pgh.pa.us>
References: <175223006802.3157505.14764328206246105568@wrigleys.postgresql.org>
<15139c5d218754350e4870062f90ff0e85490290.camel@cybertec.at>
<270191.1752420426@sss.pgh.pa.us>
On Sun, 2025-07-13 at 11:27 -0400, Tom Lane wrote:
> Laurenz Albe <laurenz.albe@cybertec.at> writes:
> > After looking at the code, I guess what made Tom add the remark in commit
> > eaf8f312c754 was the fact that an SQL statement is not necessarily processed
> > in a single go: with the extended query protocol (see chapter 52.2.3),
> > there is a "parse", a "bind" and an "execute" message from the client, and
> > each one sets the timestamp reported by statement_timestamp() to a new
> > value. So, technically, statement_timestamp() has a different value when
> > the statement is parsed than when it is executed.
>
> > However, what matters to the client is the value when the statement starts
> > executing, because that's the value that will be reported.
>
> > So I'd argue that we should remove the parenthetical remark. It confuses
> > more than it enlightens, and whoever needs to know that level of detail
> > had better read the code anyway.
>
> After re-reading that text, I feel like the parenthetical remark is
> fine, and the real problem is that I used "statement" and "command"
> more or less interchangeably in successive sentences. Perhaps
> s/command/statement/g throughout the paragraph would improve matters?
> Although "statement message" doesn't feel right, so maybe leave that
> one alone.
Changing "command" to "statement" would be a good move.
I guess I get the remark now: it wants to say that
a) statement_timestamp() shows the time when the client message that
started the execution of the current SQL statement reached the server
and
b) the timestamp isn't reset for nested statements
Perhaps the remark should say "protocol message" or "frontend-backend
protocol message" to make clear that we are not talking about an
SQL statement here.
Yours,
Laurenz Albe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-docs@postgresql.org
Cc: laurenz.albe@cybertec.at, tgl@sss.pgh.pa.us, petermittere@gmail.com, pgsql-docs@lists.postgresql.org
Subject: Re: please define 'statement' in the glossary
In-Reply-To: <097e693ea6cc3541cbcd72c915d7d492c26930c0.camel@cybertec.at>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox