[pgsql-jp: 40799] tuple offset out of range エラー

貴志順司 jkishi @ mediajob.jp
2011年 5月 26日 (木) 10:57:02 JST


貴志といいます。お教えください。

tuple offset out of range:4101 と言うエラーなんですが、
"tuple offset out of range"でググっても、日本語での結果が
見つかりません。英語では少し見つかりましたが、翻訳して読ん
でも意味がわかりませんでした。

バージョンは、
PostgreSQL 8.1.8 on i686-redhat-linux-gnu, compiled by GCC
 gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-51)

psqlで、以下のSQL文を発行すると上記のエラーになります。

select * from uriage_shousai_tb s
inner join uriage_denpyou_tb u on s.uriage_denpyou_id = u.myid
where u.tantou_id = 25 AND u.tokuisaki_id = 4;

対象のデータは10件存在します。
奇妙なのは、u.tantou_id = 25 AND u.tokuisaki_id = 4
のときだけと言うことです。25と4の組み合わせ以外は正常に
終了します。対象データがあっても無くても。

Vacucm FULL ANALYZE も実行してみましたが、変わりありません。


また、ちょっとバージョンが違いますが、上記データベースのダンプ
をリストアしたものでは、エラーになりませんでした。
PostgreSQL 8.1.10 on i686-pc-linux-gnu, compiled by GCC
 gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-13)


何故、この組み合わせだけ!なんでしょうか・・・
不思議ですね。
よろしくお願いします。
ただし、ネットにつながっていない遠方にあるサーバーなので、
アドバイスいただいてもすぐに試すことができません。
ご了承ください。
現在は、この組み合わせのときだけ実行しないという、対処療法で
凌いでいます。


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