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;

View File

@ -0,0 +1,29 @@
\i test/sql/load_fixtures.sql
SET client_min_messages TO WARNING;
\set ECHO none
Loading obs_table.sql fixture file...
Done.
Loading obs_column.sql fixture file...
Done.
Loading obs_column_table.sql fixture file...
Done.
Loading obs_column_to_column.sql fixture file...
Done.
Loading obs_85328201013baa14e8e8a4a57a01e6f6fbc5f9b1.sql fixture file...
Done.
Loading obs_3e7cc9cfd403b912c57b42d5f9195af9ce2f3cdb.sql fixture file...
Done.
Loading obs_ab038198aaab3f3cb055758638ee4de28ad70146.sql fixture file...
Done.
Loading obs_a92e1111ad3177676471d66bb8036e6d057f271b.sql fixture file...
Done.
Loading obs_11ee8b82c877c073438bc935a91d3dfccef875d1.sql fixture file...
Done.
Loading obs_d34555209878e8c4b37cf0b2b3d072ff129ec470.sql fixture file...
Done.
obs_search_stu
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
("The total number of all people living in a geographic area.","Total Population",sum,es.ine)
("The total number of all people living in a given geographic area. This is a very useful catch-all denominator when calculating rates.","Total Population",sum,us.census.acs)
("The total number of all people living in a given geographic area. This is a very useful catch-all denominator when calculating rates.","Quantile:Total Population",quantile,us.census.acs)
(3 rows)

View File

@ -0,0 +1,3 @@
\i test/sql/load_fixtures.sql
SELECT cdb_observatory.OBS_Search('total_pop');