[pgsql-jp: 37736] LIKE句による前方一致検索のエラー(invalid memory alloc request size)

Eisuke.Ooba e.ooba @ cbo.mss.co.jp
2006年 12月 1日 (金) 13:57:46 JST


三菱スペース・ソフトウエア(株) 大場と申します。

初めてこちらのメーリングリストに投稿させて頂きます。
よろしくお願いいたします。

PostgreSQL 8.1.4 Windows版で、下記のような不具合らしき現象を
発見したのですが、解決方法がみつからず悩んでいます。

本メーリングリストの
[pgsql-jp: 34645] LIKEで前方一致検索をした際にエラーになる現象 
waya pgsql-jp @ ml.postgresql.jp 
Fri, 14 Jan 2005 17:54:50 +0900

でも同様の不具合と思われる報告がされていますが、原因、解決方法
などに関するレスが付いておりませんでした。
もし、何か情報をお持ちの方いらっしゃいましたら、ご教示頂けると
幸いです。

[現象の内容]
前方一致による検索を実行したいのですが、like句を使ったselect文
の実行で、PostgreSQL内のメモリ確保の失敗が原因と思われるエラー
が発生しています。

以下はDBスーパーユーザでpsqlよりDBに接続して、問題の現象を再現
したときの様子です。
念のため、vacuum full analyzeをかけた後に実行しています。

マシン機種、OS、PostgreSQLのバージョン、設定(postgresql.conf)、
スキーマ、レコード登録内容が全く同じでも、あるマシンでは再現
するが、別のマシンでは再現しないといった状況です。

cocoprico=# vacuum full analyze;
VACUUM

cocoprico=# select id, regist_datetime, reserve_date, name from sample_table where name = '新潟花子';
    id    |      regist_datetime       | name
----------+----------------------------+----------
 82000249 | 2006-11-22 14:44:10.53+09  | 新潟花子
 06000220 | 2006-11-22 14:27:23.622+09 | 新潟花子
(2 rows)

cocoprico=# select id, regist_datetime, name from sample_table where name like '新潟%';
ERROR:  invalid memory alloc request size 2147483648

cocoprico=# select count(*) from sample;
 count
-------
    57
(1 row)

[スキーマ情報]
DBエンコーディング :UTF-8
検索対象テーブル   :概ね下記のような構造ですが、テーブル、
カラム名は実際の名前とは変えて記載しております。
create table sample_table(
   id                 text                       PRIMARY KEY,
   reserve_date       timestamp with time zone,
   regist_datetime    timestamp with time zone   NOT NULL,
   name              text,
   
   ... (他、text型のカラムがいくつか有り、合計88カラム)
)
登録レコード数     :57
登録データのサイズ :各カラム128バイト以内

[環境]
OS      :WindowsXP SP2
Version :PostgreSQL 8.1.4 Windows 日本語版
          (postgresql-8.1.4-1-ja)


よろしくお願いいたします。

                                                      以上

----------------------------------------
 三菱スペース・ソフトウエア(株)
 関西事業部 第四技術部 第二課
 
 大場 英輔(Eisuke.Ooba)
 
 e-mail  :e.ooba @ cbo.mss.co.jp
 Tel     : (06) 4961-8854    
 Fax     : (06) 4961-8820
-----------------------------------------



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