One should actually use an UPDATE statement that does what one desires.
authordbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Wed, 15 Jul 2009 20:23:09 +0000 (20:23 +0000)
committerdbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Wed, 15 Jul 2009 20:23:09 +0000 (20:23 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/trunk@581 6d9bc8c9-1ec2-4278-b937-99fde70a366f

tools/circ_date_to_expire_date.pl

index 36a3bc6..50492ed 100644 (file)
@@ -53,19 +53,15 @@ sub end_of_day {
                ORDER BY au.expire_date
 STMT
 
-       my $update_stmt = <<UPDATE;
-               UPDATE action.circulation SET due_date = au.expire_date
-               FROM actor.usr au
-               WHERE action.circulation.id IN (
-                       SELECT aoc.id
-                       FROM actor.usr au
-                       INNER JOIN action.circulation aoc ON aoc.usr = au.id
-                       WHERE aoc.due_date > au.expire_date 
-                       AND au.expire_date > NOW() 
-                       AND au.expire_date < NOW() + '2 years'::interval 
-                       AND au.home_ou IN (103, 110, 126)
-                       AND aoc.checkin_time IS NULL
-               )
+        my $update_stmt = <<UPDATE;
+                UPDATE action.circulation ac SET due_date = au.expire_date
+                FROM actor.usr au 
+                WHERE au.id = ac.usr
+                        AND ac.due_date > au.expire_date
+                        AND au.expire_date > NOW()
+                        AND au.expire_date < NOW() + '2 years'::interval
+                        AND au.home_ou IN (103, 110, 126)
+                        AND ac.checkin_time IS NULL
 UPDATE