Re: [HACKERS] INSERT INTO arr2(array[1].d, array[2].d) - Mailing list pgsql-hackers

From Andres Freund
Subject Re: [HACKERS] INSERT INTO arr2(array[1].d, array[2].d)
Date
Msg-id 20170311211323.hk6fovmcu2qjmchq@alap3.anarazel.de
Whole thread Raw
In response to [HACKERS] INSERT INTO arr2(array[1].d, array[2].d)  (Jim Nasby <jim.nasby@openscg.com>)
List pgsql-hackers
On 2017-03-11 14:43:55 -0600, Jim Nasby wrote:
> Over in [1], I was very surprised to discover $SUBJECT[2]. I looked in the
> docs, and they clearly indicate that INSERT accepts "column names".

They also say "The column name can be qualified with a subfield name or
array subscript, if needed."


> What's the best way to describe this? "column expression"? "field
> expression"?

field expression is the better of the two, but I'm not really convinced
changing.


For reference:
> 1: https://www.postgresql.org/message-id/20170311005810.kuccp7t5t5jhe736@alap3.anarazel.de

> 
> 2:
> CREATE TABLE arr(d int[]);
> CREATE TABLE arr2(arr arr)
> INSERT INTO arr2(arr[1].d, arr[2].d) VALUES(ARRAY[1,2],ARRAY[3,4]) RETURNING
> *
> ┌───────────────────────────────┐
> │              arr              │
> ├───────────────────────────────┤
> │ {"(\"{1,2}\")","(\"{3,4}\")"} │
> └───────────────────────────────┘

- Andres



pgsql-hackers by date:

Previous
From: Jim Nasby
Date:
Subject: Re: [HACKERS] How to get the 'ctid' from a record type?
Next
From: Andres Freund
Date:
Subject: Re: [HACKERS] How to get the 'ctid' from a record type?