From 521ef709d09fcb9b39cad16fd9609a1028400810 Mon Sep 17 00:00:00 2001 From: Nathan Wagner Date: Fri, 21 Dec 2018 01:33:21 +0000 Subject: [PATCH] add preserve_packages schema --- schema/preserve_packages.sql | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 schema/preserve_packages.sql diff --git a/schema/preserve_packages.sql b/schema/preserve_packages.sql new file mode 100644 index 0000000..6f9416d --- /dev/null +++ b/schema/preserve_packages.sql @@ -0,0 +1,33 @@ +create view preserve_packages as +with package_libraries_status as ( +select P.package, P.release, P.version, P.status, EL.soname +from +elflibraries EL +join packagefiles PF on PF.hash = EL.file +join packages P +on P.package = PF.package and P.version = PF.version and P.release = PF.release +) +, package_libraries_needed_status as ( +select --distinct +P.package, P.release, P.version, P.status, EN.needed as soname, group_concat(PF.path) as needed_by +from +elfneeded EN +join packagefiles PF on PF.hash = EN.file +join packages P +on P.package = PF.package and P.version = PF.version and P.release = PF.release +group by P.package, P.release, P.version, P.status, EN.needed +) +select +PLS.package, PLS.version, PLS.release, PLS.soname +,PLN.package as npackage, PLN.version as nversion, PLN.release as nrelease, PLN.needed_by +--,PLI.soname, PLI.package, PLI.version, PLI.release +from package_libraries_needed_status PLN +join package_libraries_status PLS +on PLN.soname = PLS.soname +and PLN.status = 'installed' +and PLS.status != 'installed' +left join package_libraries_status PLI +on PLI.status = 'installed' +and PLI.soname = PLN.soname +where PLI.package is null +; -- 2.40.0