Actions
Fehler #483
closedUpgrade-Skript: delete_cvars_on_trans_deletion_add_shipto löscht alle custom_variables
Status:
Gelöst
Priority:
Sofort
Assignee:
-
Target version:
-
Start date:
08/09/2021
Due date:
% Done:
0%
Estimated time:
Description
Vorher:
# select count(*) from custom_variables; count -------- 669451
Eigentlich sollten nur die weg:
- (SELECT cv.id FROM custom_variables cv LEFT JOIN custom_variable_configs cvc ON (cv.config_id = cvc.id)
- WHERE module LIKE 'ShipTo'
- AND NOT EXISTS (SELECT shipto_id FROM shipto WHERE shipto_id = cv.trans_id));
(688 rows)
In Kombination mit dem DELETE werden aber alle Einträge gelöscht:
- DELETE FROM custom_variables WHERE EXISTS
- (SELECT cv.id FROM custom_variables cv LEFT JOIN custom_variable_configs cvc ON (cv.config_id = cvc.id)
- WHERE module LIKE 'ShipTo'
- AND NOT EXISTS (SELECT shipto_id FROM shipto WHERE shipto_id = cv.trans_id));
DELETE 669451
WHERE EXISTS is nur ein Boolean-Wert, d.h. sollte irgendein verwaister ShipTo Eintrag vorhanden sein, entferne einfache alle BDVs
S.a.:
https://www.postgresql.org/docs/8.1/functions-subquery.html
Updated by Jan Büren over 3 years ago
Damit passt es:
select count (*) from custom_variables where id in (SELECT cv.id FROM custom_variables cv LEFT JOIN custom_variable_configs cvc ON (cv.config_id = cvc.id) WHERE module LIKE 'ShipTo' AND NOT EXISTS (SELECT shipto_id FROM shipto WHERE shipto_id = cv.trans_id));
Updated by Jan Büren over 3 years ago
- Priority changed from Normal to Sofort
Das ist ein kritischer und etwas subtiler Bug und betrifft das aktuelle Release.
Vorschlag: 3.5.8 zeitnah veröffentlichen
Updated by Jan Büren over 3 years ago
Mit Commit #dc59476f, wird es dann besser gemacht.
Vorher:
# select count(*) from custom_variables; count -------- 671796 (1 row)
Nachher:
# select count(*) from custom_variables; count -------- 671108 (1 row)
Actions