update ARRAY of COMPOSITE TYPE of text - Mailing list pgsql-general

From Wojciech Skaba
Subject update ARRAY of COMPOSITE TYPE of text
Date
Msg-id 519DE415.2070207@teleadreson.pl
Whole thread Raw
Responses Re: update ARRAY of COMPOSITE TYPE of text  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
I did:

CREATE TYPE telephone AS (
area text,
number text,
ext text
);

Then:

CREATE TABLE directory (
id integer,
tel telephone,
faxes telephone[]
);

After some data has been entered, I tried:

UPDATE directory SET tel = ROW('11', '2222222', '333') WHERE id = 1;
UPDATE directory SET faxes[1] = ROW('11', '2222222', '333') WHERE id = 1;

both worked fine, but:

UPDATE directory SET faxes = ARRAY[ROW('11', '2222222', '333'), ROW('44', '555', '666')] WHERE id = 1;

has failed: (You will need to rewrite or cast the expression) with arrow pointing to ARRAY.

Does anybody know how to overcome it?

Please note, I'm not seeking an alternative, as I can still do the following:

UPDATE directory SET faxes = '{(11\,2222222\,333),(44\,555\,666)}' WHERE id=1;

I would like, however, do the same with ARRAY/ROW.

W



pgsql-general by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: [pgeu-general] Replication failover
Next
From: Neeraj Rai
Date:
Subject: - pgaql long value corrupted using htons