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.
pgpquSBcno7K4.pgp
Description: PGP signature