[Collab-qa-commits] r2265 - udd/sql

Andreas Tille tille at alioth.debian.org
Sun May 6 10:35:42 UTC 2012


Author: tille
Date: 2012-05-06 10:35:41 +0000 (Sun, 06 May 2012)
New Revision: 2265

Modified:
   udd/sql/bibref.sql
Log:
Make sure we have only one (package,source,description) record fitting the latest release with highest version; additional ordering criterion to make resulting LaTeX files reproducible


Modified: udd/sql/bibref.sql
===================================================================
--- udd/sql/bibref.sql	2012-05-06 09:52:21 UTC (rev 2264)
+++ udd/sql/bibref.sql	2012-05-06 10:35:41 UTC (rev 2265)
@@ -84,16 +84,23 @@
 RETURNS SETOF RECORD LANGUAGE SQL
 AS $$
 SELECT package, source, bibkey, description FROM (
-  SELECT DISTINCT
+  SELECT -- DISTINCT
          p.package        AS package,
          p.source         AS source,
          b.package        AS bpackage,
          b.value          AS bibkey,
          replace(p.description, E'\xc2\xa0', '\ ') AS description -- replace non-breaking spaces to TeX syntax
-    FROM packages p
+    FROM ( -- Make sure we have only one (package,source,description) record fitting the latest release with highest version
+       SELECT package, source, description FROM
+         (SELECT *, rank() OVER (PARTITION BY package ORDER BY rsort DESC, version DESC) FROM
+           (SELECT DISTINCT package, source, description, sort as rsort, version FROM packages p
+              JOIN releases r ON p.release = r. release
+           ) tmp
+         ) tmp WHERE rank = 1
+    ) p
     JOIN (SELECT DISTINCT source, package, value FROM bibref WHERE key = 'bibtex') b ON b.source = p.source
  ) tmp
  WHERE package = bpackage OR bpackage = ''
- ORDER BY package
+ ORDER BY package, bibkey
 ;
 $$;




More information about the Collab-qa-commits mailing list