1
+ -- Clear frame_state_display_overrides when a job gets deleted
2
+
3
+ CREATE OR REPLACE FUNCTION trigger__before_delete_job ()
4
+ RETURNS TRIGGER AS $body$
5
+ DECLARE
6
+ js JobStatType;
7
+ BEGIN
8
+ IF NOT EXISTS (SELECT FROM config WHERE str_key= ' DISABLE_HISTORY' ) THEN
9
+
10
+ SELECT
11
+ job_usage .int_core_time_success ,
12
+ job_usage .int_core_time_fail ,
13
+ job_usage .int_gpu_time_success ,
14
+ job_usage .int_gpu_time_fail ,
15
+ job_stat .int_waiting_count ,
16
+ job_stat .int_dead_count ,
17
+ job_stat .int_depend_count ,
18
+ job_stat .int_eaten_count ,
19
+ job_stat .int_succeeded_count ,
20
+ job_stat .int_running_count ,
21
+ job_mem .int_max_rss ,
22
+ job_mem .int_gpu_mem_max
23
+ INTO
24
+ js
25
+ FROM
26
+ job_mem,
27
+ job_usage,
28
+ job_stat
29
+ WHERE
30
+ job_usage .pk_job = job_mem .pk_job
31
+ AND
32
+ job_stat .pk_job = job_mem .pk_job
33
+ AND
34
+ job_mem .pk_job = OLD .pk_job ;
35
+
36
+ UPDATE
37
+ job_history
38
+ SET
39
+ pk_dept = OLD .pk_dept ,
40
+ int_core_time_success = js .int_core_time_success ,
41
+ int_core_time_fail = js .int_core_time_fail ,
42
+ int_gpu_time_success = js .int_gpu_time_success ,
43
+ int_gpu_time_fail = js .int_gpu_time_fail ,
44
+ int_frame_count = OLD .int_frame_count ,
45
+ int_layer_count = OLD .int_layer_count ,
46
+ int_waiting_count = js .int_waiting_count ,
47
+ int_dead_count = js .int_dead_count ,
48
+ int_depend_count = js .int_depend_count ,
49
+ int_eaten_count = js .int_eaten_count ,
50
+ int_succeeded_count = js .int_succeeded_count ,
51
+ int_running_count = js .int_running_count ,
52
+ int_max_rss = js .int_max_rss ,
53
+ int_gpu_mem_max = js .int_gpu_mem_max ,
54
+ b_archived = true,
55
+ int_ts_stopped = COALESCE(epoch(OLD .ts_stopped ), epoch(current_timestamp ))
56
+ WHERE
57
+ pk_job = OLD .pk_job ;
58
+
59
+ END IF;
60
+
61
+ DELETE FROM depend WHERE pk_job_depend_on= OLD .pk_job OR pk_job_depend_er= OLD .pk_job ;
62
+
63
+ -- This is the only real change on the trigger
64
+ DELETE FROM frame_state_display_overrides WHERE pk_frame in (
65
+ select pk_frame from frame f where f .pk_job = OLD .pk_job
66
+ );
67
+
68
+ DELETE FROM frame WHERE pk_job= OLD .pk_job ;
69
+ DELETE FROM layer WHERE pk_job= OLD .pk_job ;
70
+ DELETE FROM job_env WHERE pk_job= OLD .pk_job ;
71
+ DELETE FROM job_stat WHERE pk_job= OLD .pk_job ;
72
+ DELETE FROM job_resource WHERE pk_job= OLD .pk_job ;
73
+ DELETE FROM job_usage WHERE pk_job= OLD .pk_job ;
74
+ DELETE FROM job_mem WHERE pk_job= OLD .pk_job ;
75
+ DELETE FROM job_post where pk_job = OLD .pk_job ;
76
+ DELETE FROM comments WHERE pk_job= OLD .pk_job ;
77
+
78
+ RETURN OLD;
79
+ END
80
+ $body$
81
+ LANGUAGE PLPGSQL;
0 commit comments