This function seems to be case-sensitive on tablename (php-4.3.1)
The Array returned is of the following structure
['field name'] => Array
(
['num'] => Field number starting at 1
['type'] => data type, eg varchar, int4
['len'] => internal storage size of field. -1 for varying
['not null'] => boolean
['has default'] => boolean
)
......
for Varied size datatypes (varchar, text, etc)
you can get the max data length from the system table pg_attribute.atttypmod -4
eg.
select attnum, attname , atttypmod -4 as field_len
from pg_attribute, pg_class
where relname='$tablename'
and attrelid=relfilenode
and attnum>=1