提交 a63127fe 编写于 作者: J Joerg Jaspert

Merge remote-tracking branch 'ansgar/pu/wheezy' into merge

* ansgar/pu/wheezy:
  Go back to temporary tables.
Signed-off-by: NJoerg Jaspert <joerg@debian.org>
...@@ -65,15 +65,23 @@ class BinaryContentsWriter(object): ...@@ -65,15 +65,23 @@ class BinaryContentsWriter(object):
'type': self.overridetype.overridetype, 'type': self.overridetype.overridetype,
} }
sql = ''' sql_create_temp = '''
with create temp table newest_binaries (
id integer primary key,
package text);
create index newest_binaries_by_package on newest_binaries (package);
newest_binaries as insert into newest_binaries (id, package)
(select distinct on (package) id, package from binaries select distinct on (package) id, package from binaries
where type = :type and where type = :type and
(architecture = :arch_all or architecture = :arch) and (architecture = :arch_all or architecture = :arch) and
id in (select bin from bin_associations where suite = :suite) id in (select bin from bin_associations where suite = :suite)
order by package, version desc), order by package, version desc;'''
self.session.execute(sql_create_temp, params=params)
sql = '''
with
unique_override as unique_override as
(select o.package, s.section (select o.package, s.section
...@@ -165,16 +173,23 @@ class SourceContentsWriter(object): ...@@ -165,16 +173,23 @@ class SourceContentsWriter(object):
'component_id': self.component.component_id, 'component_id': self.component.component_id,
} }
sql = ''' sql_create_temp = '''
with create temp table newest_sources (
newest_sources as id integer primary key,
(select distinct on (source) s.id, s.source from source s source text);
create index sources_binaries_by_source on newest_sources (source);
insert into newest_sources (id, source)
select distinct on (source) s.id, s.source from source s
join files f on f.id = s.file join files f on f.id = s.file
join location l on l.id = f.location join location l on l.id = f.location
where s.id in (select source from src_associations where suite = :suite_id) where s.id in (select source from src_associations where suite = :suite_id)
and l.component = :component_id and l.component = :component_id
order by source, version desc) order by source, version desc;'''
self.session.execute(sql_create_temp, params=params)
sql = '''
select sc.file, string_agg(s.source, ',' order by s.source) as pkglist select sc.file, string_agg(s.source, ',' order by s.source) as pkglist
from newest_sources s, src_contents sc from newest_sources s, src_contents sc
where s.id = sc.source_id group by sc.file''' where s.id = sc.source_id group by sc.file'''
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册