Real type takes 4 byte storage sizes and double precision takes 8 bytes. I altered a data type from double precision to real and vacuumed DB. But PostgreSQL's data disk usage did not shrinked. And pg_dump size remained same. It seems that real takes 8 byte storage sizes. Here's my environments: CPU: AMD Opteron OS: Solaris 10 PostgreSQL: 8.2.4, compiled w/ Sun CC using 64-bit flags