|
|
@@ -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)
|