[Collab-qa-commits] r1298 - in udd: . sql udd

lucas at alioth.debian.org lucas at alioth.debian.org
Fri Sep 26 21:38:26 UTC 2008


Author: lucas
Date: 2008-09-26 21:38:25 +0000 (Fri, 26 Sep 2008)
New Revision: 1298

Modified:
   udd/TODO
   udd/config-standalone.yaml
   udd/config.yaml
   udd/sql/setup.sql
   udd/sql/upgrade.sql
   udd/udd/sources_gatherer.py
Log:
split Uploaders: into a seperate table. also split Maintainer into maintainer_name and maintainer_email in sources.

Modified: udd/TODO
===================================================================
--- udd/TODO	2008-09-26 20:32:28 UTC (rev 1297)
+++ udd/TODO	2008-09-26 21:38:25 UTC (rev 1298)
@@ -32,7 +32,6 @@
    operator '=' used with type text should only check the package name,
    with another pkg should check both pkg and version. Should be pretty
    DWIM.
-- (prio: high) Add Uploaders (zack want them to export that data to the BTS)
 
 bugs.debian.org
 ---------------

Modified: udd/config-standalone.yaml
===================================================================
--- udd/config-standalone.yaml	2008-09-26 20:32:28 UTC (rev 1297)
+++ udd/config-standalone.yaml	2008-09-26 21:38:25 UTC (rev 1298)
@@ -37,6 +37,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: lenny
@@ -52,6 +53,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: experimental
@@ -67,6 +69,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: sid
@@ -81,6 +84,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: etch
@@ -95,6 +99,7 @@
   distribution: debian-backports
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: etch
@@ -109,6 +114,7 @@
   distribution: debian-volatile
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: etch
@@ -123,6 +129,7 @@
   release: intrepid
   packages-table: ubuntu_packages
   sources-table: ubuntu_sources
+  uploaders-table: ubuntu_uploaders
   packages-schema: packages
   sources-schema: sources
   update-command: /org/udd.debian.net/udd/scripts/sync-dist.sh archive.ubuntu.com::ubuntu/dists/intrepid/ /org/udd.debian.net/mirrors/ubuntu/intrepid
@@ -136,6 +143,7 @@
   release: hardy
   packages-table: ubuntu_packages
   sources-table: ubuntu_sources
+  uploaders-table: ubuntu_uploaders
   packages-schema: packages
   sources-schema: sources
   update-command: /org/udd.debian.net/udd/scripts/sync-dist.sh archive.ubuntu.com::ubuntu/dists/hardy/ /org/udd.debian.net/mirrors/ubuntu/hardy

Modified: udd/config.yaml
===================================================================
--- udd/config.yaml	2008-09-26 20:32:28 UTC (rev 1297)
+++ udd/config.yaml	2008-09-26 21:38:25 UTC (rev 1298)
@@ -37,6 +37,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: lenny
@@ -51,6 +52,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: experimental
@@ -65,6 +67,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: sid
@@ -78,6 +81,7 @@
   distribution: debian
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: etch
@@ -91,6 +95,7 @@
   distribution: debian-backports
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: etch
@@ -104,6 +109,7 @@
   distribution: debian-volatile
   packages-table: packages
   sources-table: sources
+  uploaders-table: uploaders
   packages-schema: packages
   sources-schema: sources
   release: etch
@@ -117,6 +123,7 @@
   release: intrepid
   packages-table: ubuntu_packages
   sources-table: ubuntu_sources
+  uploaders-table: ubuntu_uploaders
   packages-schema: packages
   sources-schema: sources
   update-command: /org/udd.debian.net/udd/scripts/sync-dist.sh archive.ubuntu.com::ubuntu/dists/intrepid/ /org/udd.debian.net/mirrors/ubuntu/intrepid
@@ -130,6 +137,7 @@
   release: hardy
   packages-table: ubuntu_packages
   sources-table: ubuntu_sources
+  uploaders-table: ubuntu_uploaders
   packages-schema: packages
   sources-schema: sources
   update-command: /org/udd.debian.net/udd/scripts/sync-dist.sh archive.ubuntu.com::ubuntu/dists/hardy/ /org/udd.debian.net/mirrors/ubuntu/hardy

Modified: udd/sql/setup.sql
===================================================================
--- udd/sql/setup.sql	2008-09-26 20:32:28 UTC (rev 1297)
+++ udd/sql/setup.sql	2008-09-26 21:38:25 UTC (rev 1298)
@@ -1,6 +1,7 @@
 -- Sources and Packages
 CREATE TABLE sources
-  (source text, version text, maintainer text, format text, files text,
+  (source text, version text, maintainer text,
+    maintainer_name text, maintainer_email text, format text, files text,
     uploaders text, bin text, architecture text, standards_version text,
     homepage text, build_depends text, build_depends_indep text,
     build_conflicts text, build_conflicts_indep text, priority text, section
@@ -12,6 +13,13 @@
 
 GRANT SELECT ON sources TO PUBLIC;
 
+-- no primary key possible: duplicate rows are possible because duplicate entries
+-- in Uploaders: are allowed. yes.
+CREATE TABLE uploaders (source text, version text, distribution text,
+	release text, component text, name text, email text);
+   
+GRANT SELECT ON uploaders TO PUBLIC;
+
 CREATE INDEX sources_distrelcomp_idx on sources(distribution, release, component);
 
 CREATE TABLE packages_summary ( package text, version text, source text,
@@ -40,7 +48,8 @@
 -- Ubuntu sources and packages
 
 CREATE TABLE ubuntu_sources
-  (source text, version text, maintainer text, format text, files text,
+  (source text, version text, maintainer text,
+    maintainer_name text, maintainer_email text, format text, files text,
     uploaders text, bin text, architecture text, standards_version text,
     homepage text, build_depends text, build_depends_indep text,
     build_conflicts text, build_conflicts_indep text, priority text, section
@@ -52,6 +61,13 @@
 
 CREATE INDEX ubuntu_sources_distrelcomp_idx on ubuntu_sources(distribution, release, component);
 
+-- no primary key possible: duplicate rows are possible because duplicate entries
+-- in Uploaders: are allowed. yes.
+CREATE TABLE ubuntu_uploaders (source text, version text, distribution text,
+	release text, component text, name text, email text);
+   
+GRANT SELECT ON ubuntu_uploaders TO PUBLIC;
+
 CREATE TABLE ubuntu_packages_summary ( package text, version text, source text,
 source_version text, maintainer text, distribution text, release text,
 component text,

Modified: udd/sql/upgrade.sql
===================================================================
--- udd/sql/upgrade.sql	2008-09-26 20:32:28 UTC (rev 1297)
+++ udd/sql/upgrade.sql	2008-09-26 21:38:25 UTC (rev 1298)
@@ -16,3 +16,8 @@
 -- 2008-09-22: Properly name affects_stable and affects_unstable
 ALTER TABLE archived_bugs rename affects_sarchived_table to affects_stable;
 ALTER TABLE archived_bugs rename affects_unsarchived_table to affects_unstable;
+-- 2008-09-26: add maintainer_name and maintainer_email to sources.
+ALTER TABLE sources add maintainer_name text;
+ALTER TABLE sources add maintainer_email text;
+ALTER TABLE ubuntu_sources add maintainer_name text;
+ALTER TABLE ubuntu_sources add maintainer_email text;

Modified: udd/udd/sources_gatherer.py
===================================================================
--- udd/udd/sources_gatherer.py	2008-09-26 20:32:28 UTC (rev 1297)
+++ udd/udd/sources_gatherer.py	2008-09-26 21:38:25 UTC (rev 1298)
@@ -11,6 +11,7 @@
 from aux import ConfigException
 from aux import null_or_quote, quote
 from gatherer import gatherer
+import email.utils
 
 def get_gatherer(connection, config, source):
   return sources_gatherer(connection, config, source)
@@ -86,8 +87,10 @@
     cur = self.cursor()
     for control in debian_bundle.deb822.Packages.iter_paragraphs(file):
       d = self.build_dict(control)
+      d['maintainer_name'], d['maintainer_email'] = email.utils.parseaddr(d['Maintainer'])
       query = """EXECUTE source_insert
-	  (%(Package)s, %(Version)s, %(Maintainer)s, %(Format)s, %(Files)s,
+	  (%(Package)s, %(Version)s, %(Maintainer)s,
+	  %(maintainer_name)s, %(maintainer_email)s, %(Format)s, %(Files)s,
 	  %(Uploaders)s, %(Binary)s, %(Architecture)s, %(Standards-Version)s,
 	  %(Homepage)s, %(Build-Depends)s, %(Build-Depends-Indep)s,
 	  %(Build-Conflicts)s, %(Build-Conflicts-Indep)s, %(Priority)s,
@@ -96,6 +99,16 @@
 	  %(Original-Maintainer)s, %(Dm-Upload-Allowed)s)
 	  """ 
       cur.execute(query, d)
+      ud = {}
+      ud['Package'] = d['Package']
+      ud['Version'] = d['Version']
+      if d['Uploaders']:
+        for uploader in email.utils.getaddresses([d['Uploaders']]):
+          ud['Name'] = uploader[0]
+          ud['Email'] = uploader[1]
+	  query = """EXECUTE uploader_insert (%(Package)s, %(Version)s, %(Name)s,
+	    %(Email)s)"""
+	  cur.execute(query, ud)
 
   def tables(self):
     return [self.my_config['sources-table']]
@@ -105,6 +118,8 @@
 
     table = src_cfg['sources-table']
 
+    utable = src_cfg['uploaders-table']
+
     aux.debug = self.config['general']['debug']
 
     cur = self.cursor()
@@ -114,9 +129,12 @@
       cur.execute("DELETE from %s WHERE Distribution = '%s' AND\
 	release = '%s' AND component = '%s'"\
 	% (table, src_cfg['distribution'], src_cfg['release'], comp))
+      cur.execute("DELETE from %s WHERE Distribution = '%s' AND\
+	release = '%s' AND component = '%s'"\
+	% (utable, src_cfg['distribution'], src_cfg['release'], comp))
       try:
 	query = """PREPARE source_insert as INSERT INTO %s
-	  (Source, Version, Maintainer, Format, Files, Uploaders, Bin,
+	  (Source, Version, Maintainer, Maintainer_name, Maintainer_email, Format, Files, Uploaders, Bin,
 	  Architecture, Standards_Version, Homepage, Build_Depends,
 	  Build_Depends_Indep, Build_Conflicts, Build_Conflicts_Indep, Priority,
 	  Section, Vcs_Type, Vcs_Url, Vcs_Browser, python_version, checksums_sha1,
@@ -124,9 +142,14 @@
 	  Distribution, Release, Component)
 	VALUES
 	  ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16,
-	  $17, $18, $19, $20, $21, $22, $23, $24, '%s', '%s', '%s')"""\
+	  $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, '%s', '%s', '%s')"""\
 	  % (table, src_cfg['distribution'], src_cfg['release'], comp)
 	cur.execute(query)
+	query = """PREPARE uploader_insert as INSERT INTO %s
+	  (Source, Version, Distribution, Release, Component, Name, Email) VALUES
+	  ($1, $2, '%s', '%s', '%s', $3, $4) """ % \
+	(utable, src_cfg['distribution'], src_cfg['release'], comp)
+	cur.execute(query)
 
 #	aux.print_debug("Reading file " + path)
 	# Copy content from gzipped file to temporary file, so that apt_pkg is
@@ -142,6 +165,7 @@
       except IOError, (e, message):
 	print "Could not read packages from %s: %s" % (path, message)
       cur.execute("DEALLOCATE source_insert")
+      cur.execute("DEALLOCATE uploader_insert")
 
     self.print_warnings()
 




More information about the Collab-qa-commits mailing list