Thread: How to get the size of non fixed-length field from system catalog ?
Hi, I'm writing a small ORM tool and have written a number of queries to retrieve table metadata. One piece of data that I'm having trouble hunting down is the size of a CHAR field. For example, one table has a 'user_id' column of type CHAR(36). But when I look at the pg_attribute and pg_type tables, I can't seem to find this size value of 36. Can anyone share the SQL that returns the size of a CHAR? It is NOT the 'typlen' column. The answer may be the 'typelem' column, but I can't find details on how to decode it. Thanks.
Postgres User wrote on 08.06.2009 23:03: > Hi, > > I'm writing a small ORM tool and have written a number of queries to > retrieve table metadata. One piece of data that I'm having trouble > hunting down is the size of a CHAR field. For example, one table has > a 'user_id' column of type CHAR(36). But when I look at the > pg_attribute and pg_type tables, I can't seem to find this size value > of 36. > > Can anyone share the SQL that returns the size of a CHAR? It is NOT > the 'typlen' column. The answer may be the 'typelem' column, but I > can't find details on how to decode it. > Use the information_schema, that is easier: SELECT character_maximum_length FROM information_schema.columns WHERE table_name = 'your_table' AND column_name = 'the_char_column'; http://www.postgresql.org/docs/8.3/static/infoschema-columns.html Thomas