Index: feedapi.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi.install,v
retrieving revision 1.5.2.21.2.13
diff -u -p -r1.5.2.21.2.13 feedapi.install
--- feedapi.install	8 Apr 2009 05:57:46 -0000	1.5.2.21.2.13
+++ feedapi.install	29 May 2009 17:37:18 -0000
@@ -58,9 +58,9 @@ function feedapi_schema() {
         'default' => 0,
       ),
     ),
-    'primary key' => array('vid'),
+    'primary key' => array('vid', 'nid'),
     'indexes' => array(
-      'nid' => array('nid'),
+      'vid' => array('vid'),
       'feedapi_skip' => array('skip')),
   );
   $schema['feedapi_stat'] = array(
@@ -180,19 +180,27 @@ function feedapi_update_6104() {
  * Adds vid to feedapi table
  */
 function feedapi_update_6105() {
+  global $db_type;
   $ret = array();
   db_add_field($ret, 'feedapi', 'vid',
     array(
       'description' => t('The primary identifier for the feed.'),
       'type' => 'int',
       'unsigned' => TRUE,
-      'not null' => TRUE
+      'not null' => TRUE,
+      'default' => 0,
     )
   );
   db_drop_primary_key($ret, 'feedapi');
-  db_query("UPDATE feedapi f, node n SET f.vid = n.vid WHERE n.nid = f.nid");
-  db_query("UPDATE feedapi SET vid = nid WHERE vid = 0");
-  db_add_primary_key($ret, 'feedapi', array('vid'));
-  db_add_index($ret, 'feedapi', 'nid', array('nid'));
+  if ($db_type == 'mysql' || $db_type == 'mysqli') {
+    $ret[] = update_sql("UPDATE feedapi f, node n SET f.vid = n.vid WHERE n.nid = f.nid");
+  }
+  else {
+    $ret[] = update_sql("UPDATE feedapi SET vid = n.vid FROM (SELECT vid, nid FROM node n) n WHERE n.nid = feedapi.nid");
+  }
+  $ret[] = update_sql("UPDATE {feedapi} SET vid = nid WHERE vid = 0");
+  
+  db_add_primary_key($ret, 'feedapi', array('vid', 'nid'));
+  db_add_index($ret, 'feedapi', 'vid', array('vid'));
   return $ret;
 }
