View with duplicate GROUP BY entries - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject View with duplicate GROUP BY entries
Date
Msg-id CAFjFpRfN4+b8JazddPzRdEO9-jwEhp9496y-0LB_ff0oht37UA@mail.gmail.com
Whole thread Raw
Responses Re: View with duplicate GROUP BY entries  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi All,
While reviewing patch for similar problem in postgres_fdw [1], I
noticed that we don't use positional notation while creating the view.
This might introduced anomalies when GROUP BY entries are
non-immutable.

E.g.
postgres=# create view aggv as select c2 c21, c2 c22 from t1 group by 1, 2;
postgres=# \d+ aggv                           View "public.aggv"Column |  Type   | Collation | Nullable | Default |
Storage| Description
 
--------+---------+-----------+----------+---------+---------+-------------c21    | integer |           |          |
    | plain   |c22    | integer |           |          |         | plain   |
 
View definition:SELECT t1.c2 AS c21,   t1.c2 AS c22  FROM t1 GROUP BY t1.c2, t1.c2;

That's not a problematic case, but following is

create view aggv_rand as select random() c21, random() c22 from t1
group by 1, 2;
CREATE VIEW
postgres=# \d+ aggv_rand                             View "public.aggv_rand"Column |       Type       | Collation |
Nullable| Default | Storage
 
| Description
--------+------------------+-----------+----------+---------+---------+-------------c21    | double precision |
 |          |         | plain   |c22    | double precision |           |          |         | plain   |
 
View definition:SELECT random() AS c21,   random() AS c22  FROM t1 GROUP BY (random()), (random());

Notice four instances of random() instead of two in the original definition.

What is printed in \d+ output also goes into dump file, so when such a
view is restored, it will have a different behaviour that the intended
one.

[1] http://postgr.es/m/10660.1510093781@sss.pgh.pa.us

-- 
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company


pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: Failed to delete old ReorderBuffer spilled files
Next
From: Michael Paquier
Date:
Subject: Re: [HACKERS] proposal: Support Unicode host variable in ECPG