In unserer Software verwenden wir immer noch postgresql 8.4. Auf Archlinux konnte ich keine Möglichkeit finden, 8.4 zu installieren, also habe ich eine Aufgabe mit 9.5 gestartet und wollte sie danach in 8.4 übersetzen. Jetzt kann ich die UPDATE-Abfrage für beide Versionen ausführen, aber ich bekomme unterschiedliche Ergebnisse.update Ergebnisse in postgresql 8.4 und 9.5 sind unterschiedlich
Abfrage:
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]'));
-Workflow ist, dass ich die Datenbank und Dump das gleiche SQL-Dump in beiden Versionen reinit.
Auf 8.4 zeigt die Nachricht "UPDATE 2689816" und auf 9.5 heißt es "UPDATE 241294".
Als ich
SELECT count(*)
FROM properties
WHERE properties_id in
(SELECT DISTINCT(properties_id)
FROM regexp_matches(propertyvalue, E'[\\u0001-\\u001f]'));
laufen bekomme ich das gleiche Ergebnis mit beiden Versionen:
count
--------
241294
(1 row)
Das ist, was mich verwirrt die meisten. Warum scheint regexp_matches das Muster anders zu interpretieren als regexp_replace?
Hat jemand Erfahrung mit der Angelegenheit?