now() vs transaction_timestamp()

From: Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: now() vs transaction_timestamp()
Date: 2018-10-05 13:29:28
Message-ID: 6406dbd2-5d37-4cb6-6eb2-9c44172c7e7c@postgrespro.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Postgres documentation says that |"now()| is a traditional PostgreSQL
equivalent to |transaction_timestamp()|".
Also both use the same implementation.
But them have different parallel safety property:

postgres=# \df+ now
List of functions
   Schema   | Name |     Result data type     | Argument data types |
Type | Volatility |  Parallel  |  Owner   | Security | Access privileges
| Language |
 Source code |       Description
------------+------+--------------------------+---------------------+------+------------+------------+----------+----------+-------------------+----------+
-------------+--------------------------
 pg_catalog | now  | timestamp with time zone | | func | stable     |
restricted | knizhnik | invoker |                   | internal |
 now         | current transaction time
(1 row)

postgres=# \df+ transaction_timestamp
List of functions
   Schema   |         Name          |     Result data type     |
Argument data types | Type | Volatility | Parallel |  Owner   | Security
| Access privileg
es | Language | Source code |       Description
------------+-----------------------+--------------------------+---------------------+------+------------+----------+----------+----------+----------------
---+----------+-------------+--------------------------
 pg_catalog | transaction_timestamp | timestamp with time zone
|                     | func | stable     | safe     | knizhnik |
invoker  |
   | internal | now         | current transaction time
(1 row)

As a result using now() in query disable parallel execution while
transaction_timestamp allows it.
Was it done intentionally or it is just a bug?

--
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2018-10-05 13:31:18 Re: Relax transactional restrictions on ALTER ENUM ... ADD TYPE (redux)
Previous Message Peter Eisentraut 2018-10-05 13:26:27 Re: automatic restore point