Re: Accommodating alternative column values - Mailing list pgsql-general

From David G. Johnston
Subject Re: Accommodating alternative column values
Date
Msg-id CAKFQuwYmt-UmO_WaqZ-mhS+nBEm35kKy_CyCSu6Zqpam4ypxcQ@mail.gmail.com
Whole thread Raw
In response to Re: Accommodating alternative column values  (Rich Shepard <rshepard@appl-ecosys.com>)
List pgsql-general
On Wed, Jul 3, 2024 at 7:13 AM Rich Shepard <rshepard@appl-ecosys.com> wrote:
On Wed, 3 Jul 2024, David G. Johnston wrote:

> Yeah, the simply cast suggested will not work. You’d have to apply an
> expression that turns the current contents into an array. The current
> contents are not likely to be an array literal.

David,

No, it's not now an array.

I thought that this expression would work, but it doesn't:
bustrac=# alter table people alter column email set data type varchar(64)[] using email::varchar(64)[];
RROR:  malformed array literal: "frank@dmipx.com"
DETAIL:  Array value must start with "{" or dimension information.

If I correctly understand the error detail I'd need to change the contents
of that column for all 1280 rows to enclose the contents in curly braces
before I can convert the datatype to an array. Is that correct?


Assuming today there is only one email per row, no, see Torsten's reply.

You also wouldn't need to perform an update..."using ('{' || email || '}')::text[]" if just doing that...

David J.

pgsql-general by date:

Previous
From: Torsten Förtsch
Date:
Subject: Re: Accommodating alternative column values
Next
From: "Peter J. Holzer"
Date:
Subject: Re: Accommodating alternative column values