Thread: field definitions in view results?

field definitions in view results?

From
Klint Gore
Date:
I'm having a problem that when I do a view with union between 2 tables
that have varchar(8) fields, that the (8) seems to be missing from the
result.

e.g. create table t1 (astr varchar(8));
     create table t2 (astr varchar(8));
     create view v1 as select * from t1 union select * from t2;
     insert into t1 values ('STR');

in psql, "\d v1" gives "character varying" for the type.

Is there any way to get the (8) limit on the view result without doing
  create view v1 as
      select cast(v2.astr as varchar(8)) as astr
      from (select * from t1 union select * from t2) v2

pg 7.4.7 on redhat linux 9.

klint.

+---------------------------------------+-----------------+
: Klint Gore                            : "Non rhyming    :
: EMail   : kg@kgb.une.edu.au           :  slang - the    :
: Snail   : A.B.R.I.                    :  possibilities  :
: Mail      University of New England   :  are useless"   :
:           Armidale NSW 2351 Australia :     L.J.J.      :
: Fax     : +61 2 6772 5376             :                 :
+---------------------------------------+-----------------+

Re: field definitions in view results?

From
Tom Lane
Date:
Klint Gore <kg@kgb.une.edu.au> writes:
> Is there any way to get the (8) limit on the view result without doing
>   create view v1 as
>       select cast(v2.astr as varchar(8)) as astr
>       from (select * from t1 union select * from t2) v2

No.  This is an open issue for 8.1, see
http://archives.postgresql.org/pgsql-general/2004-12/msg00508.php
http://archives.postgresql.org/pgsql-hackers/2004-12/msg00408.php

            regards, tom lane