File indexing completed on 2024-04-21 06:00:37
0001 -- 1 alter table project add column 0002 SET SQL_SAFE_UPDATES = 0; 0003 ALTER TABLE `project` 0004 ADD COLUMN `major_updated_at` timestamp DEFAULT now() AFTER `changed_at`; 0005 UPDATE `project` 0006 SET `major_updated_at` = IFNULL(`changed_at`, `created_at`); 0007 0008 -- 2 create trigger 0009 0010 DELIMITER $$ 0011 DROP TRIGGER IF EXISTS `trg_project_major_updated_at`$$ 0012 USE `root`$$ 0013 CREATE DEFINER ='root' TRIGGER `trg_project_major_updated_at` 0014 BEFORE UPDATE 0015 ON `project` 0016 FOR EACH ROW 0017 BEGIN 0018 IF `NEW`.`changed_at` <> `OLD`.`changed_at` AND DATEDIFF(`NEW`.`changed_at`, `OLD`.`major_updated_at`) > 7 THEN 0019 SET `NEW`.`major_updated_at` = `NEW`.`changed_at`; 0020 END IF; 0021 END$$ 0022 DELIMITER ; 0023 0024 0025 -- 3 alter generate_stat_projects procedure 0026 0027 DELIMITER $$ 0028 DROP PROCEDURE IF EXISTS `generate_stat_project`$$ 0029 CREATE PROCEDURE `generate_stat_project`() 0030 BEGIN 0031 DROP TABLE IF EXISTS `tmp_reported_projects`; 0032 CREATE TEMPORARY TABLE `tmp_reported_projects` 0033 ( 0034 PRIMARY KEY `primary` (`project_id`) 0035 ) 0036 AS 0037 SELECT `reports_project`.`project_id` AS `project_id`, 0038 COUNT(`reports_project`.`project_id`) AS `amount_reports`, 0039 MAX(`reports_project`.`created_at`) AS `latest_report` 0040 FROM `reports_project` 0041 WHERE (`reports_project`.`is_deleted` = 0 AND `reports_project`.`report_type` = 0) 0042 GROUP BY `reports_project`.`project_id`; 0043 0044 DROP TABLE IF EXISTS `tmp_project_package_types`; 0045 CREATE TEMPORARY TABLE `tmp_project_package_types` 0046 ( 0047 PRIMARY KEY `primary` (`project_id`) 0048 ) 0049 ENGINE MyISAM 0050 AS 0051 SELECT `tag_object`.`tag_parent_object_id` AS `project_id`, 0052 GROUP_CONCAT(DISTINCT `tag_object`.`tag_id`) AS `package_type_id_list`, 0053 GROUP_CONCAT(DISTINCT `tag`.`tag_fullname`) AS `package_name_list` 0054 FROM `tag_object` 0055 JOIN 0056 `tag` ON `tag_object`.`tag_id` = `tag`.`tag_id` 0057 JOIN 0058 `ppload`.`ppload_files` `files` ON `files`.`id` = `tag_object`.`tag_object_id` 0059 WHERE `tag_object`.`tag_group_id` = 8 0060 AND `tag_object`.`is_deleted` = 0 0061 AND `files`.`active` = 1 0062 GROUP BY `tag_object`.`tag_parent_object_id`; 0063 0064 DROP TABLE IF EXISTS `tmp_project_tags`; 0065 CREATE TEMPORARY TABLE `tmp_project_tags` 0066 ( 0067 PRIMARY KEY `primary` (`tag_project_id`) 0068 ) 0069 ENGINE MyISAM 0070 AS 0071 SELECT GROUP_CONCAT(`tag_name`) AS `tag_names`, 0072 GROUP_CONCAT(`tag_id`) AS `tag_ids`, 0073 `tag_project_id` 0074 FROM ( 0075 SELECT DISTINCT `tag`.`tag_name`, 0076 `tag`.`tag_id`, 0077 `tgo`.`tag_object_id` AS `tag_project_id` 0078 FROM `tag_object` AS `tgo` 0079 JOIN `tag` ON `tag`.`tag_id` = `tgo`.`tag_id` 0080 WHERE `tag_type_id` = 1 #project 0081 AND `tgo`.`is_deleted` = 0 0082 UNION ALL 0083 SELECT DISTINCT `tag`.`tag_name`, 0084 `tag`.`tag_ID`, 0085 `tgo`.`tag_parent_object_id` AS `tag_project_id` 0086 FROM `tag_object` AS `tgo` 0087 JOIN `tag` ON `tag`.`tag_id` = `tgo`.`tag_id` 0088 JOIN `ppload`.`ppload_files` `files` ON `files`.`id` = `tgo`.`tag_object_id` 0089 WHERE `tag_type_id` = 3 #file 0090 AND `files`.`active` = 1 0091 AND `tgo`.`is_deleted` = 0 0092 ) `A` 0093 GROUP BY `tag_project_id` 0094 ORDER BY `tag_project_id`; 0095 0096 DROP TABLE IF EXISTS `tmp_stat_projects`; 0097 CREATE TABLE `tmp_stat_projects` 0098 ( 0099 PRIMARY KEY `primary` (`project_id`), 0100 INDEX `idx_ppload` (`ppload_collection_id`), 0101 INDEX `idx_cat` (`project_category_id`), 0102 INDEX `idx_member` (`member_id`), 0103 INDEX `idx_source_url` (`source_url`(50)) 0104 ) 0105 ENGINE MyISAM 0106 AS 0107 SELECT `project`.`project_id` AS `project_id`, 0108 `project`.`member_id` AS `member_id`, 0109 `project`.`content_type` AS `content_type`, 0110 `project`.`project_category_id` AS `project_category_id`, 0111 `project`.`hive_category_id` AS `hive_category_id`, 0112 `project`.`status` AS `status`, 0113 `project`.`uuid` AS `uuid`, 0114 `project`.`pid` AS `pid`, 0115 `project`.`type_id` AS `type_id`, 0116 `project`.`title` AS `title`, 0117 `project`.`description` AS `description`, 0118 `project`.`version` AS `version`, 0119 `project`.`project_license_id` AS `project_license_id`, 0120 `project`.`image_big` AS `image_big`, 0121 `project`.`image_small` AS `image_small`, 0122 `project`.`start_date` AS `start_date`, 0123 `project`.`content_url` AS `content_url`, 0124 `project`.`created_at` AS `created_at`, 0125 `project`.`changed_at` AS `changed_at`, 0126 `project`.`major_updated_at` AS `major_updated_at`, 0127 `project`.`deleted_at` AS `deleted_at`, 0128 `project`.`creator_id` AS `creator_id`, 0129 `project`.`facebook_code` AS `facebook_code`, 0130 `project`.`source_url` AS `source_url`, 0131 `project`.`twitter_code` AS `twitter_code`, 0132 `project`.`google_code` AS `google_code`, 0133 `project`.`link_1` AS `link_1`, 0134 `project`.`embed_code` AS `embed_code`, 0135 CAST(`project`.`ppload_collection_id` AS UNSIGNED) AS `ppload_collection_id`, 0136 `project`.`validated` AS `validated`, 0137 `project`.`validated_at` AS `validated_at`, 0138 `project`.`featured` AS `featured`, 0139 `project`.`ghns_excluded` AS `ghns_excluded`, 0140 `project`.`amount` AS `amount`, 0141 `project`.`amount_period` AS `amount_period`, 0142 `project`.`claimable` AS `claimable`, 0143 `project`.`claimed_by_member` AS `claimed_by_member`, 0144 `project`.`count_likes` AS `count_likes`, 0145 `project`.`count_dislikes` AS `count_dislikes`, 0146 `project`.`count_comments` AS `count_comments`, 0147 `project`.`count_downloads_hive` AS `count_downloads_hive`, 0148 `project`.`source_id` AS `source_id`, 0149 `project`.`source_pk` AS `source_pk`, 0150 `project`.`source_type` AS `source_type`, 0151 `project`.`validated` AS `project_validated`, 0152 `project`.`uuid` AS `project_uuid`, 0153 `project`.`status` AS `project_status`, 0154 `project`.`created_at` AS `project_created_at`, 0155 `project`.`changed_at` AS `project_changed_at`, 0156 laplace_score(`project`.`count_likes`, `project`.`count_dislikes`) AS `laplace_score`, 0157 `member`.`type` AS `member_type`, 0158 `member`.`member_id` AS `project_member_id`, 0159 `member`.`username` AS `username`, 0160 `member`.`profile_image_url` AS `profile_image_url`, 0161 `member`.`city` AS `city`, 0162 `member`.`country` AS `country`, 0163 `member`.`created_at` AS `member_created_at`, 0164 `member`.`paypal_mail` AS `paypal_mail`, 0165 `project_category`.`title` AS `cat_title`, 0166 `project_category`.`xdg_type` AS `cat_xdg_type`, 0167 `project_category`.`name_legacy` AS `cat_name_legacy`, 0168 `project_category`.`show_description` AS `cat_show_description`, 0169 `stat_plings`.`amount_received` AS `amount_received`, 0170 `stat_plings`.`count_plings` AS `count_plings`, 0171 `stat_plings`.`count_plingers` AS `count_plingers`, 0172 `stat_plings`.`latest_pling` AS `latest_pling`, 0173 `trp`.`amount_reports` AS `amount_reports`, 0174 `tppt`.`package_type_id_list` AS `package_types`, 0175 `tppt`.`package_name_list` AS `package_names`, 0176 `t`.`tag_names` AS `tags`, 0177 `t`.`tag_ids` AS `tag_ids`, 0178 `sdqy`.`amount` AS `count_downloads_quarter`, 0179 `project_license`.`title` AS `project_license_title` 0180 FROM `project` 0181 JOIN `member` ON `member`.`member_id` = `project`.`member_id` 0182 JOIN `project_category` ON `project`.`project_category_id` = `project_category`.`project_category_id` 0183 LEFT JOIN `stat_plings` ON `stat_plings`.`project_id` = `project`.`project_id` 0184 LEFT JOIN `tmp_reported_projects` AS `trp` ON `trp`.`project_id` = `project`.`project_id` 0185 LEFT JOIN `tmp_project_package_types` AS `tppt` ON `tppt`.`project_id` = `project`.`project_id` 0186 LEFT JOIN `tmp_project_tags` AS `t` ON `t`.`tag_project_id` = `project`.`project_id` 0187 LEFT JOIN `stat_downloads_quarter_year` AS `sdqy` ON `sdqy`.`project_id` = `project`.`project_id` 0188 LEFT JOIN `project_license` ON `project_license`.`project_license_id` = `project`.`project_license_id` 0189 WHERE `member`.`is_deleted` = 0 0190 AND `member`.`is_active` = 1 0191 AND `project`.`type_id` = 1 0192 AND `project`.`status` = 100 0193 AND `project_category`.`is_active` = 1; 0194 0195 RENAME TABLE `stat_projects` TO `old_stat_projects`, `tmp_stat_projects` TO `stat_projects`; 0196 0197 DROP TABLE IF EXISTS `old_stat_projects`; 0198 END$$ 0199 DELIMITER ; 0200