[pgsql-jp: 40369] ver8.4でのunionの非互換について

Masahiro Kato kato @ ndkcom.co.jp
2010年 9月 8日 (水) 09:47:29 JST


はじめましてカトウといいます。
posgresqlを8.3から8.4にバージョンアップしたら
server closed the connection unexpectedly
のエラーになります。8.3では同じsqlでも動作します。

744バイトのsql文を短くしたら正常に動作するのですが、
他の2450バイトの長いsqlは動作するので、長さだけが
原因ではありませんでした。

解決のヒントを教えていただければ助かります。

SELECT COUNT(*) AS tmp_count
  FROM (
 SELECT
  DISTINCT col_col_number AS tmp_number
 FROM CollectiveItem
  WHERE
  (col_parent = '1' OR (col_parent = '0' AND col_number <> col_col_number))
  AND col_dpm_code = 2
  AND (col_kind = 0 OR col_kind = 1)
  AND ((col_title %% '2') OR (col_title_kana %% '2') OR (col_title_eng %% 
'2') OR (col_subtitle %% '2') OR (col_subtitle_kana %% '2'))
 UNION SELECT
  DISTINCT col_number AS tmp_number
 FROM CollectiveItem
  WHERE
  (col_parent = '0' AND col_number = col_col_number)
  AND col_dpm_code = 2
  AND (col_kind = 0 OR col_kind = 1)
  AND ((col_title %% '2') OR (col_title_kana %% '2') OR (col_title_eng %% 
'2') OR (col_subtitle %% '2') OR (col_subtitle_kana %% '2'))
  ) a

1. OR (col_subtitle %% '2') OR (col_subtitle_kana %% '2') を削除すれば正常に動作する。
2. AND col_dpm_code = 2 を削除すれば正常に動作する。

8.3ではludia-1.5.2ですが、8.4ではtextsearch_sena-8.4.5を使っています。

よろしくお願いします。





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