From da019aa4a8d5fa39e2cda894fd719035f10f04cd Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Mon, 4 Mar 2013 11:44:24 +0100 Subject: importpkg: record the source package relationship --- importpkg.py | 8 ++++++++ schema.sql | 1 + 2 files changed, 9 insertions(+) diff --git a/importpkg.py b/importpkg.py index dc581e7..2f3979b 100755 --- a/importpkg.py +++ b/importpkg.py @@ -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": diff --git a/schema.sql b/schema.sql index b5397ee..878a5fe 100644 --- a/schema.sql +++ b/schema.sql @@ -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); -- cgit v1.2.3