Re: [HACKERS] INSERT INTO arr2(array[1].d, array[2].d)

2017-03-11 Thread Andres Freund
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.kuccp7t5t5jhe...@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


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] INSERT INTO arr2(array[1].d, array[2].d)

2017-03-11 Thread Jim Nasby
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".


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


1: 
https://www.postgresql.org/message-id/20170311005810.kuccp7t5t5jhe...@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}\")"} │
└───┘
--
Jim Nasby, Chief Data Architect, OpenSCG
http://OpenSCG.com


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers