More closeCursor tweaks to recommendation job, a=chris

Chris Pollett [2022-12-15 20:Dec:th]
More closeCursor tweaks to recommendation job, a=chris
Filename
src/library/media_jobs/RecommendationJob.php
diff --git a/src/library/media_jobs/RecommendationJob.php b/src/library/media_jobs/RecommendationJob.php
index fc8ad40f4..6ccf7d067 100644
--- a/src/library/media_jobs/RecommendationJob.php
+++ b/src/library/media_jobs/RecommendationJob.php
@@ -1285,12 +1285,15 @@ class RecommendationJob extends MediaJob
             $sql = "SELECT VECTOR FROM RECOMMENDATION_TERM_EMBEDDING " .
                 "WHERE ITEM_TYPE = ? AND ID = ? " . $db->limitOffset(1);
             $result = $db->execute($sql, [$item_type, $term_id]);
-            $row = $db->fetchArray($result);
-            $db->closeCursor($result);
+            $row = null;
+            if ($result) {
+                $row = $db->fetchArray($result);
+            }
             if (!$row || !is_string($row['VECTOR'])) {
                 $term_embedding = pack("E*", ...array_fill(1,
                     C\EMBEDDING_VECTOR_SIZE, 0.0));
             } else {
+                $db->closeCursor($result);
                 $term_embedding = base64_decode($row['VECTOR'], true);
             }
         }
@@ -1322,8 +1325,11 @@ class RecommendationJob extends MediaJob
                 "(?, ?, ?) $on_conflict SET VECTOR = ?";
             $vector = base64_encode($evicted_item[1]);
             $db->pre_message = "$message {$evicted_item[0]} was evicted";
-            $db->execute($sql, [$evicted_item[0], $item_type,
+            $result = $db->execute($sql, [$evicted_item[0], $item_type,
                 $vector, $vector]);
+            if ($result) {
+                $db->closeCursor($result);
+            }
         }
     }
     /**
ViewGit