duplicated partial-column assigns allowed by checkInsertTargets

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: duplicated partial-column assigns allowed by checkInsertTargets
Date: 2014-12-04 20:23:42
Message-ID: 20141204202342.GD26945@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

While perusing checkInsertTargets I noticed that it allows duplicated
assignments to the same member of a composite:

alvherre=# create type f as (a int, b int);
CREATE TYPE
alvherre=# create table t (col f);
CREATE TABLE
alvherre=# insert into t (col.a, col.b, col.a) values (42, 43, 44);
INSERT 0 1
alvherre=# select * from t;
col
---------
(44,43)
(1 fila)

If you instead try a duplicate "col", it is rightfully rejected:

alvherre=# insert into t (col, col) values ((42, 43), (44, 43));
ERROR: column "col" specified more than once
LÍNEA 1: insert into t (col, col) values ((42, 43), (44, 43));
^

Isn't this a bit odd?

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2014-12-04 20:32:07 Re: superuser() shortcuts
Previous Message Peter Eisentraut 2014-12-04 20:18:33 Re: superuser() shortcuts