From 681a5658e9b5a96ab51849184fb433080c1a7723 Mon Sep 17 00:00:00 2001
From: Alex Barth <alex_b@53995.no-reply.drupal.org>
Date: Thu, 16 Sep 2010 22:45:04 +0000
Subject: [PATCH] Convert delete queries, some select queries, remove
 _feeds_node_delete() - not necessary anymore.

---
 feeds.module                   | 21 +++++++++++++++------
 includes/FeedsImporter.inc     |  4 +++-
 includes/FeedsSource.inc       |  5 ++++-
 plugins/FeedsHTTPFetcher.inc   |  5 ++++-
 plugins/FeedsNodeProcessor.inc | 29 +----------------------------
 5 files changed, 27 insertions(+), 37 deletions(-)

diff --git a/feeds.module b/feeds.module
index cbd40e1f..6c0142c0 100644
--- a/feeds.module
+++ b/feeds.module
@@ -30,8 +30,11 @@ function feeds_cron() {
   if ($importers = feeds_reschedule()) {
     foreach ($importers as $id) {
       feeds_importer($id)->schedule();
-      $result = db_query("SELECT feed_nid FROM {feeds_source} WHERE id = '%s'", $id);
-      while ($row = db_fetch_object($result)) {
+      $rows = db_select('feeds_source')
+        ->fields('feed_nid')
+        ->condition('id', $id)
+        ->execute();
+      foreach ($rows as $row) {
         feeds_source($id, $row->feed_nid)->schedule();
       }
     }
@@ -396,7 +399,7 @@ function feeds_nodeapi(&$node, $op, $form) {
 function _feeds_nodeapi_node_processor($node, $op) {
   switch ($op) {
     case 'load':
-      if ($result = db_fetch_object(db_query("SELECT imported, guid, url, feed_nid FROM {feeds_node_item} WHERE nid = %d", $node->nid))) {
+      if ($result = db_query("SELECT imported, guid, url, feed_nid FROM {feeds_node_item} WHERE nid = :nid", array(':nid' => $node->nid))->fetch()) {
         $node->feeds_node_item = $result;
       }
       break;
@@ -414,7 +417,9 @@ function _feeds_nodeapi_node_processor($node, $op) {
       break;
     case 'delete':
       if (isset($node->feeds_node_item)) {
-        db_query("DELETE FROM {feeds_node_item} WHERE nid = %d", $node->nid);
+        db_delete('feeds_node_item')
+          ->condition('nid', $node->nid)
+          ->execute();
       }
       break;
   }
@@ -427,11 +432,15 @@ function feeds_taxonomy($op = NULL, $type = NULL, $term = NULL) {
   if ($type =='term' && $term['tid']) {
     switch ($op) {
       case 'delete':
-        db_query("DELETE FROM {feeds_term_item} WHERE tid = %d", $term['tid']);
+        db_delete('feeds_term_item')
+          ->condition('tid', $term['tid'])
+          ->execute();
         break;
       case 'update':
         if (isset($term['importer_id'])) {
-          db_query("DELETE FROM {feeds_term_item} WHERE tid = %d", $term['tid']);
+          db_delete('feeds_term_item')
+            ->condition('tid', $term['tid'])
+            ->execute();
         }
       case 'insert':
         if (isset($term['importer_id'])) {
diff --git a/includes/FeedsImporter.inc b/includes/FeedsImporter.inc
index 57d0e01e..f868496e 100644
--- a/includes/FeedsImporter.inc
+++ b/includes/FeedsImporter.inc
@@ -129,7 +129,9 @@ class FeedsImporter extends FeedsConfigurable {
    * from database, does not delete configuration itself.
    */
   public function delete() {
-    db_query("DELETE FROM {feeds_importer} WHERE id = '%s'", $this->id);
+    db_delete('feeds_importer')
+      ->condition('id', $this->id)
+      ->execute();
     $job = array(
       'callback' => 'feeds_importer_expire',
       'type' => $this->id,
diff --git a/includes/FeedsSource.inc b/includes/FeedsSource.inc
index b6f2a89b..eff59e05 100644
--- a/includes/FeedsSource.inc
+++ b/includes/FeedsSource.inc
@@ -276,7 +276,10 @@ class FeedsSource extends FeedsConfigurable {
     foreach ($this->importer->plugin_types as $type) {
       $this->importer->$type->sourceDelete($this);
     }
-    db_query("DELETE FROM {feeds_source} WHERE id = '%s' AND feed_nid = %d", $this->id, $this->feed_nid);
+    db_delete('feeds_source')
+      ->condition('id', $this->id)
+      ->condition('feed_nid', $this->feed_nid)
+      ->execute();
     // Remove from schedule.
     $job = array(
       'callback' => 'feeds_source_import',
diff --git a/plugins/FeedsHTTPFetcher.inc b/plugins/FeedsHTTPFetcher.inc
index 46b71112..f17aaff7 100644
--- a/plugins/FeedsHTTPFetcher.inc
+++ b/plugins/FeedsHTTPFetcher.inc
@@ -258,7 +258,10 @@ class PuSHSubscription implements PuSHSubscriptionInterface {
    * Delete a subscription.
    */
   public function delete() {
-    db_query("DELETE FROM {feeds_push_subscriptions} WHERE domain = '%s' AND subscriber_id = %d", $this->domain, $this->subscriber_id);
+    db_delete('feeds_push_subscriptions')
+      ->condition('domain', $this->domain)
+      ->condition('subscriber_id', $this->subscriber_id)
+      ->execute();
   }
 }
 
diff --git a/plugins/FeedsNodeProcessor.inc b/plugins/FeedsNodeProcessor.inc
index 7b09570a..7cfc4813 100644
--- a/plugins/FeedsNodeProcessor.inc
+++ b/plugins/FeedsNodeProcessor.inc
@@ -91,7 +91,7 @@ class FeedsNodeProcessor extends FeedsProcessor {
     }
     $result = db_query_range("SELECT nid FROM {feeds_node_item} WHERE id = '%s' AND feed_nid = %d", $source->id, $source->feed_nid, 0, variable_get('feeds_node_batch_size', FEEDS_NODE_BATCH_SIZE));
     while ($node = db_fetch_object($result)) {
-      _feeds_node_delete($node->nid);
+      node_delete($node->nid);
       $batch->deleted++;
     }
     if (db_result(db_query_range("SELECT nid FROM {feeds_node_item} WHERE id = '%s' AND feed_nid = %d", $source->id, $source->feed_nid, 0, 1))) {
@@ -406,30 +406,3 @@ class FeedsNodeProcessor extends FeedsProcessor {
     return '';
   }
 }
-
-/**
- * Copy of node_delete() that circumvents node_access().
- *
- * Used for batch deletion.
- */
-function _feeds_node_delete($nid) {
-
-  $node = node_load($nid);
-
-  db_query("DELETE FROM {node} WHERE nid = %d", $node->nid);
-  db_query("DELETE FROM {node_revisions} WHERE nid = %d", $node->nid);
-
-  // Call the node-specific callback (if any):
-  node_invoke($node, 'delete');
-  node_invoke_nodeapi($node, 'delete');
-
-  // Clear the page and block caches.
-  cache_clear_all();
-
-  // Remove this node from the search index if needed.
-  if (function_exists('search_wipe')) {
-    search_wipe($node->nid, 'node');
-  }
-  watchdog('content', '@type: deleted %title.', array('@type' => $node->type, '%title' => $node->title));
-  drupal_set_message(t('@type %title has been deleted.', array('@type' => node_get_types('name', $node), '%title' => $node->title)));
-}
-- 
GitLab