Преглед на файлове

FixCrmProcesInitIdx fix debug code

Piotr Labudda преди 10 години
родител
ревизия
e49a4eb83a
променени са 1 файла, в които са добавени 85 реда и са изтрити 8 реда
  1. 85 8
      SE/se-lib/Route/FixCrmProcesInitIdx.php

+ 85 - 8
SE/se-lib/Route/FixCrmProcesInitIdx.php

@@ -238,6 +238,7 @@ BEGIN
 			SET @i = @i + 1;
 		END WHILE;
 END
+
 SQL;
 		$sqlList['0-prepare-while-1-rm'] = "DROP PROCEDURE if exists `update_proces_init_idx_rec__while1`";
 		$sqlList['0-prepare-while-1-create'] = <<<SQL
@@ -258,6 +259,7 @@ BEGIN
 			SET @i = @i + 1;
 		END WHILE;
 END
+
 SQL;
 		$sqlList['0-prepare-while-2-rm'] = "DROP PROCEDURE if exists `update_proces_init_idx_rec__while2`";
 		$sqlList['0-prepare-while-2-create'] = <<<SQL
@@ -282,6 +284,7 @@ BEGIN
 		END WHILE;
 
 END
+
 SQL;
 		$sqlList__TEST_PERF_NO_DIFF['0-prepare-while-2-create'] = <<<SQL
 CREATE PROCEDURE `update_proces_init_idx_rec__while2`()
@@ -304,16 +307,21 @@ BEGIN
 		END WHILE;
 
 END
+
 SQL;
 		$sqlList['CONF.1--set-start-time-in-config'] = <<<SQL
+		-- CONF.1--set-start-time-in-config
 		replace into `CRM_CONFIG` (`conf_key`, `conf_val`) values ('tbl_indexer_CRM_PROCES_last_exec_start', NOW());
+
 SQL;
 		$sqlList['I.1--truncate-table'] = <<<SQL
-		-- // TODO: mv to the procedure end, and add insert into `CRM_PROCES_idx` select * from `CRM_PROCES_idx_TEMP`;
-		-- truncate table `CRM_PROCES_idx`;
+		-- I.1--truncate-table
+		-- truncate table `CRM_PROCES_idx_TEMP`;
 		DROP TABLE IF EXISTS `CRM_PROCES_idx_TEMP`;
+
 SQL;
 		$sqlList['I.2--fill-CRM_PROCES_idx_TEMP'] = <<<SQL
+		-- I.2--fill-CRM_PROCES_idx_TEMP
 		-- Mysql BUG: "Can't reopen table" -- CREATE TEMPORARY TABLE `CRM_PROCES_idx_TEMP` (
 		-- You cannot refer to a TEMPORARY table more than once in the same query.
 			CREATE TABLE `CRM_PROCES_idx_TEMP` (
@@ -340,8 +348,10 @@ SQL;
 			from `CRM_PROCES` p
 			where p.`A_STATUS` in('NORMAL','WAITING')
 		;
+
 SQL;
 		$sqlList['G.1--before-while-2-set-initial-proc_with_groups_id'] = <<<SQL
+		-- G.1--before-while-2-set-initial-proc_with_groups_id
 		update `CRM_PROCES_idx_TEMP` i
 				join `CRM_WSKAZNIK` as wsk on(wsk.`ID_PROCES`=i.`ID_PROCES`
 						and wsk.`A_STATUS` in('NORMAL', 'WAITING')
@@ -355,17 +365,22 @@ SQL;
 					)
 			set
 				i.`idx_PROCES_WITH_GROUPS_ID`=i.`ID_PROCES`
-		-- TODO: main procedure (this rows was removed step before):
 			where i.`idx_PROCES_INIT_ID`>0
 		;
+
 SQL;
 		$sqlList['G.2--while-2-loop-update-proc_with_groups_id-from-parent'] = <<<SQL
+		-- G.2--while-2-loop-update-proc_with_groups_id-from-parent
 		call `update_proces_init_idx_rec__while2`();
+
 SQL;
 		$sqlList['P_INIT_ID.1--fill_idx_INIT'] = <<<SQL
+		-- P_INIT_ID.1--fill_idx_INIT
 		call `update_proces_init_idx__loop__fill_idx_INIT`();
+
 SQL;
 		$sqlList['GOTO_AND_RET.1--from-7-fill-goto_and_return'] = <<<SQL
+		-- GOTO_AND_RET.1--from-7-fill-goto_and_return
 		insert ignore into `CRM_PROCES_idx_TEMP` (`ID_PROCES`,`TYPE`,`PARENT_ID`,`idx_PROCES_INIT_ID`,`idx_MAIN_PROCES_INIT_ID`,`idx_PROCES_WITH_GROUPS_ID`)
 			select g.`ID`
 				, 'GOTO_AND_RETURN' as `TYPE`
@@ -387,6 +402,7 @@ SQL;
 
 SQL;
 		$sqlList['GOTO_AND_RET.2--fill-childrens-of-goto_and_return'] = <<<SQL
+		-- GOTO_AND_RET.2--fill-childrens-of-goto_and_return
 		insert ignore into `CRM_PROCES_idx_TEMP` (`ID_PROCES`,`TYPE`,`PARENT_ID`,`idx_PROCES_INIT_ID`,`idx_MAIN_PROCES_INIT_ID`,`idx_PROCES_WITH_GROUPS_ID`)
 			select ic.`ID_PROCES`
 				, 'GOTO_AND_RETURN_CHILD' as `TYPE`
@@ -405,12 +421,14 @@ SQL;
 SQL;
 		$sqlList__TODO_IS_NEEDED__['4.2-NEW-while-1'] = <<<SQL
 		call `update_proces_init_idx_rec__while1`();
+
 SQL;
 		// TODO: mv here loop insert goto_and_return
 		// TODO: add idx_MAIN_PROCES_INIT_ID - which proces has goto_end_return for this step
 		$sqlList__TODO_SEE_IDX_2__['CLEANUP.1--remove-not-needed-rows'] = <<<SQL
 		-- // TODO: add to main procedure
 		delete from `CRM_PROCES_idx_TEMP` where `idx_PROCES_INIT_ID`=0;
+
 SQL;
 		$sqlList__TODO_SEE_IDX_2__['CLEANUP.2--update-idx_PROCES_WITH_GROUPS_ID-zero-where-null'] = <<<SQL
 		update `CRM_PROCES_idx_TEMP`
@@ -434,15 +452,69 @@ SQL;
 SQL;
 		$sqlList__TODO_IS_NEEDED__['10-delete-where-!idx_PROCES_WITH_GROUPS_ID'] = <<<SQL
 		delete from `CRM_PROCES_idx_TEMP` where `idx_PROCES_WITH_GROUPS_ID` is null or `idx_PROCES_WITH_GROUPS_ID`=0;
+
+SQL;
+		$sqlList['GOTO_AND_RET.3--fill-goto_and_return_lvl2'] = <<<SQL
+		-- GOTO_AND_RET.3--fill-goto_and_return_lvl2
+		-- gc  p(5105) is GOTO_AND_RETURN_CHILD pID(5061) pI(5039) pIM(5040) pG(5040)
+		-- gc  p(5105) is GOTO_AND_RETURN_CHILD pID(5061) pI(5039) pIM(5100) pG(5100)
+		-- gg  p(5103) is GOTO_AND_RETURN       pID(5105) pI(5103) pIM(5039) pG(NULL)
+		-- +   p(5103) is GOTO_AND_RETURN_LVL2  pID(5105) pI(5103) pIM(5040) pG(5040)
+		-- +   p(5103) is GOTO_AND_RETURN_LVL2  pID(5105) pI(5103) pIM(5100) pG(5100)
+		insert ignore into `CRM_PROCES_idx_TEMP`  (`ID_PROCES`,`TYPE`,`PARENT_ID`,`idx_PROCES_INIT_ID`,`idx_MAIN_PROCES_INIT_ID`,`idx_PROCES_WITH_GROUPS_ID`)
+			select gg.`ID_PROCES` as `ID_PROCES`
+				, 'GOTO_AND_RETURN_LVL2' as `TYPE`
+				, gg.`PARENT_ID` as `PARENT_ID`
+				, gg.`idx_PROCES_INIT_ID` as `idx_PROCES_INIT_ID`
+				, gc.`idx_MAIN_PROCES_INIT_ID` as `idx_MAIN_PROCES_INIT_ID`
+				, IF(gg.`idx_PROCES_WITH_GROUPS_ID` is null, gc.`idx_PROCES_WITH_GROUPS_ID`, gg.`idx_PROCES_WITH_GROUPS_ID`) as `idx_PROCES_WITH_GROUPS_ID`
+		--		, 'gc', gc.*, 'gg', gg.*
+			from `CRM_PROCES_idx_TEMP` gg
+				join `CRM_PROCES_idx_TEMP` gc on(gc.`ID_PROCES`=gg.`PARENT_ID`)
+			where gg.`TYPE`='GOTO_AND_RETURN'
+				and gc.`TYPE`='GOTO_AND_RETURN_CHILD'
+		;
+
+SQL;
+		$sqlList['GOTO_AND_RET.3--fill-childrens-of-goto_and_return_lvl2'] = <<<SQL
+		-- GOTO_AND_RET.3--fill-childrens-of-goto_and_return_lvl2
+		-- i   p(5103) is GOTO_AND_RETURN_LVL2       pID(5105) pI(5103) pIM(5040) pG(5040)
+		-- i   p(5103) is GOTO_AND_RETURN_LVL2       pID(5105) pI(5103) pIM(5100) pG(5100)
+		-- ic  p(5104) is GOTO_AND_RETURN_CHILD      pID(5103) pI(5103) pIM(5039) pG(NULL)
+		-- ic  p(5104) is GOTO_AND_RETURN_CHILD      pID(5103) pI(5103) pIM(5039) pG(NULL)
+		-- +   p(5104) is GOTO_AND_RETURN_CHILD_LVL2 pID(5103) pI(5103) pIM(5100) pG(5100)
+		-- +   p(5104) is GOTO_AND_RETURN_CHILD_LVL2 pID(5103) pI(5103) pIM(5040) pG(5040)
+		insert ignore into `CRM_PROCES_idx_TEMP` (`ID_PROCES`,`TYPE`,`PARENT_ID`,`idx_PROCES_INIT_ID`,`idx_MAIN_PROCES_INIT_ID`,`idx_PROCES_WITH_GROUPS_ID`)
+			select ic.`ID_PROCES`
+				, 'GOTO_AND_RETURN_CHILD_LVL2' as `TYPE`
+				, ic.`PARENT_ID` as `PARENT_ID`
+				, ic.`idx_PROCES_INIT_ID` as `idx_PROCES_INIT_ID`
+				, i.`idx_MAIN_PROCES_INIT_ID` as `idx_MAIN_PROCES_INIT_ID`
+				, IF(ic.`idx_PROCES_WITH_GROUPS_ID` is null, i.`idx_PROCES_WITH_GROUPS_ID`, ic.`idx_PROCES_WITH_GROUPS_ID`) as `idx_PROCES_WITH_GROUPS_ID`
+		--		, 'i', i.*, 'ic', ic.*
+			from `CRM_PROCES_idx_TEMP` i
+				join `CRM_PROCES_idx_TEMP` ic on(
+					ic.`idx_PROCES_INIT_ID`=i.`ID_PROCES`
+					and ic.`ID_PROCES`!=i.`ID_PROCES`
+					and ic.`TYPE`='GOTO_AND_RETURN_CHILD'
+				)
+			where i.`TYPE`='GOTO_AND_RETURN_LVL2'
+		;
+
 SQL;
 		$sqlList['IDX.1--clear-CRM_PROCES_idx'] = <<<SQL
+		-- IDX.1--clear-CRM_PROCES_idx
 		truncate table `CRM_PROCES_idx`;
+
 SQL;
 		$sqlList['IDX.2--update-CRM_PROCES_idx-from-temp'] = <<<SQL
-		insert into `CRM_PROCES_idx`
-			select i.* from `CRM_PROCES_idx_TEMP` i
+		-- IDX.2--update-CRM_PROCES_idx-from-temp
+		insert into `CRM_PROCES_idx` (`ID_PROCES`,`PARENT_ID`,`TYPE`,`idx_PROCES_INIT_ID`,`idx_MAIN_PROCES_INIT_ID`,`idx_PROCES_WITH_GROUPS_ID`)
+			select i.`ID_PROCES`,i.`PARENT_ID`,i.`TYPE`,i.`idx_PROCES_INIT_ID`,i.`idx_MAIN_PROCES_INIT_ID`,i.`idx_PROCES_WITH_GROUPS_ID`
+			from `CRM_PROCES_idx_TEMP` i
 			where i.`idx_PROCES_INIT_ID`>0 and i.`idx_PROCES_WITH_GROUPS_ID` is not null
 		;
+
 SQL;
 		$sqlList__TODO_OFF_time_0_1__['P.1--update-CRM_PROCES-idx_PROCES_INIT_ID'] = <<<SQL
 		update `CRM_PROCES` p
@@ -451,9 +523,12 @@ SQL;
 
 SQL;
 		$sqlList['GP.1--clear-CRM_PROCES_idx_GROUP_to_PROCES'] = <<<SQL
+		-- GP.1--clear-CRM_PROCES_idx_GROUP_to_PROCES
 		truncate table `CRM_PROCES_idx_GROUP_to_PROCES`;
+
 SQL;
 		$sqlList['GP.2--fill-CRM_PROCES_idx_GROUP_to_PROCES'] = <<<SQL
+		-- GP.2--fill-CRM_PROCES_idx_GROUP_to_PROCES
 		insert ignore into `CRM_PROCES_idx_GROUP_to_PROCES` (`ID_PROCES`,`ID_GROUP`)
 			select i.`ID_PROCES` as ID_PROCES, z.`ID` as ID_GROUP
 			from `CRM_PROCES_idx` i
@@ -472,7 +547,9 @@ SQL;
 
 SQL;
 		$sqlList['CONF.2--set-end-time-in-config'] = <<<SQL
+		-- CONF.2--set-end-time-in-config
 		replace into `CRM_CONFIG` (`conf_key`, `conf_val`) values ('tbl_indexer_CRM_PROCES_last_exec_end', NOW());
+
 SQL;
 		$db = DB::getDB();
 		if ($db->has_errors()) {
@@ -796,7 +873,7 @@ BEGIN
 			SET @i = @i + 1;
 		END WHILE;
 
-		-- 'P_INIT_ID.1--fill_idx_INIT
+		-- P_INIT_ID.1--fill_idx_INIT
 		SET @i = 0;
 		SET @loopLomit = 100;
 		SET @pinitCnt = 1;
@@ -848,7 +925,7 @@ BEGIN
 			where i.`TYPE`='GOTO_AND_RETURN'
 		;
 
-		-- // TODO: fill with goto_and_ret level 2
+		-- GOTO_AND_RET.3--fill-goto_and_return_lvl2
 		-- gc  p(5105) is GOTO_AND_RETURN_CHILD pID(5061) pI(5039) pIM(5040) pG(5040)
 		-- gc  p(5105) is GOTO_AND_RETURN_CHILD pID(5061) pI(5039) pIM(5100) pG(5100)
 		-- gg  p(5103) is GOTO_AND_RETURN       pID(5105) pI(5103) pIM(5039) pG(NULL)
@@ -868,7 +945,7 @@ BEGIN
 				and gc.`TYPE`='GOTO_AND_RETURN_CHILD'
 		;
 
-		-- // TODO: fill childrens for goto_and_ret level 2
+		-- GOTO_AND_RET.3--fill-childrens-of-goto_and_return_lvl2
 		-- i   p(5103) is GOTO_AND_RETURN_LVL2       pID(5105) pI(5103) pIM(5040) pG(5040)
 		-- i   p(5103) is GOTO_AND_RETURN_LVL2       pID(5105) pI(5103) pIM(5100) pG(5100)
 		-- ic  p(5104) is GOTO_AND_RETURN_CHILD      pID(5103) pI(5103) pIM(5039) pG(NULL)