I have found an odd behavior --- a query in the target list that assigns
to a partitioned column causes queries that would normally be volatile
to return always zero.

In the first query, no partitioning is used:

         d1 | d2
        ----+----
          1 |  0
          2 |  0
          2 |  1
          1 |  0
          1 |  2
          1 |  2
          1 |  0
          0 |  2
          2 |  0
          2 |  2

In the next query, 'd1' is a partition key and it gets a constant value
of zero for all rows:

         d1 | d2
        ----+----
-->       0 |  1
-->       0 |  2
          0 |  2
          0 |  1
          0 |  2
          0 |  1
          0 |  2
          0 |  2
          0 |  2
          0 |  2

The self-contained query is attached.  The value is _always_ zero, which
suggests random() is not being called;  calling setseed() does not
change that.  If I change "SELECT x" with "SELECT 2", the "2" is used. 
I see this behavior back to PG 11.

-- 
  Bruce Momjian  <br...@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

Embrace your flaws.  They make you human, rather than perfect,
which you will never be.

Attachment: partition_test.sql
Description: application/sql

Reply via email to