importpkg: record the source package relationship
authorHelmut Grohne <helmut@subdivi.de>
Mon, 4 Mar 2013 10:44:24 +0000 (11:44 +0100)
committerHelmut Grohne <helmut@subdivi.de>
Mon, 4 Mar 2013 10:44:24 +0000 (11:44 +0100)
importpkg.py
schema.sql

index dc581e7..2f3979b 100755 (executable)
@@ -131,6 +131,10 @@ def process_package(db, filelike):
                 control = tf.extractfile(elem).read()
                 control = deb822.Packages(control)
                 package = control["package"].encode("ascii")
+                try:
+                    source = control["source"].encode("ascii")
+                except KeyError:
+                    source = package
                 version = control["version"].encode("ascii")
                 architecture = control["architecture"].encode("ascii")
 
@@ -153,6 +157,10 @@ def process_package(db, filelike):
                             (package,))
                 cur.executemany("INSERT INTO dependency (package, required) VALUES (?, ?);",
                                 ((package, dep) for dep in depends))
+                cur.execute("DELETE FROM source WHERE package = ?;",
+                            (package,))
+                cur.execute("INSERT INTO source (source, package) VALUES (?, ?);",
+                            (source, package))
                 break
             continue
         elif name == "data.tar.gz":
index b5397ee..878a5fe 100644 (file)
@@ -1,6 +1,7 @@
 CREATE TABLE package (package TEXT PRIMARY KEY, version TEXT, architecture TEXT);
 CREATE TABLE content (package TEXT, filename TEXT, size INTEGER, function TEXT, hash TEXT, FOREIGN KEY (package) REFERENCES package(package));
 CREATE TABLE dependency (package TEXT, required TEXT, FOREIGN KEY (package) REFERENCES package(package), FOREIGN KEY (required) REFERENCES package(package));
+CREATE TABLE source (source TEXT, package TEXT, FOREIGN KEY (package) REFERENCES package(package));
 CREATE INDEX content_package_index ON content (package);
 CREATE INDEX content_hash_index ON content (hash);