root/sql/sprocs/prism.add_tags.sql

Revision a27cd9b462a686609eff744d1e6553da5605090b, 2.2 kB (checked in by Depesz Lubaczewski <depesz@omniti.com>, 4 years ago)

prism procedures, and simple tool to split pg_dump -n prism -s output into many files

  • Property mode set to 100644
Line 
1 CREATE OR REPLACE FUNCTION prism.add_tags(in_sid integer, in_metric_name text, in_tags text) RETURNS void
2     AS $$
3 DECLARE
4 v_sid integer;
5 v_metric_name text;
6 v_tags_array text[];
7 p_sid integer;
8 p_tags_array text[];
9 new_tags_array text[];
10  BEGIN
11      v_tags_array:= string_to_array(in_tags,'');
12      SELECT sid into p_sid
13       FROM stratcon.metric_tags
14       WHERE sid=in_sid AND metric_name=in_metric_name;
15      IF NOT FOUND THEN
16           SELECT sid,metric_name INTO v_sid, v_metric_name
17              FROM stratcon.metric_name_summary
18              WHERE sid=in_sid AND metric_name=in_metric_name;
19           IF NOT FOUND THEN
20                RAISE EXCEPTION 'Metric does not exist in metric_name_summary table';
21           ELSE
22          INSERT INTO stratcon.metric_tags (sid,metric_name,tags_array) values(v_sid, v_metric_name,v_tags_array);
23       END IF;
24      ELSE
25        SELECT tags_array INTO p_tags_array
26           FROM stratcon.metric_tags
27           WHERE sid=in_sid AND metric_name=in_metric_name;
28              new_tags_array:= array_append(p_tags_array, in_tags);
29            UPDATE  stratcon.metric_tags SET tags_array= new_tags_array WHERE sid=in_sid AND metric_name=in_metric_name;
30     END IF;
31   RETURN;
32 END
33 $$
34     LANGUAGE plpgsql;
35
36
37 CREATE OR REPLACE FUNCTION prism.add_tags(in_sid integer, in_tags text) RETURNS void
38     AS $$
39 DECLARE
40 v_sid integer;
41 v_metric_name text;
42 v_tags_array text[];
43 p_sid integer;
44 p_tags_array text[];
45 new_tags_array text[];
46  BEGIN
47      v_tags_array:= string_to_array(in_tags,'');
48      SELECT sid into p_sid
49       FROM stratcon.check_tags
50       WHERE sid=in_sid;
51      IF NOT FOUND THEN
52        INSERT INTO stratcon.check_tags (sid,tags_array) values(in_sid, v_tags_array);
53      ELSE
54        SELECT tags_array INTO p_tags_array
55           FROM stratcon.check_tags
56           WHERE sid=in_sid;
57              new_tags_array:= array_append(p_tags_array, in_tags);
58            UPDATE  stratcon.check_tags SET tags_array= new_tags_array WHERE sid=in_sid;
59     END IF;
60   RETURN;
61 END
62 $$
63     LANGUAGE plpgsql;
64
65
66 ALTER FUNCTION prism.add_tags(in_sid integer, in_metric_name text, in_tags text) OWNER TO reconnoiter;
67
68
69 ALTER FUNCTION prism.add_tags(in_sid integer, in_tags text) OWNER TO reconnoiter;
Note: See TracBrowser for help on using the browser.