Adding OBS_search function and tests

This commit is contained in:
Stuart Lynn
2016-04-20 13:28:27 -04:00
parent d6077457dd
commit 6e9f4a03d1
3 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
-- Functions used to search the observatory for measures
--------------------------------------------------------------------------------
-- TODO allow the user to specify the boundary to search for measures
--
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_Search(
search_term text,
relevant_boundary text DEFAULT null
)
RETURNS TABLE(description text, name text, aggregate text, source text) as $$
DECLARE
boundary_term text;
BEGIN
IF relevant_boundary then
boundary_term = '';
else
boundary_term = '';
END IF;
RETURN QUERY
EXECUTE format($string$
SELECT description,
name,
aggregate,
replace(split_part(id,'".', 1),'"', '') source
FROM observatory.OBS_column
where name ilike '%%%s%%'
or description ilike '%%%s%%'
%s
$string$, search_term, search_term,boundary_term);
RETURN;
END
$$ LANGUAGE plpgsql;