diff options
Diffstat (limited to 'misc')
-rw-r--r-- | misc/database-layout.dump | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/misc/database-layout.dump b/misc/database-layout.dump index fe963d4..309e9e1 100644 --- a/misc/database-layout.dump +++ b/misc/database-layout.dump @@ -7,6 +7,7 @@ INSERT IGNORE INTO `bl`(`arch`,`pkgbase`) FROM `blacklist` JOIN `architectures` ON `architectures`.`name`=`blacklist`.`arch`; +CREATE TEMPORARY TABLE `available_install_targets` (`architecture` SMALLINT,`install_target` BIGINT,UNIQUE KEY `content`(`architecture`,`install_target`),KEY (`architecture`),KEY (`install_target`)); REPEAT DELETE FROM `bl_copy`; @@ -23,6 +24,21 @@ DELETE INSERT IGNORE INTO `bl_copy` (`arch`,`pkgbase`) SELECT `bl`.`arch`, `bl`.`pkgbase` FROM `bl`; +DELETE + FROM `available_install_targets`; +INSERT IGNORE INTO `available_install_targets` (`architecture`,`install_target`)SELECT `architectures`.`id`,`install_target_providers`.`install_target` + FROM `install_target_providers` + JOIN `binary_packages` + ON `install_target_providers`.`package`=`binary_packages`.`id` + JOIN `build_assignments` + ON `binary_packages`.`build_assignment`=`build_assignments`.`id` + JOIN `package_sources` + ON `build_assignments`.`package_source`=`package_sources`.`id` + JOIN `architectures` + ON (`architectures`.`id`=`binary_packages`.`architecture` OR `binary_packages`.`architecture`=1 OR `architectures`.`id`=1) + LEFT JOIN `bl_copy` + ON `bl_copy`.`pkgbase`=`package_sources`.`pkgbase` AND (`bl_copy`.`arch`=`build_assignments`.`architecture` OR `bl_copy`.`arch`=1) + WHERE `bl_copy`.`pkgbase` IS NULL; INSERT IGNORE INTO `bl` (`arch`,`pkgbase`) SELECT `a_bp`.`architecture`,`a_ps`.`pkgbase` FROM `package_sources` AS `a_ps` @@ -40,22 +56,9 @@ INSERT IGNORE INTO `bl` (`arch`,`pkgbase`) ON `dependencies`.`depending_on`=`itp_dummy`.`install_target` JOIN `binary_packages` AS `itp_bp_dummy` ON `itp_dummy`.`package`=`itp_bp_dummy`.`id` AND (`itp_bp_dummy`.`architecture`=`a_ba`.`architecture` OR `a_ba`.`architecture`=1 OR `itp_bp_dummy`.`architecture`=1) - LEFT JOIN ( -SELECT DISTINCT `install_target_providers`.`install_target`,`architectures`.`id` AS `architecture` - FROM `install_target_providers` - JOIN `binary_packages` - ON `install_target_providers`.`package`=`binary_packages`.`id` - JOIN `build_assignments` - ON `binary_packages`.`build_assignment`=`build_assignments`.`id` - JOIN `package_sources` - ON `build_assignments`.`package_source`=`package_sources`.`id` - JOIN `architectures` - ON (`architectures`.`id`=`binary_packages`.`architecture` OR `binary_packages`.`architecture`=1 OR `architectures`.`id`=1) - LEFT JOIN `bl_copy` - ON `bl_copy`.`pkgbase`=`package_sources`.`pkgbase` AND (`bl_copy`.`arch`=`build_assignments`.`architecture` OR `bl_copy`.`arch`=1) - WHERE `bl_copy`.`pkgbase` IS NULL) AS `itp_query` - ON `itp_query`.`install_target`=`dependencies`.`depending_on` AND `itp_query`.`architecture`=`a_ba`.`architecture` - WHERE `itp_query`.`install_target` IS NULL; + LEFT JOIN `available_install_targets` + ON `available_install_targets`.`install_target`=`dependencies`.`depending_on` AND `available_install_targets`.`architecture`=`a_ba`.`architecture` + WHERE `available_install_targets`.`install_target` IS NULL; UNTIL ROW_COUNT()=0 END REPEAT; SELECT `architectures`.`name`,`bl`.`pkgbase` @@ -64,6 +67,7 @@ SELECT `architectures`.`name`,`bl`.`pkgbase` ON `architectures`.`id`=`bl`.`arch`; DROP TEMPORARY TABLE `bl`; DROP TEMPORARY TABLE `bl_copy`; +DROP TEMPORARY TABLE `available_install_targets`; END utf8mb4 utf8mb4_unicode_ci utf8mb4_unicode_ci calculate_maximal_moveable_set STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `calculate_maximal_moveable_set`(IN `arch_id` MEDIUMINT,IN `from_stability` MEDIUMINT) BEGIN |