)
*/
--- every path in updating and removing is either remove or no-op
--- not true, could be an update, but should be handled above
-
union
select
case
-when PFI.filetype is PFC.filetype
+when PFI.filetype is not 'l'
+ and PFI.filetype is PFC.filetype
+ and PFI.mode is PFC.mode and PFI.username is PFC.username
+ and PFI.groupname is PFC.groupname and PFI.hash is PFC.hash
+ then 'noop'
+when PFI.filetype is 'l'
+ and PFI.target is PFC.target
+ and PFI.filetype is PFC.filetype
and PFI.mode is PFC.mode and PFI.username is PFC.username
and PFI.groupname is PFC.groupname and PFI.hash is PFC.hash
then 'noop'
P.status = 'installing'
--and PFC.path is not null
-
-- every path in updating and removing is either remove or no-op
-- not true, could be an update, but should be handled above
union
where PFI.path = PFR.path
)
+and path not in (select path from preserve)
-- paths in 'installed' or 'updated' are no-ops