? .cache
? .project
? .projectOptions
? files
? sites/all/modules
? sites/default/settings.php
Index: modules/system/system.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.install,v
retrieving revision 1.118
diff -u -r1.118 system.install
--- modules/system/system.install	27 May 2007 20:31:13 -0000	1.118
+++ modules/system/system.install	27 May 2007 21:58:56 -0000
@@ -3307,6 +3307,23 @@
 }
 
 /**
+ * Add module field to files table, assign all existing files to the upload
+ * module; Index the filepath field.
+ */
+function system_update_6022() {
+  $ret = array();
+
+  db_add_field($ret, 'files', 'module', array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''));
+  db_drop_primary_key($ret, 'files');
+  db_drop_index($ret, 'files', 'nid');
+  db_add_primary_key($ret, 'files', array('fid'));
+  db_add_index($ret, 'files', 'module_nid', array('module', 'nid'));
+  db_add_index($ret, 'files', 'filepath', array('filepath'));
+
+  return $ret;
+}
+
+/**
  * @} End of "defgroup updates-5.x-to-6.x"
  * The next series of updates should start at 7000.
  */
Index: modules/system/system.schema
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.schema,v
retrieving revision 1.3
diff -u -r1.3 system.schema
--- modules/system/system.schema	27 May 2007 20:31:13 -0000	1.3
+++ modules/system/system.schema	27 May 2007 21:56:03 -0000
@@ -34,12 +34,16 @@
     'fields' => array(
       'fid'      => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
       'nid'      => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0),
+      'module'   => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
       'filename' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
       'filepath' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
       'filemime' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
       'filesize' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0)
     ),
-    'indexes' => array('nid' => array('nid')),
+    'indexes' => array(
+      'module_nid' => array('module', 'nid'),
+      'filepath'   => array('filepath'),
+    ),
     'primary key' => array('fid'),
   );
 
Index: modules/upload/upload.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/upload/upload.module,v
retrieving revision 1.160
diff -u -r1.160 upload.module
--- modules/upload/upload.module	14 May 2007 13:43:38 -0000	1.160
+++ modules/upload/upload.module	27 May 2007 21:58:27 -0000
@@ -616,7 +616,7 @@
  *   The amount of disk space used by the user in bytes.
  */
 function upload_space_used($uid) {
-  return db_result(db_query('SELECT SUM(filesize) FROM {files} f INNER JOIN {node} n ON f.nid = n.nid WHERE n.uid = %d', $uid));
+  return db_result(db_query("SELECT SUM(filesize) FROM {files} f INNER JOIN {node} n ON f.nid = n.nid WHERE f.module = 'upload' AND n.uid = %d", $uid));
 }
 
 /**
@@ -626,7 +626,7 @@
  *   The amount of disk space used by uploaded files in bytes.
  */
 function upload_total_space_used() {
-  return db_result(db_query('SELECT SUM(filesize) FROM {files}'));
+  return db_result(db_query("SELECT SUM(filesize) FROM {files} WHERE module = 'upload'"));
 }
 
 /**
@@ -722,7 +722,7 @@
     elseif (strpos($file->fid, 'upload') !== FALSE) {
       if ($file = file_save_upload($file, $file->filename)) {
         $file->fid = db_next_id('{files}_fid');
-        db_query("INSERT INTO {files} (fid, nid, filename, filepath, filemime, filesize) VALUES (%d, %d, '%s', '%s', '%s', %d)", $file->fid, $node->nid, $file->filename, $file->filepath, $file->filemime, $file->filesize);
+        db_query("INSERT INTO {files} (fid, nid, filename, filepath, filemime, filesize, module) VALUES (%d, %d, '%s', '%s', '%s', %d, 'upload')", $file->fid, $node->nid, $file->filename, $file->filepath, $file->filemime, $file->filesize);
         db_query("INSERT INTO {file_revisions} (fid, vid, list, description) VALUES (%d, %d, %d, '%s')", $file->fid, $node->vid, $file->list, $file->description);
         // Tell other modules where the file was stored.
         $node->files[$fid] = $file;
@@ -744,7 +744,7 @@
 
 function upload_delete($node) {
   $files = array();
-  $result = db_query('SELECT * FROM {files} WHERE nid = %d', $node->nid);
+  $result = db_query("SELECT * FROM {files} WHERE module = 'upload' AND nid = %d", $node->nid);
   while ($file = db_fetch_object($result)) {
     $files[$file->fid] = $file;
   }
@@ -756,7 +756,7 @@
   }
 
   // Delete all files associated with the node
-  db_query('DELETE FROM {files} WHERE nid = %d', $node->nid);
+  db_query("DELETE FROM {files} WHERE module = 'upload' AND nid = %d", $node->nid);
 }
 
 function upload_delete_revision($node) {
@@ -861,7 +861,7 @@
   $files = array();
 
   if ($node->vid) {
-    $result = db_query('SELECT * FROM {files} f INNER JOIN {file_revisions} r ON f.fid = r.fid WHERE r.vid = %d ORDER BY f.fid', $node->vid);
+    $result = db_query("SELECT * FROM {files} f INNER JOIN {file_revisions} r ON f.fid = r.fid WHERE r.vid = %d AND f.module = 'upload' ORDER BY f.fid", $node->vid);
     while ($file = db_fetch_object($result)) {
       $files[$file->fid] = $file;
     }
