[pgsql-jp: 28036] Re: Polygon型カラムにインデックスが作成できない

Isamu Zakoji zako @ fal.co.jp
2002年 11月 20日 (水) 12:23:16 JST


座光寺@ファルコンです。

abe-h @ shinetsu-tecsys.co.jp wrote:
> 
> データ投入済み状態でインデックスを作成しようとすると、
> ERROR:  index_formtuple: data takes 20264 bytes, max is 8191
> となってしまい、インデックス作成後データ投入をすると
> ERROR:  copy: line 1, index_formtuple: data takes 20264 bytes, max is 8191
> となってしまいます。
> 
indexタプルのサイズは、0x1FFF(8191bytes)に制限されています。
 src/include/access/itup.h:71
# indexタプルにもTOASTって適用されるのでしょうか?>>識者の方

それに「poly_ops」って結局は、そのポリゴンの外接矩形でのunionやintersect
しかチェックしてないです。
 src/backend/access/rtree/rtproc.c:100〜
なので、ポリゴン同士の正確な重なりはチェックされていないと思います。

自分は、box_opsを使ってポリゴンデータとは別に外接矩形のboxデータを付加す
る形でrtreeを利用していますし、以前インデックス上でポリゴンの正確な重なり
や包含をチェックするデータ型を作ってみたこともありますが、インデックスに
ポリゴンの全構成点を格納する必要があり、上記indexタプルサイズの制約から
小さなポリゴンしか管理できず、挫折したことがあります。

ご参考になれば幸いです。

-- 
========================================
 FALCON Corporation Zakoji Isamu
 TEL:052-221-7556  FAX:052-221-7595
 zako @ fal.co.jp or zako @ ma.nma.ne.jp
========================================



pgsql-jp メーリングリストの案内