> 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...