On Fri, Sep 3, 2010 at 7:21 AM, Steve Clark <sclark@netwolves.com> wrote:
> Hello List,
>
> I want to change some columns in a database
> that were originally created as char varying to
> inet.
>
> When I try I get an error. Is there anyway to work
> around this?
>
> See below for table definition.
>
> Table "public.kernel_gre"
> Column | Type | Modifiers
> -----------------+-----------------------+---------------
> interface | character varying(15) | not null
> source_ip | character varying(16) |
> dest_ip | character varying(16) |
> physical_ip | character varying(16) |
> status | boolean | default false
> physical_src_ip | character varying(16) |
> tunnel_netmask | character varying(16) |
> key | character varying(32) |
> state | boolean | default false
> broadcast | boolean | default false
>
> alter TABLE kernel_gre ALTER COLUMN source_ip TYPE inet;
> ERROR: column "source_ip" cannot be cast to type "inet"
>
Try
alter TABLE kernel_gre ALTER COLUMN source_ip TYPE inet using source_ip::inet
--
To understand recursion, one must first understand recursion.