Changeset f3544432ddf95a1f7eabd18d8fa0f355191362eb
- Timestamp:
- 09/24/08 19:50:24
(5 years ago)
- Author:
- Denish Patel <denish@omniti.com>
- git-committer:
- Denish Patel <denish@omniti.com> 1222285824 +0000
- git-parent:
[52dcc3a33357c5548101f702bf4eef254a2dfafb]
- git-author:
- Denish Patel <denish@omniti.com> 1222285824 +0000
- Message:
Added search and tags functionalities
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r146a7f3 |
rf354443 |
|
| 43 | 43 | |
|---|
| 44 | 44 | -- |
|---|
| | 45 | -- Name: metric_tags; Type: TABLE; Schema: prism; Owner: reconnoiter; Tablespace: |
|---|
| | 46 | -- |
|---|
| | 47 | |
|---|
| | 48 | CREATE TABLE metric_tags ( |
|---|
| | 49 | sid integer NOT NULL, |
|---|
| | 50 | metric_name text NOT NULL, |
|---|
| | 51 | metric_type character varying(22), |
|---|
| | 52 | tags_array text[] |
|---|
| | 53 | ); |
|---|
| | 54 | |
|---|
| | 55 | |
|---|
| | 56 | ALTER TABLE prism.metric_tags OWNER TO reconnoiter; |
|---|
| | 57 | |
|---|
| | 58 | -- |
|---|
| 45 | 59 | -- Name: saved_graphs; Type: TABLE; Schema: prism; Owner: reconnoiter; Tablespace: |
|---|
| 46 | 60 | -- |
|---|
| … | … | |
| 51 | 65 | saved boolean DEFAULT false NOT NULL, |
|---|
| 52 | 66 | title text, |
|---|
| 53 | | last_update timestamp without time zone NOT NULL |
|---|
| | 67 | last_update timestamp without time zone NOT NULL, |
|---|
| | 68 | ts_search_all tsvector |
|---|
| 54 | 69 | ); |
|---|
| 55 | 70 | |
|---|
| … | … | |
| 380 | 395 | metric_name text NOT NULL, |
|---|
| 381 | 396 | metric_type character varying(22), |
|---|
| 382 | | active boolean DEFAULT true |
|---|
| | 397 | active boolean DEFAULT true, |
|---|
| | 398 | ts_search_all tsvector |
|---|
| 383 | 399 | ); |
|---|
| 384 | 400 | |
|---|
| … | … | |
| 491 | 507 | |
|---|
| 492 | 508 | SET search_path = prism, pg_catalog; |
|---|
| | 509 | |
|---|
| | 510 | -- |
|---|
| | 511 | -- Name: add_tags(integer, text, text, text); Type: FUNCTION; Schema: prism; Owner: reconnoiter |
|---|
| | 512 | -- |
|---|
| | 513 | |
|---|
| | 514 | CREATE FUNCTION add_tags(in_sid integer, in_metric_name text, in_metric_type text, in_tags text) RETURNS void |
|---|
| | 515 | AS $$ |
|---|
| | 516 | DECLARE |
|---|
| | 517 | v_sid integer; |
|---|
| | 518 | v_metric_name text; |
|---|
| | 519 | v_metric_typle varchar(20); |
|---|
| | 520 | v_tags_array text[]; |
|---|
| | 521 | p_sid integer; |
|---|
| | 522 | p_tags_array text[]; |
|---|
| | 523 | new_tags_array text[]; |
|---|
| | 524 | BEGIN |
|---|
| | 525 | v_tags_array:= string_to_array(in_tags,''); |
|---|
| | 526 | SELECT sid into p_sid |
|---|
| | 527 | FROM prism.metric_tags |
|---|
| | 528 | WHERE sid=in_sid AND metric_name=in_metric_name AND metric_type=in_metric_type; |
|---|
| | 529 | IF NOT FOUND THEN |
|---|
| | 530 | SELECT sid,metric_name,metric_type INTO v_sid, v_metric_name,v_metric_typle |
|---|
| | 531 | FROM stratcon.metric_name_summary |
|---|
| | 532 | WHERE sid=in_sid AND metric_name=in_metric_name AND metric_type=in_metric_type; |
|---|
| | 533 | IF NOT FOUND THEN |
|---|
| | 534 | RAISE EXCEPTION 'Metric does not exist in metric_name_summary table'; |
|---|
| | 535 | ELSE |
|---|
| | 536 | INSERT INTO prism.metric_tags (sid,metric_name,metric_type,tags_array) values(v_sid, v_metric_name,v_metric_typle,v_tags_array); |
|---|
| | 537 | END IF; |
|---|
| | 538 | ELSE |
|---|
| | 539 | SELECT tags_array INTO p_tags_array |
|---|
| | 540 | FROM prism.metric_tags |
|---|
| | 541 | WHERE sid=in_sid AND metric_name=in_metric_name AND metric_type=in_metric_type; |
|---|
| | 542 | new_tags_array:= array_append(p_tags_array, in_tags); |
|---|
| | 543 | UPDATE prism.metric_tags SET tags_array= new_tags_array WHERE sid=in_sid AND metric_name=in_metric_name AND metric_type=in_metric_type; |
|---|
| | 544 | END IF; |
|---|
| | 545 | RETURN; |
|---|
| | 546 | END |
|---|
| | 547 | $$ |
|---|
| | 548 | LANGUAGE plpgsql; |
|---|
| | 549 | |
|---|
| | 550 | |
|---|
| | 551 | ALTER FUNCTION prism.add_tags(in_sid integer, in_metric_name text, in_metric_type text, in_tags text) OWNER TO reconnoiter; |
|---|
| 493 | 552 | |
|---|
| 494 | 553 | -- |
|---|
| … | … | |
| 510 | 569 | |
|---|
| 511 | 570 | ALTER FUNCTION prism.check_name_saved_graphs() OWNER TO reconnoiter; |
|---|
| | 571 | |
|---|
| | 572 | -- |
|---|
| | 573 | -- Name: remove_tags(integer, text, text, text); Type: FUNCTION; Schema: prism; Owner: reconnoiter |
|---|
| | 574 | -- |
|---|
| | 575 | |
|---|
| | 576 | CREATE FUNCTION remove_tags(in_sid integer, in_metric_name text, in_metric_type text, in_tags text) RETURNS void |
|---|
| | 577 | AS $$ |
|---|
| | 578 | DECLARE |
|---|
| | 579 | v_tags_array text[]; |
|---|
| | 580 | p_sid integer; |
|---|
| | 581 | p_tags_array text[]; |
|---|
| | 582 | new_tags_array text[]; |
|---|
| | 583 | i int; |
|---|
| | 584 | BEGIN |
|---|
| | 585 | v_tags_array:= string_to_array(in_tags,''); |
|---|
| | 586 | SELECT sid,tags_array into p_sid ,p_tags_array |
|---|
| | 587 | FROM prism.metric_tags |
|---|
| | 588 | WHERE sid=in_sid AND metric_name=in_metric_name AND metric_type=in_metric_type; |
|---|
| | 589 | IF NOT FOUND THEN |
|---|
| | 590 | |
|---|
| | 591 | RAISE EXCEPTION 'Metric tags does not found to be removed'; |
|---|
| | 592 | |
|---|
| | 593 | ELSE |
|---|
| | 594 | FOR i IN array_lower(p_tags_array, 1)..array_upper(p_tags_array, 1) LOOP |
|---|
| | 595 | IF NOT p_tags_array[i] =any(v_tags_array) THEN |
|---|
| | 596 | new_tags_array = array_append(new_tags_array, p_tags_array[i]); |
|---|
| | 597 | END IF; |
|---|
| | 598 | END LOOP; |
|---|
| | 599 | |
|---|
| | 600 | UPDATE prism.metric_tags SET tags_array= new_tags_array WHERE sid=in_sid AND metric_name=in_metric_name AND metric_type=in_metric_type; |
|---|
| | 601 | END IF; |
|---|
| | 602 | RETURN; |
|---|
| | 603 | END |
|---|
| | 604 | $$ |
|---|
| | 605 | LANGUAGE plpgsql; |
|---|
| | 606 | |
|---|
| | 607 | |
|---|
| | 608 | ALTER FUNCTION prism.remove_tags(in_sid integer, in_metric_name text, in_metric_type text, in_tags text) OWNER TO reconnoiter; |
|---|
| | 609 | |
|---|
| | 610 | -- |
|---|
| | 611 | -- Name: trig_update_tsvector_from_metric_tags(); Type: FUNCTION; Schema: prism; Owner: reconnoiter |
|---|
| | 612 | -- |
|---|
| | 613 | |
|---|
| | 614 | CREATE FUNCTION trig_update_tsvector_from_metric_tags() RETURNS trigger |
|---|
| | 615 | AS $$ |
|---|
| | 616 | DECLARE |
|---|
| | 617 | BEGIN |
|---|
| | 618 | UPDATE stratcon.metric_name_summary SET ts_search_all=stratcon.metric_name_summary_tsvector(NEW.sid,NEW.metric_name,NEW.metric_type); |
|---|
| | 619 | RETURN NEW; |
|---|
| | 620 | END |
|---|
| | 621 | $$ |
|---|
| | 622 | LANGUAGE plpgsql; |
|---|
| | 623 | |
|---|
| | 624 | |
|---|
| | 625 | ALTER FUNCTION prism.trig_update_tsvector_from_metric_tags() OWNER TO reconnoiter; |
|---|
| 512 | 626 | |
|---|
| 513 | 627 | SET search_path = public, pg_catalog; |
|---|
| … | … | |
| 1038 | 1152 | |
|---|
| 1039 | 1153 | ALTER FUNCTION stratcon.loading_dock_status_s_change_log() OWNER TO reconnoiter; |
|---|
| | 1154 | |
|---|
| | 1155 | -- |
|---|
| | 1156 | -- Name: metric_name_summary_tsvector(integer, text, text); Type: FUNCTION; Schema: stratcon; Owner: reconnoiter |
|---|
| | 1157 | -- |
|---|
| | 1158 | |
|---|
| | 1159 | CREATE FUNCTION metric_name_summary_tsvector(in_sid integer, in_metric_name text, in_metric_type text) RETURNS tsvector |
|---|
| | 1160 | AS $$DECLARE |
|---|
| | 1161 | ref_sid integer; |
|---|
| | 1162 | ref_module text; |
|---|
| | 1163 | ref_name text; |
|---|
| | 1164 | ref_target text; |
|---|
| | 1165 | ref_tags text; |
|---|
| | 1166 | ref_hostname text; |
|---|
| | 1167 | ref_metric_name text; |
|---|
| | 1168 | v_ts_search_all tsvector; |
|---|
| | 1169 | BEGIN |
|---|
| | 1170 | SELECT sid,module,name,target |
|---|
| | 1171 | INTO ref_sid,ref_module,ref_name,ref_target |
|---|
| | 1172 | FROM stratcon.mv_loading_dock_check_s where sid=in_sid; |
|---|
| | 1173 | IF NOT FOUND THEN |
|---|
| | 1174 | RETURN NULL; |
|---|
| | 1175 | END IF; |
|---|
| | 1176 | |
|---|
| | 1177 | SELECT COALESCE(array_to_string(tags_array, ' '), ' ') INTO ref_tags |
|---|
| | 1178 | FROM prism.metric_tags |
|---|
| | 1179 | WHERE sid=in_sid and metric_name=in_metric_name and metric_type=in_metric_type; |
|---|
| | 1180 | IF NOT FOUND THEN |
|---|
| | 1181 | ref_tags:=' '; |
|---|
| | 1182 | END IF; |
|---|
| | 1183 | |
|---|
| | 1184 | SELECT value INTO ref_hostname |
|---|
| | 1185 | FROM stratcon.current_metric_text mt |
|---|
| | 1186 | JOIN stratcon.mv_loading_dock_check_s s USING(sid) |
|---|
| | 1187 | WHERE module='dns' AND s.name='in-addr.arpa' AND target = ref_target; |
|---|
| | 1188 | |
|---|
| | 1189 | ref_hostname := coalesce(replace(ref_hostname, '.', ' '), ' '); |
|---|
| | 1190 | ref_metric_name := regexp_replace(in_metric_name, E'[_\`/.\\134]', ' ', 'g'); |
|---|
| | 1191 | |
|---|
| | 1192 | v_ts_search_all=to_tsvector(ref_metric_name || ' ' || |
|---|
| | 1193 | ref_module || ' ' || |
|---|
| | 1194 | ref_name || ' ' || |
|---|
| | 1195 | ref_target || ' ' || |
|---|
| | 1196 | ref_hostname || ' ' || |
|---|
| | 1197 | ref_tags); |
|---|
| | 1198 | RETURN v_ts_search_all; |
|---|
| | 1199 | END$$ |
|---|
| | 1200 | LANGUAGE plpgsql STRICT; |
|---|
| | 1201 | |
|---|
| | 1202 | |
|---|
| | 1203 | ALTER FUNCTION stratcon.metric_name_summary_tsvector(in_sid integer, in_metric_name text, in_metric_type text) OWNER TO reconnoiter; |
|---|
| 1040 | 1204 | |
|---|
| 1041 | 1205 | -- |
|---|
| … | … | |
| 1701 | 1865 | |
|---|
| 1702 | 1866 | -- |
|---|
| | 1867 | -- Name: trig_update_tsvector_from_metric_summary(); Type: FUNCTION; Schema: stratcon; Owner: reconnoiter |
|---|
| | 1868 | -- |
|---|
| | 1869 | |
|---|
| | 1870 | CREATE FUNCTION trig_update_tsvector_from_metric_summary() RETURNS trigger |
|---|
| | 1871 | AS $$ |
|---|
| | 1872 | DECLARE |
|---|
| | 1873 | BEGIN |
|---|
| | 1874 | IF TG_OP != 'INSERT' THEN |
|---|
| | 1875 | IF (NEW.metric_name <> OLD.metric_name) THEN |
|---|
| | 1876 | UPDATE stratcon.metric_name_summary SET ts_search_all=stratcon.metric_name_summary_tsvector(NEW.sid,NEW.metric_name,NEW.metric_type); |
|---|
| | 1877 | END IF; |
|---|
| | 1878 | ELSE |
|---|
| | 1879 | UPDATE stratcon.metric_name_summary SET ts_search_all=stratcon.metric_name_summary_tsvector(NEW.sid,NEW.metric_name,NEW.metric_type); |
|---|
| | 1880 | END IF; |
|---|
| | 1881 | RETURN NEW; |
|---|
| | 1882 | END |
|---|
| | 1883 | $$ |
|---|
| | 1884 | LANGUAGE plpgsql; |
|---|
| | 1885 | |
|---|
| | 1886 | |
|---|
| | 1887 | ALTER FUNCTION stratcon.trig_update_tsvector_from_metric_summary() OWNER TO reconnoiter; |
|---|
| | 1888 | |
|---|
| | 1889 | -- |
|---|
| | 1890 | -- Name: trig_update_tsvector_from_mv_dock(); Type: FUNCTION; Schema: stratcon; Owner: reconnoiter |
|---|
| | 1891 | -- |
|---|
| | 1892 | |
|---|
| | 1893 | CREATE FUNCTION trig_update_tsvector_from_mv_dock() RETURNS trigger |
|---|
| | 1894 | AS $$ |
|---|
| | 1895 | DECLARE |
|---|
| | 1896 | BEGIN |
|---|
| | 1897 | UPDATE stratcon.metric_name_summary SET ts_search_all=stratcon.metric_name_summary_tsvector(sid, metric_name, metric_type) WHERE sid = NEW.sid; |
|---|
| | 1898 | RETURN NEW; |
|---|
| | 1899 | END |
|---|
| | 1900 | $$ |
|---|
| | 1901 | LANGUAGE plpgsql; |
|---|
| | 1902 | |
|---|
| | 1903 | |
|---|
| | 1904 | ALTER FUNCTION stratcon.trig_update_tsvector_from_mv_dock() OWNER TO reconnoiter; |
|---|
| | 1905 | |
|---|
| | 1906 | -- |
|---|
| 1703 | 1907 | -- Name: update_config(inet, text, timestamp with time zone, xml); Type: FUNCTION; Schema: stratcon; Owner: reconnoiter |
|---|
| 1704 | 1908 | -- |
|---|
| … | … | |
| 1749 | 1953 | |
|---|
| 1750 | 1954 | -- |
|---|
| | 1955 | -- Name: metric_tags_pk; Type: CONSTRAINT; Schema: prism; Owner: reconnoiter; Tablespace: |
|---|
| | 1956 | -- |
|---|
| | 1957 | |
|---|
| | 1958 | ALTER TABLE ONLY metric_tags |
|---|
| | 1959 | ADD CONSTRAINT metric_tags_pk UNIQUE (sid, metric_name, metric_type); |
|---|
| | 1960 | |
|---|
| | 1961 | |
|---|
| | 1962 | -- |
|---|
| 1751 | 1963 | -- Name: saved_graphs_dep_pkey; Type: CONSTRAINT; Schema: prism; Owner: reconnoiter; Tablespace: |
|---|
| 1752 | 1964 | -- |
|---|
| … | … | |
| 2035 | 2247 | |
|---|
| 2036 | 2248 | |
|---|
| | 2249 | -- |
|---|
| | 2250 | -- Name: trig_update_tsvector_from_metric_tags; Type: TRIGGER; Schema: prism; Owner: reconnoiter |
|---|
| | 2251 | -- |
|---|
| | 2252 | |
|---|
| | 2253 | CREATE TRIGGER trig_update_tsvector_from_metric_tags |
|---|
| | 2254 | AFTER INSERT OR UPDATE ON metric_tags |
|---|
| | 2255 | FOR EACH ROW |
|---|
| | 2256 | EXECUTE PROCEDURE trig_update_tsvector_from_metric_tags(); |
|---|
| | 2257 | |
|---|
| | 2258 | |
|---|
| 2037 | 2259 | SET search_path = stratcon, pg_catalog; |
|---|
| 2038 | 2260 | |
|---|
| … | … | |
| 2077 | 2299 | |
|---|
| 2078 | 2300 | |
|---|
| | 2301 | -- |
|---|
| | 2302 | -- Name: trig_update_tsvector_from_metric_summary; Type: TRIGGER; Schema: stratcon; Owner: reconnoiter |
|---|
| | 2303 | -- |
|---|
| | 2304 | |
|---|
| | 2305 | CREATE TRIGGER trig_update_tsvector_from_metric_summary |
|---|
| | 2306 | AFTER INSERT OR UPDATE ON metric_name_summary |
|---|
| | 2307 | FOR EACH ROW |
|---|
| | 2308 | EXECUTE PROCEDURE trig_update_tsvector_from_metric_summary(); |
|---|
| | 2309 | |
|---|
| | 2310 | |
|---|
| | 2311 | -- |
|---|
| | 2312 | -- Name: trig_update_tsvector_from_mv_dock; Type: TRIGGER; Schema: stratcon; Owner: reconnoiter |
|---|
| | 2313 | -- |
|---|
| | 2314 | |
|---|
| | 2315 | CREATE TRIGGER trig_update_tsvector_from_mv_dock |
|---|
| | 2316 | AFTER INSERT OR UPDATE ON mv_loading_dock_check_s |
|---|
| | 2317 | FOR EACH ROW |
|---|
| | 2318 | EXECUTE PROCEDURE trig_update_tsvector_from_mv_dock(); |
|---|
| | 2319 | |
|---|
| | 2320 | |
|---|
| 2079 | 2321 | SET search_path = prism, pg_catalog; |
|---|
| 2080 | 2322 | |
|---|
| … | … | |
| 2113 | 2355 | GRANT ALL ON SCHEMA stratcon TO stratcon; |
|---|
| 2114 | 2356 | GRANT USAGE ON SCHEMA stratcon TO prism; |
|---|
| | 2357 | |
|---|
| | 2358 | |
|---|
| | 2359 | -- |
|---|
| | 2360 | -- Name: metric_tags; Type: ACL; Schema: prism; Owner: reconnoiter |
|---|
| | 2361 | -- |
|---|
| | 2362 | |
|---|
| | 2363 | REVOKE ALL ON TABLE metric_tags FROM PUBLIC; |
|---|
| | 2364 | REVOKE ALL ON TABLE metric_tags FROM reconnoiter; |
|---|
| | 2365 | GRANT ALL ON TABLE metric_tags TO reconnoiter; |
|---|
| | 2366 | GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE metric_tags TO prism; |
|---|
| 2115 | 2367 | |
|---|
| 2116 | 2368 | |
|---|
| … | … | |
| 2266 | 2518 | GRANT ALL ON TABLE metric_name_summary TO reconnoiter; |
|---|
| 2267 | 2519 | GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE metric_name_summary TO stratcon; |
|---|
| 2268 | | GRANT SELECT ON TABLE metric_name_summary TO prism; |
|---|
| | 2520 | GRANT SELECT,UPDATE ON TABLE metric_name_summary TO prism; |
|---|
| 2269 | 2521 | |
|---|
| 2270 | 2522 | |
|---|