create view packagefiles_pkgid as
select printf('%s-%s-%s', package, version, release) as pkgid, *,
-printf('%s:%o:%s:%s', filetype, mode, username, groupname) as mds
+printf('%s:%s:%s:%s', filetype, mode, username, groupname) as mds
from packagefiles
;
modified as (
select distinct
SS.path,
- SS.username,
- SS.uid, SS.groupname, SS.gid, SS.mode,
- SS.filetype, SS.mtime, SS.hash,SS.configuration, SS.target, SS.device,
- null as ohash
+ SS.username, SS.uid, SS.groupname, SS.gid, SS.mode, SS.filetype,
+ SS.mtime, SS.hash, SS.configuration, SS.target, SS.device,
+ OS.hash as ohash, SS.mds, OS.mds as omds
from syncstatus SS
join syncstatus OS
on SS.path = OS.path and SS.pkgid is not OS.pkgid
and path not in (select path from preserve)
and rstatus in ('removed','updated')
)
-select 'update' as op, * from modified
+select 'update' as op, *
+,(select group_concat(pkgid, ' ')
+ from syncstatus SS
+ where SS.rstatus = 'installing' and SS.path = M.path
+) as pkglist
+from modified M
union
-select 'remove' as op, * from remove
+select 'remove' as op, *, null, null, null from remove
union
-select 'obsolete' as op, * from expired
+select 'obsolete' as op, *, null, null, null from expired
union
-select 'new' as op, * from newfiles
+select 'new' as op, *, null, null, null from newfiles
union
-select 'preserve' as op, * from preserve
+select 'preserve' as op, *, null, null, null from preserve
;
commit;