0
私たちのソフトウェアでは、まだpostgresql 8.4を使用しています。 Archlinuxでは、私は8.4をインストールする可能性を見つけることができなかったので、私は9.5でタスクを開始し、それを後で8.4に変換したいと考えました。今は両方のバージョンでUPDATEクエリを実行できますが、結果は異なります。postgresql 8.4と9.5での更新結果が異なる
問合せ:
UPDATE properties
SET propertyvalue = regexp_replace(propertyvalue, E'[\u0001-\u001f]', '', 'g')
WHERE properties_id in
(SELECT DISTINCT(properties_id)
FROM regexp_matches(propertyvalue, E'[\u0001-\u001f]'));
ワークフローは、私は、データベースを再初期化し、両方のバージョンに同じSQLダンプをダンプするということです。
8.4では、「UPDATE 2689816」と表示され、9.5では「UPDATE 241294」と表示されます。最も私を混乱させる何
count
--------
241294
(1 row)
:私は
SELECT count(*)
FROM properties
WHERE properties_id in
(SELECT DISTINCT(properties_id)
FROM regexp_matches(propertyvalue, E'[\\u0001-\\u001f]'));
を実行すると
は、私は両方のバージョンと同じ結果を得ます。 なぜregexp_matchesはregexp_replaceとは違ったパターンを解釈しているようですか?
誰も問題を経験したことはありますか?