implement the /compare/pkg1/pkg2 page differently
authorHelmut Grohne <helmut@subdivi.de>
Wed, 24 Apr 2013 18:56:46 +0000 (20:56 +0200)
committerHelmut Grohne <helmut@subdivi.de>
Wed, 24 Apr 2013 19:00:20 +0000 (21:00 +0200)
commit94eb867119af05639691ec7990dcf2d6a956dd86
tree6f33e5f2badf1b19182c718f46614869047516cb
parentd2b83735a4810cec7bf7c0dd6fb521498f104435
implement the /compare/pkg1/pkg2 page differently

The original version had two major drawbacks:
 1) The SQL query used would cause a btree sort, so the time waiting
    for the first output was rather long.
 2) For packages with many equal files, the output would grow with
    O(n^2).

Thanks to the suggestions by Christine Grohne and Klaus Aehlig. The
approach now groups files in package1 by their main hash value (sha512).
It also does some work SQL was designed to solve manually now. To speed
up page generation a new caching table was added identifying which files
have corresponding shared files.
schema.sql
update_sharing.py
webapp.py