diff --git a/src/pg/sql/40_observatory_utility.sql b/src/pg/sql/40_observatory_utility.sql index 5661da9..d1b1f3b 100644 --- a/src/pg/sql/40_observatory_utility.sql +++ b/src/pg/sql/40_observatory_utility.sql @@ -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 diff --git a/src/pg/sql/41_observatory_augmentation.sql b/src/pg/sql/41_observatory_augmentation.sql index c24cf82..e16213d 100644 --- a/src/pg/sql/41_observatory_augmentation.sql +++ b/src/pg/sql/41_observatory_augmentation.sql @@ -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); diff --git a/src/pg/test/expected/40_observatory_utility_test.out b/src/pg/test/expected/40_observatory_utility_test.out index 9fe7631..a0dca1f 100644 --- a/src/pg/test/expected/40_observatory_utility_test.out +++ b/src/pg/test/expected/40_observatory_utility_test.out @@ -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) diff --git a/src/pg/test/expected/41_observatory_augmentation_test.out b/src/pg/test/expected/41_observatory_augmentation_test.out index 5c5e303..07ce113 100644 --- a/src/pg/test/expected/41_observatory_augmentation_test.out +++ b/src/pg/test/expected/41_observatory_augmentation_test.out @@ -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) diff --git a/src/pg/test/sql/40_observatory_utility_test.sql b/src/pg/test/sql/40_observatory_utility_test.sql index 56bdeb6..9067f8e 100644 --- a/src/pg/test/sql/40_observatory_utility_test.sql +++ b/src/pg/test/sql/40_observatory_utility_test.sql @@ -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'] ); diff --git a/src/pg/test/sql/41_observatory_augmentation_test.sql b/src/pg/test/sql/41_observatory_augmentation_test.sql index f21c7c7..a69d620 100644 --- a/src/pg/test/sql/41_observatory_augmentation_test.sql +++ b/src/pg/test/sql/41_observatory_augmentation_test.sql @@ -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'