Hi Merlin, I needed this because, I use postgres backend along with golang using pgx driver. When i query address i need to specify OID of address[](composite type). In my case i couldnt find the oid of that type since its dynamic. Needed generic type so needed to cast to record[] which has constant oid.
With regards Suresh kumar R On Fri, 4 Mar, 2022, 11:28 pm Merlin Moncure, <mmonc...@gmail.com> wrote: > On Thu, Mar 3, 2022 at 4:01 AM Suresh Kumar R > <suresh.arsena...@gmail.com> wrote: > > > > Hi, I created an table with composite type array as datatype for one > column. > > When I query that table I need the pg_typeof(column) as record[] instead > of > > composite_type[]. > > I tried creating a separate function and returning record[], but below > error > > is thrown, > > > > ERROR: PL/pgSQL functions cannot return type record[] > > > > Below is sample for my requirement. > > > > pali=# create type address as (number bigint, city varchar); > > CREATE TYPE > > pali=# create table person(name varchar, addresses address[]); > > CREATE TABLE > > pali=# insert into person values ('Michael', array[(82, 'NYC'),(24, > > 'Dunkirk')]::address[]); > > INSERT 0 1 > > pali=# select pg_typeof(addresses::record[]) from person ; > > pg_typeof > > ----------- > > address[] > > > > Here I expect record[] instead of address[]. > > > Why do you think you need this? If you need variant record storage, > you probably want to go to jsonb, then use jsonb_populate_recordset to > convert back to specific type. > > merlin >