Holger Jakobs <holger@jakobs.com> writes:
> So in psql now() and statement_timestamp() are identical when not in a
> transaction, while in the others the two values vary a little bit,
> roughly 100 microseconds.
> How come the same statements aren't behaving identical. I'm using a
> current PostgreSQL server on a Linux machine.
I'd try turning on log_statement = all to see what's actually
happening. What seems somewhat likely is that the non-psql
cases are wrapping the command you gave in BEGIN/COMMIT,
or something along that line.
[ thinks for a bit ] It could also be down to the wire protocol
used. psql is just sending a simple Query message, but the
other two might well be sending Parse/Bind/Execute. IIRC the
transaction must be started by Bind, but we may consider
the statement timestamp to be the start of processing Execute.
regards, tom lane