CREATE TEMPORARY TABLE `considered_build_assignments` (`id` BIGINT, UNIQUE KEY `id`(`id`)); CREATE TEMPORARY TABLE `considered_build_assignments_2` (`id` BIGINT, UNIQUE KEY `id`(`id`)); CREATE TEMPORARY TABLE `considered_build_assignments_3` (`id` BIGINT, UNIQUE KEY `id`(`id`)); CREATE TEMPORARY TABLE `considered_build_assignments_4` (`id` BIGINT, UNIQUE KEY `id`(`id`)); INSERT IGNORE INTO `considered_build_assignments` (`id`) SELECT `build_assignments`.`id` FROM `build_assignments` JOIN `package_sources` ON `build_assignments`.`package_source`=`package_sources`.`id` JOIN `binary_packages` ON `build_assignments`.`id`=`binary_packages`.`build_assignment` JOIN `binary_packages_in_repositories` ON `binary_packages`.`id`=`binary_packages_in_repositories`.`package` JOIN `architecture_compatibilities` ON `architecture_compatibilities`.`built_for`=`build_assignments`.`architecture` AND `architecture_compatibilities`.`build_slave_compatible` JOIN `architectures` ON `architecture_compatibilities`.`runs_on`=`architectures`.`id` JOIN `architectures` AS `build_command_architectures` ON `build_command_architectures`.`id`=IF(`build_assignments`.`architecture`=1,`architectures`.`id`,`build_assignments`.`architecture`) LEFT JOIN `toolchain_order` ON `package_sources`.`pkgbase`=`toolchain_order`.`pkgbase` WHERE (`build_assignments`.`is_blocked` IS NULL OR `package_sources`.`pkgbase`=from_base64("cHl0aG9uLXNldHVwdG9vbHM=")) AND (EXISTS (SELECT 1 FROM `build_dependency_loops` WHERE `build_dependency_loops`.`build_assignment`=`build_assignments`.`id`) OR NOT EXISTS (SELECT 1 FROM `binary_packages` AS `todos` JOIN `binary_packages_in_repositories` AS `todo_bpirs` ON `todos`.`id`=`todo_bpirs`.`package` AND `todo_bpirs`.`repository`=9 JOIN `dependencies` AS `l_deps` ON `todos`.`id`=`l_deps`.`dependent` JOIN `versions` AS `l_dep_vs` ON `l_deps`.`version`=`l_dep_vs`.`id` JOIN `dependency_types` AS `l_dep_ts` ON `l_deps`.`dependency_type`=`l_dep_ts`.`id` JOIN `install_targets` ON `l_deps`.`depending_on`=`install_targets`.`id` AND `l_dep_ts`.`relevant_for_building` WHERE `todos`.`build_assignment`=`build_assignments`.`id` AND IF(`l_dep_ts`.`relevant_for_binary_packages`,EXISTS (SELECT 1 FROM `install_target_providers` AS `l_itps` JOIN `versions` AS `l_itp_vs` ON `l_itps`.`version`=`l_itp_vs`.`id` JOIN `binary_packages` AS `dep_bp` ON `l_itps`.`package`=`dep_bp`.`id` JOIN `binary_packages_in_repositories` AS `dep_bpir` ON `dep_bp`.`id`=`dep_bpir`.`package` AND `dep_bpir`.`repository`=9 JOIN `build_assignments` AS `dep_ba` ON `dep_bp`.`build_assignment`=`dep_ba`.`id` AND (NOT EXISTS (SELECT 1 FROM `failed_builds` WHERE `failed_builds`.`date`<=ADDTIME(NOW(),"-1 00:00:00") AND `failed_builds`.`build_assignment`=`dep_ba`.`id`) OR `dep_bp`.`pkgname` LIKE "haskell-%") JOIN `architecture_compatibilities` ON `architecture_compatibilities`.`built_for`=`dep_bp`.`architecture` AND `architecture_compatibilities`.`fully_compatible` WHERE `l_itps`.`install_target`=`l_deps`.`depending_on` AND `dep_bp`.`build_assignment`!=`build_assignments`.`id` AND `architecture_compatibilities`.`runs_on`=`build_command_architectures`.`id`),NOT EXISTS (SELECT 1 FROM `install_target_providers` AS `l_itps` JOIN `versions` AS `l_itp_vs` ON `l_itps`.`version`=`l_itp_vs`.`id` JOIN `binary_packages` AS `dep_bp` ON `l_itps`.`package`=`dep_bp`.`id` JOIN `binary_packages_in_repositories` AS `dep_bpir` ON `dep_bp`.`id`=`dep_bpir`.`package` JOIN `repositories` AS `dep_r` ON `dep_bpir`.`repository`=`dep_r`.`id` WHERE `l_itps`.`install_target`=`l_deps`.`depending_on` AND (`dep_r`.`is_on_master_mirror` OR `dep_bp`.`build_assignment`=`build_assignments`.`id`) AND `dep_r`.`architecture`=`build_command_architectures`.`id` AND ((`l_deps`.`version_relation`="<" AND `l_itp_vs`.`order`<`l_dep_vs`.`order`) OR (`l_deps`.`version_relation`="<=" AND `l_itp_vs`.`order`<=`l_dep_vs`.`order`) OR (`l_deps`.`version_relation`=">" AND `l_itp_vs`.`order`>`l_dep_vs`.`order`) OR (`l_deps`.`version_relation`=">=" AND `l_itp_vs`.`order`>=`l_dep_vs`.`order`) OR (`l_deps`.`version_relation`="=" AND `l_itp_vs`.`order`=`l_dep_vs`.`order`))))) OR `toolchain_order`.`pkgbase` IS NOT NULL) AND `binary_packages_in_repositories`.`repository`=9 AND `architectures`.`name` = from_base64("cGVudGl1bTQ="); INSERT IGNORE INTO `considered_build_assignments_2` (`id`) SELECT `considered_build_assignments`.`id` FROM `considered_build_assignments`; CREATE TEMPORARY TABLE `toolchain_architectures` (`id` SMALLINT NOT NULL,PRIMARY KEY (`id`)); INSERT IGNORE INTO `toolchain_architectures` (`id`) SELECT `build_assignments`.`architecture` FROM `considered_build_assignments` JOIN `build_assignments` ON `build_assignments`.`id`=`considered_build_assignments`.`id` JOIN `package_sources` ON `build_assignments`.`package_source`=`package_sources`.`id` JOIN `toolchain_order` ON `package_sources`.`pkgbase`=`toolchain_order`.`pkgbase`; DELETE `considered_build_assignments` FROM `toolchain_architectures` JOIN `build_assignments` ON `build_assignments`.`architecture`=`toolchain_architectures`.`id` JOIN `considered_build_assignments` ON `build_assignments`.`id`=`considered_build_assignments`.`id` JOIN `package_sources` ON `build_assignments`.`package_source`=`package_sources`.`id` LEFT JOIN `toolchain_order` ON `package_sources`.`pkgbase`=`toolchain_order`.`pkgbase` WHERE `toolchain_order`.`number` IS NULL; DELETE `considered_build_assignments_2` FROM `considered_build_assignments_2`; INSERT IGNORE INTO `considered_build_assignments_2` (`id`) SELECT `considered_build_assignments`.`id` FROM `considered_build_assignments`; INSERT IGNORE INTO `considered_build_assignments_3` (`id`) SELECT `considered_build_assignments`.`id` FROM `considered_build_assignments`; INSERT IGNORE INTO `considered_build_assignments_4` (`id`) SELECT `considered_build_assignments`.`id` FROM `considered_build_assignments`; CREATE TEMPORARY TABLE `ordered_considered_build_assignments`(`order` BIGINT NOT NULL AUTO_INCREMENT,`id` BIGINT NOT NULL,`exists_blocked` BIT NOT NULL,`exists_built` BIT NOT NULL,`exists_unblocked` BIT NOT NULL,PRIMARY KEY (`order`),KEY (`id`)); CREATE TEMPORARY TABLE `orders`(`order` BIGINT NOT NULL AUTO_INCREMENT,PRIMARY KEY (`order`)); INSERT IGNORE INTO `ordered_considered_build_assignments` (`id`,`exists_blocked`,`exists_built`,`exists_unblocked`)SELECT `build_assignments`.`id`,EXISTS (SELECT 1 FROM `toolchain_order` AS `late` JOIN `toolchain_order` AS `early` ON `late`.`pkgbase`!=`early`.`pkgbase` AND `late`.`number`>`early`.`number` JOIN `package_sources` AS `e_ps` ON `early`.`pkgbase`=`e_ps`.`pkgbase` JOIN `build_assignments` AS `e_ba` ON `e_ps`.`id`=`e_ba`.`package_source` JOIN `considered_build_assignments_3` AS `e_cba` ON `e_cba`.`id`=`e_ba`.`id` WHERE `late`.`pkgbase`=`package_sources`.`pkgbase` AND (`late`.`requires_all_dependencies_built` OR NOT EXISTS (SELECT 1 FROM `binary_packages` AS `e_bp` JOIN `binary_packages_in_repositories` AS `e_bpir` ON `e_bp`.`id`=`e_bpir`.`package` JOIN `repositories` AS `e_r` ON `e_bpir`.`repository`=`e_r`.`id` WHERE `e_bp`.`build_assignment`=`e_ba`.`id` AND `e_r`.`is_on_master_mirror`))) AS `exists_blocked`,EXISTS (SELECT 1 FROM `binary_packages_in_repositories` JOIN `repositories` ON `binary_packages_in_repositories`.`repository`=`repositories`.`id` AND `repositories`.`is_on_master_mirror` JOIN `architecture_compatibilities` ON `repositories`.`architecture`=`architecture_compatibilities`.`built_for` AND `architecture_compatibilities`.`build_slave_compatible` JOIN `architectures` ON `architectures`.`id`=`architecture_compatibilities`.`runs_on` AND `architectures`.`name`=from_base64("cGVudGl1bTQ=") JOIN `binary_packages` ON `binary_packages_in_repositories`.`package`=`binary_packages`.`id` WHERE `binary_packages`.`build_assignment`=`build_assignments`.`id`) AS `exists_built`,EXISTS (SELECT 1 FROM `toolchain_order` AS `late` WHERE NOT EXISTS (SELECT 1 FROM `toolchain_order` AS `early` JOIN `package_sources` AS `e_ps` ON `early`.`pkgbase`=`e_ps`.`pkgbase` JOIN `build_assignments` AS `e_ba` ON `e_ps`.`id`=`e_ba`.`package_source` JOIN `considered_build_assignments_4` AS `e_cba` ON `e_ba`.`id`=`e_cba`.`id` WHERE `late`.`pkgbase`!=`early`.`pkgbase` AND `late`.`number`>`early`.`number`) AND `late`.`pkgbase`=`package_sources`.`pkgbase`) AS `exists_unblocked` FROM `considered_build_assignments` JOIN `build_assignments` ON `build_assignments`.`id`=`considered_build_assignments`.`id` JOIN `toolchain_architectures` ON `build_assignments`.`architecture`=`toolchain_architectures`.`id` JOIN `package_sources` ON `build_assignments`.`package_source`=`package_sources`.`id` ORDER BY `exists_blocked`,`exists_built`,`exists_unblocked` DESC; INSERT IGNORE INTO `orders`(`order`) SELECT MIN(`ordered_considered_build_assignments`.`order`) FROM `ordered_considered_build_assignments` JOIN `build_assignments` ON `build_assignments`.`id`=`ordered_considered_build_assignments`.`id` JOIN `toolchain_architectures` JOIN `architecture_compatibilities` ON `architecture_compatibilities`.`fully_compatible` AND ((`architecture_compatibilities`.`runs_on`=`build_assignments`.`architecture` AND `architecture_compatibilities`.`built_for`=`toolchain_architectures`.`id`) OR (`architecture_compatibilities`.`built_for`=`build_assignments`.`architecture` AND `architecture_compatibilities`.`runs_on`=`toolchain_architectures`.`id`)) GROUP BY `toolchain_architectures`.`id`; DELETE `considered_build_assignments` FROM `toolchain_architectures` JOIN `build_assignments` ON `build_assignments`.`architecture`=`toolchain_architectures`.`id` JOIN `considered_build_assignments` ON `build_assignments`.`id`=`considered_build_assignments`.`id`; INSERT IGNORE INTO `considered_build_assignments` (`id`) SELECT `ordered_considered_build_assignments`.`id` FROM `ordered_considered_build_assignments` JOIN `orders` ON `orders`.`order`=`ordered_considered_build_assignments`.`order`; DROP TEMPORARY TABLE `ordered_considered_build_assignments`; DROP TEMPORARY TABLE `orders`; DELETE `considered_build_assignments` FROM `considered_build_assignments` JOIN `build_slaves` ON `considered_build_assignments`.`id`=`build_slaves`.`currently_building`; SELECT `considered_build_assignments`.`id` FROM `considered_build_assignments` JOIN `build_assignments` ON `build_assignments`.`id`=`considered_build_assignments`.`id` JOIN `package_sources` ON `build_assignments`.`package_source`=`package_sources`.`id` JOIN `binary_packages` ON `build_assignments`.`id`=`binary_packages`.`build_assignment` LEFT JOIN (SELECT `failed_builds`.`build_assignment`,COUNT(DISTINCT `failed_builds`.`id`) AS `count` FROM `failed_builds` GROUP BY `failed_builds`.`build_assignment`) AS `latest_failed_builds` ON `latest_failed_builds`.`build_assignment`=`build_assignments`.`id` LEFT JOIN (SELECT `tc_q`.`pkgbase`,`tc_q`.`architecture`,IF(`tc_q`.`is_blocked`,IF(`tc_q`.`is_built`,2,1),0) AS `priority` FROM (SELECT `late`.`pkgbase`,`binary_packages`.`architecture`,MAX(IF(EXISTS (SELECT 1 FROM `binary_packages` AS `built_bp` JOIN `binary_packages_in_repositories` AS `built_bpir` ON `built_bp`.`id`=`built_bpir`.`package` JOIN `repositories` AS `built_r` ON `built_bpir`.`repository`=`built_r`.`id` AND `built_r`.`is_on_master_mirror` WHERE `built_bp`.`build_assignment`=`build_assignments`.`id`),1,0)) AS `is_built`,MAX(IF(EXISTS (SELECT 1 FROM `package_sources` AS `block_ps` JOIN `build_assignments` AS `block_ba` ON `block_ps`.`id`=`block_ba`.`package_source` JOIN `binary_packages` AS `block_bp` ON `block_ba`.`id`=`block_bp`.`build_assignment` JOIN `binary_packages_in_repositories` AS `block_bpir` ON `block_bp`.`id`=`block_bpir`.`package` AND `block_bpir`.`repository`=9 JOIN `toolchain_order` AS `early` ON `block_ps`.`pkgbase`=`early`.`pkgbase` WHERE `early`.`number`<`late`.`number` AND `early`.`pkgbase`!=`late`.`pkgbase` AND (`block_bp`.`architecture`=`binary_packages`.`architecture` OR `block_bp`.`architecture`=1 OR `binary_packages`.`architecture`=1)),1,0)) AS `is_blocked` FROM `toolchain_order` AS `late` JOIN `package_sources` ON `late`.`pkgbase`=`package_sources`.`pkgbase` JOIN `build_assignments` ON `package_sources`.`id`=`build_assignments`.`package_source` JOIN `binary_packages` ON `build_assignments`.`id`=`binary_packages`.`build_assignment` JOIN `binary_packages_in_repositories` ON `binary_packages`.`id`=`binary_packages_in_repositories`.`package` AND `binary_packages_in_repositories`.`repository`=9 GROUP BY CONCAT(`late`.`pkgbase`,"-",`binary_packages`.`architecture`)) AS `tc_q`) AS `toolchain_query` ON `toolchain_query`.`pkgbase`=`package_sources`.`pkgbase` AND `toolchain_query`.`architecture`=`binary_packages`.`architecture` JOIN `architectures` ON `architectures`.`name`=from_base64("cGVudGl1bTQ=") ORDER BY IF(`package_sources`.`pkgbase`=from_base64("cHl0aG9uLXNldHVwdG9vbHM="),1,0) DESC,IFNULL(`toolchain_query`.`priority`,2),`build_assignments`.`priority` DESC,IFNULL(`latest_failed_builds`.`count`,0),IF(`architectures`.`id`= OR `architectures`.`id`=`build_assignments`.`architecture`,1,0) DESC,IF(EXISTS (SELECT 1 FROM `build_dependency_loops` WHERE `build_dependency_loops`.`build_assignment`=`build_assignments`.`id`),1,0),`package_sources`.`commit_time`,`build_assignments`.`id` LIMIT 1;