From 73e2fb2155c4db5fe1dd82944b36cc0192a1564f Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 12 Sep 2018 16:02:11 +0200 Subject: lib/mysql-functions: mysql_cleanup() now also removes virtual packages from binary_packages which are not linked by binary_packages_in_repositories --- lib/mysql-functions | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/mysql-functions b/lib/mysql-functions index 17b34f6..bbf8816 100755 --- a/lib/mysql-functions +++ b/lib/mysql-functions @@ -743,16 +743,28 @@ mysql_cleanup() { exit 2 fi { - # remove to-be-decided binary_packages and binary_packages_in_repositories + # remove to-be-decided binary_packages_in_repositories printf '%s ' \ "${operator}" if [ "${operator}" = 'DELETE' ]; then - printf '`binary_packages`,`binary_packages_in_repositories` ' + printf '`binary_packages_in_repositories` ' fi printf 'FROM `binary_packages`' mysql_join_binary_packages_binary_packages_in_repositories printf ' WHERE `binary_packages_in_repositories`.`repository`=%s;\n' \ "${repository_ids__any_to_be_decided}" + # remove virtual binary_packages w/o binary_packages_in_repositories + printf '%s ' \ + "${operator}" + if [ "${operator}" = 'DELETE' ]; then + printf '`binary_packages` ' + fi + printf 'FROM `binary_packages`' + printf ' WHERE `binary_packages`.`sha512sum IS NULL' + printf ' AND NOT EXISTS (' + printf 'SELECT 1 FROM `binary_packages_in_repositories` ' + printf 'WHERE `binary_packages_in_repositories`.`package`=`binary_packages`.`id`' + printf ');\n' # remove build_assignments w/o binary_package printf '%s FROM `build_assignments` ' \ "${operator}" -- cgit v1.2.3-54-g00ecf