Rename private functions and edit tests
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
-- TODO probably needs to take in the column_id array to get the relevant
|
||||
-- table where there is multiple sources for a column from multiple
|
||||
-- geometries.
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GeomTable(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GeomTable(
|
||||
geom geometry,
|
||||
geometry_id text
|
||||
)
|
||||
@@ -39,7 +39,7 @@ CREATE TYPE cdb_observatory.OBS_ColumnData AS (colname text, tablename text, agg
|
||||
|
||||
-- A function that gets the column data for multiple columns
|
||||
-- Old: OBS_GetColumnData
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetColumnData(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetColumnData(
|
||||
geometry_id text,
|
||||
column_ids text[],
|
||||
timespan text
|
||||
@@ -78,7 +78,7 @@ $$ LANGUAGE plpgsql;
|
||||
--Gets the column id for a census variable given a human readable version of it
|
||||
-- Old: OBS_LOOKUP_CENSUS_HUMAN
|
||||
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_LookupCensusHuman(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_LookupCensusHuman(
|
||||
column_names text[],
|
||||
-- TODO: change variable name table_name to table_id
|
||||
table_name text DEFAULT '"us.census.acs".extract_block_group_5yr_2013_69b156927c'
|
||||
@@ -130,7 +130,7 @@ $$ LANGUAGE plpgsql;
|
||||
|
||||
--Used to expand a column based response to a table based one. Give it the desired
|
||||
--columns and it will return a partial query for rolling them out to a table.
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_BuildSnapshotQuery(names text[])
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_BuildSnapshotQuery(names text[])
|
||||
RETURNS TEXT
|
||||
AS $$
|
||||
DECLARE
|
||||
|
||||
@@ -212,9 +212,9 @@ BEGIN
|
||||
SELECT
|
||||
dimension As names,
|
||||
dimension_value As vals
|
||||
FROM cdb_observatory.OBS_GetCensus($1,$2,$3,$4)
|
||||
FROM cdb_observatory._OBS_GetCensus($1,$2,$3,$4)
|
||||
)' ||
|
||||
cdb_observatory.OBS_BuildSnapshotQuery(target_cols) ||
|
||||
cdb_observatory._OBS_BuildSnapshotQuery(target_cols) ||
|
||||
' FROM a';
|
||||
|
||||
RETURN QUERY
|
||||
@@ -233,7 +233,7 @@ $$ LANGUAGE plpgsql;
|
||||
|
||||
--Returns arrays of values for the given census dimension names for a given
|
||||
--point or polygon
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetCensus(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetCensus(
|
||||
geom geometry,
|
||||
dimension_names text[],
|
||||
time_span text DEFAULT '2009 - 2013',
|
||||
@@ -245,17 +245,17 @@ DECLARE
|
||||
ids text[];
|
||||
BEGIN
|
||||
|
||||
ids := cdb_observatory.OBS_LookupCensusHuman(dimension_names);
|
||||
ids := cdb_observatory._OBS_LookupCensusHuman(dimension_names);
|
||||
|
||||
RETURN QUERY
|
||||
SELECT names, vals FROM cdb_observatory.OBS_Get(geom, ids, time_span, geometry_level);
|
||||
SELECT names, vals FROM cdb_observatory._OBS_Get(geom, ids, time_span, geometry_level);
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
|
||||
|
||||
-- Base augmentation fucntion.
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_Get(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_Get(
|
||||
geom geometry,
|
||||
column_ids text[],
|
||||
time_span text,
|
||||
@@ -271,7 +271,7 @@ DECLARE
|
||||
data_table_info cdb_observatory.OBS_ColumnData[];
|
||||
BEGIN
|
||||
|
||||
geom_table_name := cdb_observatory.OBS_GeomTable(geom, geometry_level);
|
||||
geom_table_name := cdb_observatory._OBS_GeomTable(geom, geometry_level);
|
||||
|
||||
IF geom_table_name IS NULL
|
||||
THEN
|
||||
@@ -279,7 +279,7 @@ BEGIN
|
||||
RETURN QUERY SELECT '{}'::text[], '{}'::NUMERIC[];
|
||||
END IF;
|
||||
|
||||
data_table_info := cdb_observatory.OBS_GetColumnData(geometry_level,
|
||||
data_table_info := cdb_observatory._OBS_GetColumnData(geometry_level,
|
||||
column_ids,
|
||||
time_span);
|
||||
|
||||
@@ -288,13 +288,13 @@ BEGIN
|
||||
|
||||
IF ST_GeometryType(geom) = 'ST_Point'
|
||||
THEN
|
||||
results := cdb_observatory.OBS_GetPoints(geom,
|
||||
results := cdb_observatory._OBS_GetPoints(geom,
|
||||
geom_table_name,
|
||||
data_table_info);
|
||||
|
||||
ELSIF ST_GeometryType(geom) IN ('ST_Polygon', 'ST_MultiPolygon')
|
||||
THEN
|
||||
results := cdb_observatory.OBS_GetPolygons(geom,
|
||||
results := cdb_observatory._OBS_GetPolygons(geom,
|
||||
geom_table_name,
|
||||
data_table_info);
|
||||
END IF;
|
||||
@@ -311,7 +311,7 @@ $$ LANGUAGE plpgsql;
|
||||
|
||||
-- If the variable of interest is just a rate return it as such,
|
||||
-- otherwise normalize it to the census block area and return that
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetPoints(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetPoints(
|
||||
geom geometry,
|
||||
geom_table_name text,
|
||||
data_table_info cdb_observatory.OBS_ColumnData[]
|
||||
@@ -392,7 +392,7 @@ BEGIN
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetPolygons(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetPolygons(
|
||||
geom geometry,
|
||||
geom_table_name text,
|
||||
data_table_info cdb_observatory.OBS_ColumnData[]
|
||||
@@ -562,7 +562,7 @@ target_cols := Array[
|
||||
EXECUTE
|
||||
$query$
|
||||
SELECT (categories)[1]
|
||||
FROM cdb_observatory.OBS_GetCategories(
|
||||
FROM cdb_observatory._OBS_GetCategories(
|
||||
$1,
|
||||
Array['"us.census.spielman_singleton_segments".X10'],
|
||||
$2)
|
||||
@@ -577,7 +577,7 @@ target_cols := Array[
|
||||
SELECT
|
||||
names As names,
|
||||
vals As vals
|
||||
FROM cdb_observatory.OBS_Get($1,
|
||||
FROM cdb_observatory._OBS_Get($1,
|
||||
$2,
|
||||
'2009 - 2013',
|
||||
$3)
|
||||
@@ -587,7 +587,7 @@ target_cols := Array[
|
||||
FROM a)
|
||||
SELECT $4, percentiles.*
|
||||
FROM percentiles
|
||||
$query$, cdb_observatory.OBS_BuildSnapshotQuery(target_cols));
|
||||
$query$, cdb_observatory._OBS_BuildSnapshotQuery(target_cols));
|
||||
|
||||
RETURN QUERY
|
||||
EXECUTE
|
||||
@@ -599,7 +599,7 @@ $$ LANGUAGE plpgsql;
|
||||
|
||||
--Get categorical variables from point
|
||||
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_GetCategories(
|
||||
CREATE OR REPLACE FUNCTION cdb_observatory._OBS_GetCategories(
|
||||
geom geometry,
|
||||
dimension_names text[],
|
||||
geometry_level text DEFAULT '"us.census.tiger".block_group',
|
||||
@@ -615,7 +615,7 @@ DECLARE
|
||||
data_table_info cdb_observatory.OBS_ColumnData[];
|
||||
BEGIN
|
||||
|
||||
geom_table_name := cdb_observatory.OBS_GeomTable(geom, geometry_level);
|
||||
geom_table_name := cdb_observatory._OBS_GeomTable(geom, geometry_level);
|
||||
|
||||
IF geom_table_name IS NULL
|
||||
THEN
|
||||
@@ -623,7 +623,7 @@ BEGIN
|
||||
RETURN QUERY SELECT '{}'::text[], '{}'::text[];
|
||||
END IF;
|
||||
|
||||
data_table_info := cdb_observatory.OBS_GetColumnData(geometry_level,
|
||||
data_table_info := cdb_observatory._OBS_GetColumnData(geometry_level,
|
||||
dimension_names,
|
||||
time_span);
|
||||
|
||||
|
||||
@@ -25,11 +25,11 @@ Done.
|
||||
-- get table with known geometry_id
|
||||
-- should give back a table like obs_{hex hash}
|
||||
SELECT
|
||||
cdb_observatory.OBS_GeomTable(
|
||||
cdb_observatory._OBS_GeomTable(
|
||||
CDB_LatLng(40.7128,-74.0059),
|
||||
'"us.census.tiger".census_tract'
|
||||
);
|
||||
obs_geomtable
|
||||
_obs_geomtable
|
||||
----------------------------------------------
|
||||
obs_a92e1111ad3177676471d66bb8036e6d057f271b
|
||||
(1 row)
|
||||
@@ -37,18 +37,18 @@ SELECT
|
||||
-- get null for unknown geometry_id
|
||||
-- should give back null
|
||||
SELECT
|
||||
cdb_observatory.OBS_GeomTable(
|
||||
cdb_observatory._OBS_GeomTable(
|
||||
CDB_LatLng(40.7128,-74.0059),
|
||||
'"us.census.tiger".nonexistant_id' -- not in catalog
|
||||
);
|
||||
obs_geomtable
|
||||
---------------
|
||||
_obs_geomtable
|
||||
----------------
|
||||
|
||||
(1 row)
|
||||
|
||||
-- future test: give back nulls when geometry doesn't intersect
|
||||
-- SELECT
|
||||
-- cdb_observatory.OBS_GeomTable(
|
||||
-- cdb_observatory._OBS_GeomTable(
|
||||
-- CDB_LatLng(0,0), -- should give back null since it's in the ocean?
|
||||
-- '"us.census.tiger".census_tract'
|
||||
-- );
|
||||
@@ -59,7 +59,7 @@ SELECT
|
||||
-- geoid | obs_{hex table} | null
|
||||
-- total_pop | obs_{hex table} | sum
|
||||
SELECT
|
||||
(unnest(cdb_observatory.OBS_GetColumnData(
|
||||
(unnest(cdb_observatory._OBS_GetColumnData(
|
||||
'"us.census.tiger".census_tract',
|
||||
Array['"us.census.tiger".census_tract_geoid', '"us.census.acs".B01001001'],
|
||||
'2009 - 2013'
|
||||
@@ -75,7 +75,7 @@ ORDER BY colname, tablename ASC;
|
||||
|
||||
-- should be null-valued
|
||||
SELECT
|
||||
(unnest(cdb_observatory.OBS_GetColumnData(
|
||||
(unnest(cdb_observatory._OBS_GetColumnData(
|
||||
'"us.census.tiger".census_tract',
|
||||
Array['"us.census.tiger".baloney'], -- entry not in catalog
|
||||
'2009 - 2013'
|
||||
@@ -88,41 +88,41 @@ ORDER BY 1 ASC;
|
||||
-- OBS_LookupCensusHuman
|
||||
-- should give back: {"\"us.census.acs\".B19083001"}
|
||||
SELECT
|
||||
cdb_observatory.OBS_LookupCensusHuman(
|
||||
cdb_observatory._OBS_LookupCensusHuman(
|
||||
Array['gini_index']
|
||||
);
|
||||
obs_lookupcensushuman
|
||||
_obs_lookupcensushuman
|
||||
---------------------------------
|
||||
{"\"us.census.acs\".B19083001"}
|
||||
(1 row)
|
||||
|
||||
-- should be empty array
|
||||
SELECT
|
||||
cdb_observatory.OBS_LookupCensusHuman(
|
||||
cdb_observatory._OBS_LookupCensusHuman(
|
||||
Array['cookies']
|
||||
);
|
||||
obs_lookupcensushuman
|
||||
-----------------------
|
||||
_obs_lookupcensushuman
|
||||
------------------------
|
||||
|
||||
(1 row)
|
||||
|
||||
-- OBS_BuildSnapshotQuery
|
||||
-- Should give back: SELECT vals[1] As total_pop, vals[2] As male_pop, vals[3] As female_pop, vals[4] As median_age
|
||||
SELECT
|
||||
cdb_observatory.OBS_BuildSnapshotQuery(
|
||||
cdb_observatory._OBS_BuildSnapshotQuery(
|
||||
Array['total_pop','male_pop','female_pop','median_age']
|
||||
);
|
||||
obs_buildsnapshotquery
|
||||
_obs_buildsnapshotquery
|
||||
-------------------------------------------------------------------------------------------------
|
||||
SELECT vals[1] As total_pop, vals[2] As male_pop, vals[3] As female_pop, vals[4] As median_age
|
||||
(1 row)
|
||||
|
||||
-- should give back: SELECT vals[1] As mandarin_orange
|
||||
SELECT
|
||||
cdb_observatory.OBS_BuildSnapshotQuery(
|
||||
cdb_observatory._OBS_BuildSnapshotQuery(
|
||||
Array['mandarin_orange']
|
||||
);
|
||||
obs_buildsnapshotquery
|
||||
_obs_buildsnapshotquery
|
||||
------------------------------------
|
||||
SELECT vals[1] As mandarin_orange
|
||||
(1 row)
|
||||
|
||||
@@ -51,23 +51,23 @@ Done.
|
||||
{gini_index} | {}
|
||||
(1 row)
|
||||
|
||||
obs_getpoints
|
||||
_obs_getpoints
|
||||
--------------------
|
||||
{4809.33511352425}
|
||||
(1 row)
|
||||
|
||||
obs_getpoints
|
||||
---------------
|
||||
_obs_getpoints
|
||||
----------------
|
||||
|
||||
(1 row)
|
||||
|
||||
obs_getpolygons
|
||||
_obs_getpolygons
|
||||
--------------------
|
||||
{1570.72353789469}
|
||||
(1 row)
|
||||
|
||||
obs_getpolygons
|
||||
-----------------
|
||||
_obs_getpolygons
|
||||
------------------
|
||||
{NULL}
|
||||
(1 row)
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
-- get table with known geometry_id
|
||||
-- should give back a table like obs_{hex hash}
|
||||
SELECT
|
||||
cdb_observatory.OBS_GeomTable(
|
||||
cdb_observatory._OBS_GeomTable(
|
||||
CDB_LatLng(40.7128,-74.0059),
|
||||
'"us.census.tiger".census_tract'
|
||||
);
|
||||
@@ -14,14 +14,14 @@ SELECT
|
||||
-- get null for unknown geometry_id
|
||||
-- should give back null
|
||||
SELECT
|
||||
cdb_observatory.OBS_GeomTable(
|
||||
cdb_observatory._OBS_GeomTable(
|
||||
CDB_LatLng(40.7128,-74.0059),
|
||||
'"us.census.tiger".nonexistant_id' -- not in catalog
|
||||
);
|
||||
|
||||
-- future test: give back nulls when geometry doesn't intersect
|
||||
-- SELECT
|
||||
-- cdb_observatory.OBS_GeomTable(
|
||||
-- cdb_observatory._OBS_GeomTable(
|
||||
-- CDB_LatLng(0,0), -- should give back null since it's in the ocean?
|
||||
-- '"us.census.tiger".census_tract'
|
||||
-- );
|
||||
@@ -33,7 +33,7 @@ SELECT
|
||||
-- geoid | obs_{hex table} | null
|
||||
-- total_pop | obs_{hex table} | sum
|
||||
SELECT
|
||||
(unnest(cdb_observatory.OBS_GetColumnData(
|
||||
(unnest(cdb_observatory._OBS_GetColumnData(
|
||||
'"us.census.tiger".census_tract',
|
||||
Array['"us.census.tiger".census_tract_geoid', '"us.census.acs".B01001001'],
|
||||
'2009 - 2013'
|
||||
@@ -42,7 +42,7 @@ ORDER BY colname, tablename ASC;
|
||||
|
||||
-- should be null-valued
|
||||
SELECT
|
||||
(unnest(cdb_observatory.OBS_GetColumnData(
|
||||
(unnest(cdb_observatory._OBS_GetColumnData(
|
||||
'"us.census.tiger".census_tract',
|
||||
Array['"us.census.tiger".baloney'], -- entry not in catalog
|
||||
'2009 - 2013'
|
||||
@@ -52,26 +52,26 @@ ORDER BY 1 ASC;
|
||||
-- OBS_LookupCensusHuman
|
||||
-- should give back: {"\"us.census.acs\".B19083001"}
|
||||
SELECT
|
||||
cdb_observatory.OBS_LookupCensusHuman(
|
||||
cdb_observatory._OBS_LookupCensusHuman(
|
||||
Array['gini_index']
|
||||
);
|
||||
|
||||
-- should be empty array
|
||||
SELECT
|
||||
cdb_observatory.OBS_LookupCensusHuman(
|
||||
cdb_observatory._OBS_LookupCensusHuman(
|
||||
Array['cookies']
|
||||
);
|
||||
|
||||
-- OBS_BuildSnapshotQuery
|
||||
-- Should give back: SELECT vals[1] As total_pop, vals[2] As male_pop, vals[3] As female_pop, vals[4] As median_age
|
||||
SELECT
|
||||
cdb_observatory.OBS_BuildSnapshotQuery(
|
||||
cdb_observatory._OBS_BuildSnapshotQuery(
|
||||
Array['total_pop','male_pop','female_pop','median_age']
|
||||
);
|
||||
|
||||
-- should give back: SELECT vals[1] As mandarin_orange
|
||||
SELECT
|
||||
cdb_observatory.OBS_BuildSnapshotQuery(
|
||||
cdb_observatory._OBS_BuildSnapshotQuery(
|
||||
Array['mandarin_orange']
|
||||
);
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ SELECT * FROM
|
||||
|
||||
SELECT *
|
||||
FROM
|
||||
cdb_observatory.OBS_GetCensus(
|
||||
cdb_observatory._OBS_GetCensus(
|
||||
cdb_observatory._TestPoint(),
|
||||
Array['total_pop','male_pop']::text[]
|
||||
);
|
||||
@@ -24,14 +24,14 @@ FROM
|
||||
-- expect nulls back: {female_pop, male_pop} | {NULL, NULL}
|
||||
SELECT *
|
||||
FROM
|
||||
cdb_observatory.OBS_GetCensus(
|
||||
cdb_observatory._OBS_GetCensus(
|
||||
ST_Buffer(CDB_LatLng(0, 0)::geography, 5000)::geometry,
|
||||
Array['female_pop','male_pop']::text[]
|
||||
);
|
||||
-- expect nulls back {female_pop, male_pop} | {NULL, NULL}
|
||||
SELECT *
|
||||
FROM
|
||||
cdb_observatory.OBS_GetCensus(
|
||||
cdb_observatory._OBS_GetCensus(
|
||||
CDB_LatLng(0, 0),
|
||||
Array['female_pop', 'male_pop']::text[]
|
||||
);
|
||||
@@ -42,7 +42,7 @@ FROM
|
||||
-- gini_index | 0.3494
|
||||
|
||||
SELECT * FROM
|
||||
cdb_observatory.OBS_Get(
|
||||
cdb_observatory._OBS_Get(
|
||||
cdb_observatory._TestPoint(),
|
||||
Array['"us.census.acs".B19083001']::text[],
|
||||
'2009 - 2013',
|
||||
@@ -51,7 +51,7 @@ SELECT * FROM
|
||||
|
||||
-- gini index at null island
|
||||
SELECT * FROM
|
||||
cdb_observatory.OBS_Get(
|
||||
cdb_observatory._OBS_Get(
|
||||
CDB_LatLng(0, 0),
|
||||
Array['"us.census.acs".B19083001']::text[],
|
||||
'2009 - 2013',
|
||||
@@ -64,7 +64,7 @@ SELECT * FROM
|
||||
-- {4809.33511352425}
|
||||
|
||||
SELECT
|
||||
cdb_observatory.OBS_GetPoints(
|
||||
cdb_observatory._OBS_GetPoints(
|
||||
cdb_observatory._TestPoint(),
|
||||
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
|
||||
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::cdb_observatory.OBS_ColumnData]
|
||||
@@ -72,7 +72,7 @@ SELECT
|
||||
|
||||
-- what happens at null island
|
||||
SELECT
|
||||
cdb_observatory.OBS_GetPoints(
|
||||
cdb_observatory._OBS_GetPoints(
|
||||
CDB_LatLng(0, 0),
|
||||
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
|
||||
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::cdb_observatory.OBS_ColumnData]
|
||||
@@ -84,7 +84,7 @@ SELECT
|
||||
-- {12996.8172420752}
|
||||
|
||||
SELECT
|
||||
cdb_observatory.OBS_GetPolygons(
|
||||
cdb_observatory._OBS_GetPolygons(
|
||||
cdb_observatory._TestArea(),
|
||||
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
|
||||
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::cdb_observatory.OBS_ColumnData]
|
||||
@@ -92,7 +92,7 @@ SELECT
|
||||
|
||||
-- see what happens around null island
|
||||
SELECT
|
||||
cdb_observatory.OBS_GetPolygons(
|
||||
cdb_observatory._OBS_GetPolygons(
|
||||
ST_Buffer(CDB_LatLng(0, 0)::geography, 500)::geometry,
|
||||
'obs_a92e1111ad3177676471d66bb8036e6d057f271b'::text, -- see example in obs_geomtable
|
||||
Array[('total_pop','obs_ab038198aaab3f3cb055758638ee4de28ad70146','sum')::cdb_observatory.OBS_ColumnData]
|
||||
@@ -112,14 +112,14 @@ SELECT * FROM
|
||||
);
|
||||
|
||||
SELECT * FROM
|
||||
cdb_observatory.OBS_GetCategories(
|
||||
cdb_observatory._OBS_GetCategories(
|
||||
cdb_observatory._TestPoint(),
|
||||
Array['"us.census.spielman_singleton_segments".X10'],
|
||||
'"us.census.tiger".census_tract'
|
||||
);
|
||||
|
||||
SELECT * FROM
|
||||
cdb_observatory.OBS_GetCategories(
|
||||
cdb_observatory._OBS_GetCategories(
|
||||
CDB_LatLng(0, 0),
|
||||
Array['"us.census.spielman_singleton_segments".X10'],
|
||||
'"us.census.tiger".census_tract'
|
||||
|
||||
Reference in New Issue
Block a user