[Collab-qa-commits] r1677 - udd/sql
Andreas Tille
tille at alioth.debian.org
Fri Feb 5 10:31:38 UTC 2010
Author: tille
Date: 2010-02-05 10:31:38 +0000 (Fri, 05 Feb 2010)
New Revision: 1677
Added:
udd/sql/array_sort.sql
udd/sql/versions_archs_components.sql
Log:
Table with release and release dates, function to order an array.
Added: udd/sql/array_sort.sql
===================================================================
--- udd/sql/array_sort.sql (rev 0)
+++ udd/sql/array_sort.sql 2010-02-05 10:31:38 UTC (rev 1677)
@@ -0,0 +1,16 @@
+/*****************************************************************************
+ * Sorting an array. See *
+ * http://www.postgres.cz/index.php/PostgreSQL_SQL_Tricks#General_array_sort *
+ *****************************************************************************/
+CREATE OR REPLACE FUNCTION array_sort (ANYARRAY)
+RETURNS ANYARRAY LANGUAGE SQL
+AS $$
+SELECT ARRAY(
+ SELECT $1[s.i] AS "foo"
+ FROM
+ generate_series(array_lower($1,1), array_upper($1,1)) AS s(i)
+ ORDER BY foo
+);
+$$;
+
+
Added: udd/sql/versions_archs_components.sql
===================================================================
--- udd/sql/versions_archs_components.sql (rev 0)
+++ udd/sql/versions_archs_components.sql 2010-02-05 10:31:38 UTC (rev 1677)
@@ -0,0 +1,28 @@
+/****************************************************************************************
+ * This table enables sorting of releases according to their release date. To define *
+ * a reasonable order also for releases which are not or nevel will be released an *
+ * additional column sort is defined. *
+ * The relevant discussion can be found here: *
+ * http://lists.debian.org/debian-qa/2010/02/msg00001.html *
+ ****************************************************************************************/
+
+CREATE TABLE releases (
+ release text, /* keep name column as in other tables */
+ releasedate date,
+ sort int,
+ PRIMARY KEY (release)
+);
+
+INSERT INTO releases VALUES ( 'etch', '2007-04-08', 400 );
+INSERT INTO releases VALUES ( 'etch-security', '2007-04-08', 401 ); /* date or NULL ?? */
+INSERT INTO releases VALUES ( 'etch-proposed-updates', '2007-04-08', 402 ); /* date or NULL ?? */
+INSERT INTO releases VALUES ( 'lenny', '2009-02-14', 500 );
+INSERT INTO releases VALUES ( 'lenny-security', '2009-02-14', 501 ); /* date or NULL ?? */
+INSERT INTO releases VALUES ( 'lenny-proposed-updates', '2009-02-14', 502 ); /* date or NULL ?? */
+INSERT INTO releases VALUES ( 'squeeze', NULL, 600 );
+INSERT INTO releases VALUES ( 'squeeze-security', NULL, 601 );
+INSERT INTO releases VALUES ( 'squeeze-proposed-updates', NULL, 602 );
+INSERT INTO releases VALUES ( 'sid', NULL, 100000 );
+INSERT INTO releases VALUES ( 'experimental', NULL, 100001 );
+
+
More information about the Collab-qa-commits
mailing list