Re: [HACKERS] Naming of ORDINALITY column

2013-06-25 Thread Dean Rasheed
On 24 June 2013 04:29, Josh Berkus j...@agliodbs.com wrote:
 On 06/23/2013 08:00 PM, Andrew Gierth wrote:
 OK, let's try to cover all the bases here in one go.

 1. Stick with ?column? as a warning flag that you're not supposed to
 be using this without aliasing it to something.

 How do I actually supply an alias which covers both columns?  What does
 that look like, syntactically?


There are a number of possible syntaxes:

SELECT unnest, ?column? FROM unnest(ARRAY['x','y']) WITH ORDINALITY;
or
SELECT unnest.unnest, unnest.?column? FROM unnest(ARRAY['x','y'])
WITH ORDINALITY;
 unnest | ?column?
+--
 x  |1
 y  |2
(2 rows)


SELECT t, ?column? FROM unnest(ARRAY['x','y']) WITH ORDINALITY AS t;
or
SELECT t.t, t.?column? FROM unnest(ARRAY['x','y']) WITH ORDINALITY AS t;
 t | ?column?
---+--
 x |1
 y |2
(2 rows)


SELECT val, ?column? FROM unnest(ARRAY['x','y']) WITH ORDINALITY AS t(val);
or
SELECT t.val, t.?column? FROM unnest(ARRAY['x','y']) WITH ORDINALITY
AS t(val);
 val | ?column?
-+--
 x   |1
 y   |2
(2 rows)


SELECT val, ord FROM unnest(ARRAY['x','y']) WITH ORDINALITY AS t(val, ord);
or
SELECT t.val, t.ord FROM unnest(ARRAY['x','y']) WITH ORDINALITY AS t(val, ord);
 val | ord
-+-
 x   |   1
 y   |   2
(2 rows)

My suggestion was to replace ?column? with ordinality wherever it
appears above, for the user's convenience, but so far more people
prefer ?column? as a way of indicating that you're supposed to
provide an alias for the column.

If that's what people prefer, I don't mind --- it's still going to be
a very handy new feature.

Regards,
Dean


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


Re: [HACKERS] Naming of ORDINALITY column

2013-06-23 Thread Josh Berkus
On 06/23/2013 08:00 PM, Andrew Gierth wrote:
 OK, let's try to cover all the bases here in one go.

 1. Stick with ?column? as a warning flag that you're not supposed to
 be using this without aliasing it to something.

How do I actually supply an alias which covers both columns?  What does
that look like, syntactically?

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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