char(n)のnをアプリケーションから取得する - 象と戯れ - postgresqlグループ.
不慣れな入力系を作っているのですが、char(n)なカラムの最大長チェックを行う場合、どうやるのが一般的なんでしょうか。

attypemodを直接読み解く方法を使っているけど、あれは内部表現であって、外から使うのは本来ダメでしょう。ここはやはり正当にinformation schemaを使えばいいわけで。
yutaka=# create table test4(a char(1),b varchar(2),c varchar(6));
CREATE TABLE
yutaka=# select table_name,column_name,data_type,character_maximum_length from information_schema.columns where table_name='test4';
table_name | column_name |     data_type     | character_maximum_length
------------+-------------+-------------------+--------------------------
test4      | a           | character         |                        1
test4      | c           | character varying |                        6
test4      | b           | character varying |                        2
(3 rows)

とまあ、こんな感じに求まります。これなら標準なので、他のDBにも応用が利くわけで。

どこまで行っても標準が参考以上の役に立つことのなさそうなSQLで標準にそったところでどの程度の価値があるかは問わない方向で。