summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2013-03-07 08:24:44 +0100
committerHelmut Grohne <helmut@subdivi.de>2013-03-07 08:24:44 +0100
commitb3d4bbae6fa2810daf3481d8ba99675ffe3bce9e (patch)
treeb3315876e6eb444e42518cf437c891720c4818d8
parent5b5cf7f2629c3a6c78f6057ff1e8476ff001409f (diff)
downloaddebian-dedup-b3d4bbae6fa2810daf3481d8ba99675ffe3bce9e.tar.gz
integrate the source table into the package table
-rwxr-xr-ximportpkg.py8
-rw-r--r--schema.sql3
-rwxr-xr-xwebapp.py4
3 files changed, 5 insertions, 10 deletions
diff --git a/importpkg.py b/importpkg.py
index d63b85e..ef368c2 100755
--- a/importpkg.py
+++ b/importpkg.py
@@ -148,8 +148,8 @@ def process_package(db, filelike):
(package,))
cur.execute("DELETE FROM content WHERE package = ?;",
(package,))
- cur.execute("INSERT INTO package (package, version, architecture) VALUES (?, ?, ?);",
- (package, version, architecture))
+ cur.execute("INSERT INTO package (package, version, architecture, source) VALUES (?, ?, ?, ?);",
+ (package, version, architecture, source))
depends = control.relations.get("depends", [])
depends = set(dep[0]["name"].encode("ascii")
for dep in depends if len(dep) == 1)
@@ -157,10 +157,6 @@ 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 878a5fe..954b359 100644
--- a/schema.sql
+++ b/schema.sql
@@ -1,7 +1,6 @@
-CREATE TABLE package (package TEXT PRIMARY KEY, version TEXT, architecture TEXT);
+CREATE TABLE package (package TEXT PRIMARY KEY, version TEXT, architecture TEXT, source 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);
diff --git a/webapp.py b/webapp.py
index 6c06e28..0e4dc15 100755
--- a/webapp.py
+++ b/webapp.py
@@ -334,12 +334,12 @@ class Application(object):
def show_source(self, package):
cur = self.db.cursor()
- cur.execute("SELECT package FROM source WHERE source = ?;",
+ cur.execute("SELECT package FROM package WHERE source = ?;",
(package,))
binpkgs = dict.fromkeys(pkg for pkg, in fetchiter(cur))
if not binpkgs:
raise NotFound
- cur.execute("SELECT source.package, sharing.package2, sharing.func1, sharing.func2, sharing.files, sharing.size FROM source JOIN sharing ON source.package = sharing.package1 WHERE source.source = ?;",
+ cur.execute("SELECT package.package, sharing.package2, sharing.func1, sharing.func2, sharing.files, sharing.size FROM package JOIN sharing ON package.package = sharing.package1 WHERE package.source = ?;",
(package,))
for binary, otherbin, func1, func2, files, size in fetchiter(cur):
entry = dict(package=otherbin,