Bruce Momjian wrote:
    <function>CURRENT_TIMESTAMP</> might not be the
    transaction start time on other database systems.
    For this reason, and for completeness,
    <function>transaction_timestamp</> is provided.

Well, transaction_timestamp() is even more unlikely to be the transaction start time on other database systems :) If the user wants non-standard syntax for getting the timestamp at which the current transaction began, we already have now().

One trick is that these should be the same:

        test=> SELECT statement_timestamp(), transaction_timestamp();

Should they be? It seems quite reasonable to me that the DBMS begins a transaction internally (setting transaction_timestamp()), and then a short while later begins executing the statement submitted by the user, at which point statement_timestamp() is set.

Perhaps ensuring they are identical for single-statement transactions is the best behavior, I just don't think this is required behavior.

And these should be the same:

        $ psql -c '
        INSERT INTO t VALUES (statement_timestamp());
        INSERT INTO t VALUES (statement_timestamp());' test
        INSERT 0 1

Uh, why should these be the same?


---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to