]> git.decadent.org.uk Git - dak.git/blobdiff - db_access.py
warn about component migration
[dak.git] / db_access.py
index 2fe45177bce8022a91ddbaf994d1305254c39370..216f4e76071d9aa5c48e596e9beab14c6e457ce7 100644 (file)
@@ -1,6 +1,6 @@
 # DB access fucntions
 # Copyright (C) 2000, 2001  James Troup <james@nocrew.org>
-# $Id: db_access.py,v 1.9 2001-11-04 22:34:02 troup Exp $
+# $Id: db_access.py,v 1.11 2002-02-12 23:13:49 troup Exp $
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -16,7 +16,9 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-import pg, string
+############################################################################################
+
+import string
 
 ############################################################################################
 
@@ -33,7 +35,8 @@ location_id_cache = {};
 maintainer_id_cache = {};
 source_id_cache = {};
 files_id_cache = {};
-maintainer_cache = {}
+maintainer_cache = {};
+fingerprint_id_cache = {};
 
 ############################################################################################
 
@@ -128,10 +131,12 @@ def get_architecture_id (architecture):
 def get_archive_id (archive):
     global archive_id_cache
 
+    archive = string.lower(archive);
+
     if archive_id_cache.has_key(archive):
         return archive_id_cache[archive]
 
-    q = projectB.query("SELECT id FROM archive WHERE name = '%s'" % (archive))
+    q = projectB.query("SELECT id FROM archive WHERE lower(name) = '%s'" % (archive));
     ql = q.getresult();
     if not ql:
         return -1;
@@ -144,10 +149,12 @@ def get_archive_id (archive):
 def get_component_id (component):
     global component_id_cache
 
+    component = string.lower(component);
+
     if component_id_cache.has_key(component):
         return component_id_cache[component]
 
-    q = projectB.query("SELECT id FROM component WHERE lower(name) = '%s'" % (string.lower(component)))
+    q = projectB.query("SELECT id FROM component WHERE lower(name) = '%s'" % (component))
     ql = q.getresult();
     if not ql:
         return -1;
@@ -216,6 +223,23 @@ def get_or_set_maintainer_id (maintainer):
 
 ##########################################################################################
 
+def get_or_set_fingerprint_id (fingerprint):
+    global fingerprint_id_cache
+
+    if fingerprint_id_cache.has_key(fingerprint):
+        return fingerprint_id_cache[fingerprint]
+
+    q = projectB.query("SELECT id FROM fingerprint WHERE fingerprint = '%s'" % (fingerprint))
+    if not q.getresult():
+        projectB.query("INSERT INTO fingerprint (fingerprint) VALUES ('%s')" % (fingerprint))
+        q = projectB.query("SELECT id FROM fingerprint WHERE fingerprint = '%s'" % (fingerprint))
+    fingerprint_id = q.getresult()[0][0]
+    fingerprint_id_cache[fingerprint] = fingerprint_id
+
+    return fingerprint_id
+
+##########################################################################################
+
 def get_files_id (filename, size, md5sum, location_id):
     global files_id_cache