It appears that when you create a view of a union, numeric data types
loose their scale and precision.

db=> create table t1 (c1 numeric(4,2));
CREATE TABLE

db=> create view v1 as select c1 from t1;
CREATE VIEW

db=> \d v1
          View "brian.v1"
 Column |     Type     | Modifiers
--------+--------------+-----------
 c1     | numeric(4,2) |
View definition:
 SELECT t1.c1
   FROM t1;


db=> create view v2 as select c1 from t1 union select c1 from t1;
CREATE VIEW
db=> \d v2
       View "brian.v2"
 Column |  Type   | Modifiers
--------+---------+-----------
 c1     | numeric |
View definition:
 SELECT t1.c1
   FROM t1
UNION
 SELECT t1.c1
   FROM t1;

db=> create view v3 as select c1::numeric(4,2) from t1 union select 
c1::numeric(4,2) from t1;
CREATE VIEW

db=> \d v3
       View "brian.v3"
 Column |  Type   | Modifiers
--------+---------+-----------
 c1     | numeric |
View definition:
 SELECT t1.c1
   FROM t1
UNION
 SELECT t1.c1
   FROM t1;


-- 
Brian C. DeRocher @ Mitretek Systems
This email was signed using OpenPGP.

Attachment: pgpquSBcno7K4.pgp
Description: PGP signature

Reply via email to