]> git.decadent.org.uk Git - dak.git/blobdiff - dak/dakdb/update71.py
Debug suites might also miss the source package
[dak.git] / dak / dakdb / update71.py
old mode 100755 (executable)
new mode 100644 (file)
index 079c195..d6bbf4a
@@ -2,10 +2,10 @@
 # coding=utf8
 
 """
-Add missing checksums to source_metadata
+Make lastused in queuefiles/policyqueuefiles default now()
 
 @contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@debian.org>
+@copyright: 2011 Joerg Jaspert <joerg@debian.org>
 @license: GNU General Public License version 2 or later
 """
 
@@ -32,80 +32,18 @@ from daklib.config import Config
 ################################################################################
 def do_update(self):
     """
-    Add missing checksums to source_metadata
+    Make lastused in queuefiles/policyqueuefiles default now()
     """
     print __doc__
     try:
-        c = self.db.cursor()
-        c.execute(R"""CREATE OR REPLACE FUNCTION metadata_keys_get(key_ text)
-  RETURNS integer
-  LANGUAGE plpgsql
-  STRICT
-AS $function$
-DECLARE
-  v_key_id metadata_keys.key_id%TYPE;
-BEGIN
-  SELECT key_id INTO v_key_id FROM metadata_keys WHERE key = key_;
-  IF NOT FOUND THEN
-    INSERT INTO metadata_keys (key) VALUES (key_) RETURNING key_id INTO v_key_id;
-  END IF;
-  RETURN v_key_id;
-END;
-$function$
-""")
-
-        c.execute("""COMMENT ON FUNCTION metadata_keys_get(text)
-IS 'return key_id for the given key. If key is not present, create a new entry.'
-""")
-
-        c.execute(R"""CREATE OR REPLACE FUNCTION source_metadata_add_missing_checksum(type text)
-  RETURNS INTEGER
-  LANGUAGE plpgsql
-  STRICT
-AS $function$
-DECLARE
-  v_checksum_key metadata_keys.key_id%TYPE;
-  rows INTEGER;
-BEGIN
-  IF type NOT IN ('Files', 'Checksums-Sha1', 'Checksums-Sha256') THEN
-    RAISE EXCEPTION 'Unknown checksum field %', type;
-  END IF;
-  v_checksum_key := metadata_keys_get(type);
+        cnf = Config()
 
-  INSERT INTO source_metadata
-    (src_id, key_id, value)
-  SELECT
-    s.id,
-    v_checksum_key,
-    E'\n' ||
-      (SELECT STRING_AGG(' ' || tmp.checksum || ' ' || tmp.size || ' ' || tmp.basename, E'\n' ORDER BY tmp.basename)
-       FROM
-         (SELECT
-              CASE type
-                WHEN 'Files' THEN f.md5sum
-                WHEN 'Checksums-Sha1' THEN f.sha1sum
-                WHEN 'Checksums-Sha256' THEN f.sha256sum
-              END AS checksum,
-              f.size,
-              SUBSTRING(f.filename FROM E'/([^/]*)\\Z') AS basename
-            FROM files f JOIN dsc_files ON f.id = dsc_files.file
-            WHERE dsc_files.source = s.id AND f.id != s.file
-         ) AS tmp
-      )
-
-    FROM
-      source s
-    WHERE NOT EXISTS (SELECT 1 FROM source_metadata md WHERE md.src_id=s.id AND md.key_id = v_checksum_key);
-
-  GET DIAGNOSTICS rows = ROW_COUNT;
-  RETURN rows;
-END;
-$function$
-""")
+        c = self.db.cursor()
 
-        c.execute("""COMMENT ON FUNCTION source_metadata_add_missing_checksum(TEXT)
-IS 'add missing checksum fields to source_metadata. type can be Files (md5sum), Checksums-Sha1, Checksums-Sha256'
-""")
+        c.execute("ALTER TABLE build_queue_files ALTER COLUMN lastused SET DEFAULT now()")
+        c.execute("ALTER TABLE build_queue_files ALTER COLUMN lastused SET NOT NULL")
+        c.execute("ALTER TABLE build_queue_policy_files ALTER COLUMN lastused SET  DEFAULT now()")
+        c.execute("ALTER TABLE build_queue_policy_files ALTER COLUMN lastused SET NOT NULL")
 
         c.execute("UPDATE config SET value = '71' WHERE name = 'db_revision'")
         self.db.commit()