From 7d5368075f92384b786ec8d34d88894c7a35b130 Mon Sep 17 00:00:00 2001
From: Andreas Romeyke <andreas.romeyke@slub-dresden.de>
Date: Thu, 19 Sep 2024 20:36:09 +0200
Subject: [PATCH] - fixed view 'non_deleted_aip', also changed to use faster
 'NOT EXISTS', because it uses indices

---
 perl/exit_strategy.pl | 6 ++++--
 perl/t/expected.sql   | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/perl/exit_strategy.pl b/perl/exit_strategy.pl
index 76fffbf..218934c 100644
--- a/perl/exit_strategy.pl
+++ b/perl/exit_strategy.pl
@@ -363,8 +363,10 @@ SQL_INDEX4
 SQL_INDEX5
   my $sql6=<<"SQL_VIEW";
   CREATE VIEW non_deleted_aip(id,ie_id,lza_id,version,dir_path) AS 
-    SELECT * FROM aip WHERE aip.id NOT IN (
-      SELECT aip_id FROM deleted
+    SELECT * FROM aip WHERE NOT EXISTS (
+      SELECT aip_id FROM deleted WHERE aip.id == aip_id
+    ) AND NOT EXISTS (
+      SELECT aip_id FROM purged WHERE aip.id == aip_id
     );
 SQL_VIEW
   my $sth1 = $dbh->prepare($sql1); $sth1->execute() or die "sql problem detected", $dbh->errstr;
diff --git a/perl/t/expected.sql b/perl/t/expected.sql
index 6d47085..ee3c516 100644
--- a/perl/t/expected.sql
+++ b/perl/t/expected.sql
@@ -94,7 +94,9 @@ CREATE INDEX delete_index ON deleted (aip_id);
 CREATE INDEX aip_index2 ON aip (lza_id);
 CREATE INDEX aip_index3 ON aip (ie_id,lza_id);
 CREATE VIEW non_deleted_aip(id,ie_id,lza_id,version,dir_path) AS 
-    SELECT * FROM aip WHERE aip.id NOT IN (
-      SELECT aip_id FROM deleted
+    SELECT * FROM aip WHERE NOT EXISTS (
+      SELECT aip_id FROM deleted WHERE aip.id == aip_id
+    ) AND NOT EXISTS (
+      SELECT aip_id FROM purged WHERE aip.id == aip_id
     );
 COMMIT;
-- 
GitLab