列のタイプと長さのサイズを参照して、予想されるテーブルサイズを取得することを探しています。私はpg_column_size
これに使用しようとしています。
関数をテストしたところ、この関数に何か問題があるように思われることに気づきました。
からの結果値は、同じ文字列のpg_column_size(...)
からの戻り値よりも小さい場合があります。octet_length(...)
列には数字しかありません。
postgres=# \d+ t5
Table "public.t5"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-------------------+-----------+----------+--------------+-------------
c1 | character varying | | extended | |
Has OIDs: no
postgres=# select pg_column_size(c1), octet_length(c1) as octet from t5;
pg_column_size | octet
----------------+-------
2 | 1
704 | 700
101 | 7000
903 | 77000
(4 rows)
これはバグか何かですか?列の種類とその長さの値から予想されるテーブルサイズを計算するための数式を持っている人はいますか?