row->ARRAY or row->table casting? - Mailing list pgsql-general

From Nico Sabbi
Subject row->ARRAY or row->table casting?
Date
Msg-id 46FD1FC2.4090304@officinedigitali.it
Whole thread Raw
Responses Re: row->ARRAY or row->table casting?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Hi,
is there any way to cast a generic row to an array or to a table type?

The example is trivial, but it explains what I'm trying to do:

nb1=# select * from tab1;
 a | t
---+---
 1 | a
 2 | b
 3 | c
(3 rows)


nb1=# select r from (select row(tab1.*) as r from tab1)x;
   r
-------
 (1,a)
 (2,b)
 (3,c)
(3 rows)

nb1=# select r[1] from (select row(tab1.*) as r from tab1)x;
ERROR:  cannot subscript type record because it is not an array

nb1=# select (r::tab1).a from (select row(tab1.*) as r from tab1)x;
ERROR:  cannot cast type record to tab1

The real use case is much more complex than this example of course :)

pgsql-general by date:

Previous
From: Ted Byers
Date:
Subject: Re: How to avoid: 9.50184e+06
Next
From: Mike Charnoky
Date:
Subject: more problems with count(*) on large table