Files
observatory-extension/src/pg/sql/42_observatory_exploration.sql
2016-04-20 13:42:13 -04:00

45 lines
1.2 KiB
PL/PgSQL

-- 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_STU(
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 '%'|| %L || '%'
or description ilike '%'|| %L || '%'
%s
$string$, search_term, search_term,boundary_term);
RETURN;
END
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION OBS_GetAvailableBoundaries(geometry location)
RETURNS TABLE(description text, name text, id text) as $$
BEGIN
RETURN QUERY
EXECUTE format($string$
Select description, name, id FROM observatory.OBS_column
$string$)
END
$$