[pgsql-jp: 34070] Re: データサイズの取得方法
Tatsuo Ishii
t-ishii @ sra.co.jp
2004年 10月 6日 (水) 12:48:27 JST
石井です.
> > とりあえず、「atttypmodの値 - 4」が宣言時に指定したバイト数であろう
> > という推定で使用しています。
> > 質問1.この「4」という値は変わらないものなのでしょうか?
> > (既に、PostgreSQLのバージョンが違うと4という数値も変わっている
> > という実績があるとか、大きな設計変更がない限り、なかなか変わらないで
> > あろう数値なのか...といった感じの質問です)
>
> というか、その数式自体がPostgreSQLの内部構造に関わる部分なので、バージョ
> ンごとに変更される可能性があります。ただ、私の知る限りでは今のところ変更
> された事例はないです。
どのみち7.4以降ではINFORMATION_SCHEMAに問い合わせるのが正しいので,と
りあえず7.2を使い続けるなら「4」決めうちでもよいのではないでしょうか.
ちなみに,INFORMATION_SCHEMAを使う場合は以下のようになります(t1.tは
varchar(3)で定義).
test=# SELECT * FROM information_schema.columns WHERE table_name = 't1';
-[ RECORD 1 ]------------+------------------
table_catalog | test
table_schema | public
table_name | t1
column_name | t
ordinal_position | 1
column_default |
is_nullable | YES
data_type | character varying
character_maximum_length | 3 <-----------------これ
character_octet_length | 1073741824
[以下略]
--
Tatsuo Ishii
pgsql-jp メーリングリストの案内