From d657c7f0b11e775c44eaf701651e311d4a5979e3 Mon Sep 17 00:00:00 2001 From: Alex Barth <alex_b@53995.no-reply.drupal.org> Date: Sat, 19 Jun 2010 19:40:43 +0000 Subject: [PATCH] #759302 rjb, smartinm, et. al: Fix user warning: Duplicate entry. --- CHANGELOG.txt | 1 + includes/FeedsImporter.inc | 8 ++++---- includes/FeedsScheduler.inc | 6 ++++-- includes/FeedsSource.inc | 8 ++++---- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 69cbb175..ae301b98 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -3,6 +3,7 @@ Feeds 6.x 1.0 XXXXXXXXXXXXXXXXXXXX ---------------------------------- +- #759302 rjb, smartinm, et. al: Fix user warning: Duplicate entry. - #819876 alex_b: Fix field 'url' and 'guid' don't have default values. - #623444 mongolito404, pvhee, pdrake, servantleader, alex_b et. al.: Mapper for link module. diff --git a/includes/FeedsImporter.inc b/includes/FeedsImporter.inc index 2e06e40e..867e57cc 100644 --- a/includes/FeedsImporter.inc +++ b/includes/FeedsImporter.inc @@ -134,10 +134,10 @@ class FeedsImporter extends FeedsConfigurable { $save = new stdClass(); $save->id = $this->id; $save->config = $this->getConfig(); - // Make sure a source record is present at all time, try to update first, - // then insert. - drupal_write_record('feeds_importer', $save, 'id'); - if (!db_affected_rows()) { + if (db_result(db_query_range("SELECT 1 FROM {feeds_importer} WHERE id = '%s'", $this->id, 0, 1))) { + drupal_write_record('feeds_importer', $save, 'id'); + } + else { drupal_write_record('feeds_importer', $save); } // Clear menu cache, changes to importer can change menu items. diff --git a/includes/FeedsScheduler.inc b/includes/FeedsScheduler.inc index 310e4030..70133691 100644 --- a/includes/FeedsScheduler.inc +++ b/includes/FeedsScheduler.inc @@ -137,8 +137,10 @@ class FeedsScheduler implements FeedsSchedulerInterface { 'last_executed_time' => 0, 'scheduled' => 0, // Means NOT scheduled at the moment. ); - drupal_write_record('feeds_schedule', $save, array('id', 'callback', 'feed_nid')); - if (!db_affected_rows()) { + if (db_result(db_query_range("SELECT 1 FROM {feeds_schedule} WHERE id = '%s' AND callback = '%s' AND feed_nid = %d", $importer_id, $callback, $feed_nid, 0, 1))) { + drupal_write_record('feeds_schedule', $save, array('id', 'callback', 'feed_nid')); + } + else { drupal_write_record('feeds_schedule', $save); } } diff --git a/includes/FeedsSource.inc b/includes/FeedsSource.inc index a5ee9449..8f7b3dec 100644 --- a/includes/FeedsSource.inc +++ b/includes/FeedsSource.inc @@ -197,10 +197,10 @@ class FeedsSource extends FeedsConfigurable { 'source' => $source, 'batch' => isset($this->batch) ? $this->batch : FALSE, ); - // Make sure a source record is present at all time, try to update first, - // then insert. - drupal_write_record('feeds_source', $object, array('id', 'feed_nid')); - if (!db_affected_rows()) { + if (db_result(db_query_range("SELECT 1 FROM {feeds_source} WHERE id = '%s' AND feed_nid = %d", $this->id, $this->feed_nid, 0, 1))) { + drupal_write_record('feeds_source', $object, array('id', 'feed_nid')); + } + else { drupal_write_record('feeds_source', $object); } } -- GitLab