Raghavendra <raghavendra.rao@xxxxxxxxxxxxxxxx> writes: > On Wed, Sep 7, 2011 at 8:50 PM, shuaixf <shuaixf@xxxxxxxxx> wrote: >> According to pg_class, pg_attribute, pg_type, I can get the tablename, >> column name, column type >> however, how to get the length of columns of a table by system >> tables/views? > select pg_column_size(name) from tb; That would provide the physical size of individual values. I think what the OP was after was how to get the declared length limit of a column. That's encoded in pg_attribute.atttypmod. Rather than hard-wiring knowledge of the way it's encoded, it's best to rely on format_type(), which knows the rules: regression=# \d varchar_tbl Table "public.varchar_tbl" Column | Type | Modifiers --------+----------------------+----------- f1 | character varying(4) | regression=# select format_type(atttypid, atttypmod) from pg_attribute where attrelid = 'varchar_tbl'::regclass and attname = 'f1'; format_type ---------------------- character varying(4) (1 row) regards, tom lane -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin