Re: data type change on a view - Mailing list pgsql-general

From Tom Lane
Subject Re: data type change on a view
Date
Msg-id 26126.1197496575@sss.pgh.pa.us
Whole thread Raw
In response to Re: data type change on a view  (Andreas Kretschmer <akretschmer@spamfence.net>)
Responses Re: data type change on a view
List pgsql-general
Andreas Kretschmer <akretschmer@spamfence.net> writes:
>> cast it to varchar(8):

> As i said in a private mail to Scott (sorry): the suggested way don't
> work, at least with 8.1. Maybe this works better in more recent
> versions.

Yes, it works a lot better in 8.2:
http://archives.postgresql.org/pgsql-committers/2006-08/msg00222.php

If you really need the right output type in 8.1, you could force the
issue with an extra level of sub-select:

regression=# create table foo (f1 varchar(8));
CREATE TABLE
regression=# create view voo as select f1::varchar(8) from (select * from foo union select * from foo) ss;
CREATE VIEW
regression=# \d voo
            View "public.voo"
 Column |         Type         | Modifiers
--------+----------------------+-----------
 f1     | character varying(8) |
View definition:
 SELECT ss.f1::character varying(8) AS f1
   FROM ( SELECT foo.f1
           FROM foo
UNION
         SELECT foo.f1
           FROM foo) ss;


            regards, tom lane

pgsql-general by date:

Previous
From: Ivan Sergio Borgonovo
Date:
Subject: Re: Extract last 4 characters from string?
Next
From: "D. Dante Lorenso"
Date:
Subject: Re: Extract last 4 characters from string?