alemagox(at)gmail(dot)com wrote:
> SELECT format_type(a.atttypid, a.atttypmod)
> FROM pg_attribute a
> JOIN pg_class b ON (a.attrelid = b.relfilenode)
> JOIN pg_namespace c ON (c.oid = b.relnamespace)
> WHERE b.relname = 'test' AND c.nspname = 'ab' AND a.attname = 'id';
pg_attribute.attrelid must be joined to pg_class.oid, not relfilenode.
The relfilenode changes when the table is rewritten, which happens
during some forms of ALTER TABLE and others.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services