From d708491deef10c6e2e2dd35fb1513ec7c57afd57 Mon Sep 17 00:00:00 2001 From: Kirill Solomko Date: Wed, 6 Mar 2019 14:05:39 +0100 Subject: [PATCH] TT#54553 add accounting.cdr_group table * this table is supposed to group cdrs by a common identifier. for now it is call_id it does not contain a dictionary like other cdr_* relation tables because the field must be of the similar type as well as to make it possible to have multi field groups in the future. Change-Id: Ie304c00bb5f061c80402de7a1072c206b11619ab --- db_scripts/diff/15516.down | 31 ++++++++++++++++++++++++++++ db_scripts/diff/15516.up | 41 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 db_scripts/diff/15516.down create mode 100644 db_scripts/diff/15516.up diff --git a/db_scripts/diff/15516.down b/db_scripts/diff/15516.down new file mode 100644 index 00000000..daa5cdd1 --- /dev/null +++ b/db_scripts/diff/15516.down @@ -0,0 +1,31 @@ +USE accounting; + +drop trigger if exists cdr_cascade_update_trig; +delimiter ;; +create trigger cdr_cascade_update_trig after update on accounting.cdr + for each row begin + + update accounting.cdr_relation_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_cash_balance_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_time_balance_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_tag_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_export_status_data set cdr_id = NEW.id where cdr_id = OLD.id; + + end;; +delimiter ; + +drop trigger if exists cdr_cascade_delete_trig; +delimiter ;; +create trigger cdr_cascade_delete_trig after delete on accounting.cdr + for each row begin + + delete from accounting.cdr_relation_data where cdr_id = OLD.id; + delete from accounting.cdr_cash_balance_data where cdr_id = OLD.id; + delete from accounting.cdr_time_balance_data where cdr_id = OLD.id; + delete from accounting.cdr_tag_data where cdr_id = OLD.id; + delete from accounting.cdr_export_status_data where cdr_id = OLD.id; + + end;; +delimiter ; + +DROP TABLE cdr_group; diff --git a/db_scripts/diff/15516.up b/db_scripts/diff/15516.up new file mode 100644 index 00000000..129a4112 --- /dev/null +++ b/db_scripts/diff/15516.up @@ -0,0 +1,41 @@ +USE accounting; + +CREATE TABLE `cdr_group` ( + `cdr_id` int(10) unsigned NOT NULL, + `call_id` VARCHAR(255) NOT NULL, + `cdr_start_time` decimal(13,3) NOT NULL, + PRIMARY KEY (`cdr_id`,`call_id`,`cdr_start_time`), + KEY `cdrgroup_callid_idx` (`call_id`), + KEY `cdrgroup_stime_idx` (`cdr_start_time`) +) ENGINE=InnoDB CHARSET=utf8; + +drop trigger if exists cdr_cascade_update_trig; +delimiter ;; +create trigger cdr_cascade_update_trig after update on accounting.cdr + for each row begin + + update accounting.cdr_relation_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_cash_balance_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_time_balance_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_tag_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_export_status_data set cdr_id = NEW.id where cdr_id = OLD.id; + update accounting.cdr_group set cdr_id = NEW.id where cdr_id = OLD.id; + + end;; +delimiter ; + +drop trigger if exists cdr_cascade_delete_trig; +delimiter ;; +create trigger cdr_cascade_delete_trig after delete on accounting.cdr + for each row begin + + delete from accounting.cdr_relation_data where cdr_id = OLD.id; + delete from accounting.cdr_cash_balance_data where cdr_id = OLD.id; + delete from accounting.cdr_time_balance_data where cdr_id = OLD.id; + delete from accounting.cdr_tag_data where cdr_id = OLD.id; + delete from accounting.cdr_export_status_data where cdr_id = OLD.id; + delete from accounting.cdr_group where cdr_id = OLD.id; + + end;; +delimiter ; +