[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 メーリングリストの案内