2010年9月 8日

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

はじめましてカトウといいます。
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を使っています。

よろしくお願いします。


投稿者 xml-rpc : 2010年9月 8日 09:47
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/98217
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。