minor edits

This commit is contained in:
Andy Eschbacher
2016-05-11 09:39:12 -04:00
parent 7c57d8b9e3
commit 2f91b8f298
+48 -38
View File
@@ -156,11 +156,10 @@ DECLARE
BEGIN BEGIN
geom_table_name := cdb_observatory._OBS_GeomTable(geom, geometry_level); geom_table_name := cdb_observatory._OBS_GeomTable(geom, geometry_level);
RAISE NOTICE 'geom_table_name: %', geom_table_name;
IF geom_table_name IS NULL IF geom_table_name IS NULL
THEN THEN
RAISE NOTICE 'Point % is outside of the data region', geom; RAISE NOTICE 'Point % is outside of the data region', ST_AsText(geom);
RETURN QUERY SELECT '{}'::text[], '{}'::NUMERIC[]; RETURN QUERY SELECT '{}'::text[], '{}'::NUMERIC[];
END IF; END IF;
@@ -171,14 +170,12 @@ BEGIN
INTO data_table_info INTO data_table_info
using geometry_level, column_ids, time_span; using geometry_level, column_ids, time_span;
RAISE NOTICE 'data_table_info: %', data_table_info::text;
IF ST_GeometryType(geom) = 'ST_Point' IF ST_GeometryType(geom) = 'ST_Point'
THEN THEN
RAISE NOTICE 'geom_table_name %, data_table_info %', geom_table_name, data_table_info::json[];
results := cdb_observatory._OBS_GetPoints(geom, results := cdb_observatory._OBS_GetPoints(geom,
geom_table_name, geom_table_name,
data_table_info); data_table_info);
RAISE NOTICE 'results: %', results;
ELSIF ST_GeometryType(geom) IN ('ST_Polygon', 'ST_MultiPolygon') ELSIF ST_GeometryType(geom) IN ('ST_Polygon', 'ST_MultiPolygon')
THEN THEN
@@ -281,14 +278,14 @@ BEGIN
EXECUTE EXECUTE
$query$ $query$
select array_agg(row_to_json(t)) from( SELECT array_agg(row_to_json(t)) FROM (
select values as value, SELECT values As value,
meta->>'name' as name, meta->>'name' As name,
meta->>'tablename' as tablename, meta->>'tablename' As tablename,
meta->>'aggregate' as aggregate, meta->>'aggregate' As aggregate,
meta->>'type' as type, meta->>'type' As type,
meta->>'description' as description meta->>'description' As description
from (select unnest($1) as values, unnest($2) as meta) b FROM (SELECT unnest($1) As values, unnest($2) As meta) b
) t ) t
$query$ $query$
INTO json_result INTO json_result
@@ -374,7 +371,7 @@ BEGIN
IF time_span IS NULL THEN IF time_span IS NULL THEN
-- TODO we should determine latest timespan for this measure -- TODO we should determine latest timespan for this measure
time_span := '2010 - 2014'; time_span := '2009 - 2013';
END IF; END IF;
EXECUTE ' EXECUTE '
@@ -541,14 +538,14 @@ BEGIN
EXECUTE EXECUTE
$query$ $query$
select array_agg(row_to_json(t)) from( SELECT array_agg(row_to_json(t)) FROM (
select values as value, SELECT values As value,
meta->>'name' as name, meta->>'name' As name,
meta->>'tablename' as tablename, meta->>'tablename' As tablename,
meta->>'aggregate' as aggregate, meta->>'aggregate' As aggregate,
meta->>'type' as type, meta->>'type' As type,
meta->>'description' as description meta->>'description' As description
from (select unnest($1) as values, unnest($2) as meta) b FROM (SELECT unnest($1) As values, unnest($2) As meta) b
) t ) t
$query$ $query$
INTO json_result INTO json_result
@@ -644,7 +641,7 @@ target_cols := Array[
array_agg(_OBS_GET->>'value') As vals array_agg(_OBS_GET->>'value') As vals
FROM cdb_observatory._OBS_Get($1, FROM cdb_observatory._OBS_Get($1,
$2, $2,
'2010 - 2014', '2009 - 2013',
$3) $3)
), percentiles As ( ), percentiles As (
@@ -685,7 +682,7 @@ DECLARE
BEGIN BEGIN
IF time_span IS NULL THEN IF time_span IS NULL THEN
time_span = '2010 - 2014'; time_span = '2009 - 2013';
END IF; END IF;
IF boundary_id IS NULL THEN IF boundary_id IS NULL THEN
@@ -700,13 +697,18 @@ BEGIN
RETURN QUERY SELECT '{}'::text[], '{}'::text[]; RETURN QUERY SELECT '{}'::text[], '{}'::text[];
END IF; END IF;
execute' EXECUTE '
select array_agg( _obs_getcolumndata) from cdb_observatory._OBS_GetColumnData($1, SELECT array_agg(_obs_getcolumndata)
$2, FROM cdb_observatory._OBS_GetColumnData($1, $2, $3);
$3);' '
INTO data_table_info INTO data_table_info
USING boundary_id, dimension_names, time_span; USING boundary_id, dimension_names, time_span;
IF data_table_info IS NULL
THEN
RAISE NOTICE 'No data table found for this location';
RETURN QUERY SELECT NULL::json;
END IF;
EXECUTE EXECUTE
format('SELECT geoid format('SELECT geoid
@@ -716,8 +718,15 @@ BEGIN
USING geom USING geom
INTO geoid; INTO geoid;
IF geoid IS NULL
THEN
RAISE NOTICE 'No geometry id for this location';
RETURN QUERY SELECT NULL::json;
END IF;
query := 'SELECT ARRAY['; query := 'SELECT ARRAY[';
FOR i IN 1..coalesce(array_upper(data_table_info, 1), 1)
FOR i IN 1..array_upper(data_table_info, 1)
LOOP LOOP
query = query || format('%I ', lower(((data_table_info)[i])->>'colname')); query = query || format('%I ', lower(((data_table_info)[i])->>'colname'));
IF i < array_upper(data_table_info, 1) IF i < array_upper(data_table_info, 1)
@@ -743,14 +752,15 @@ BEGIN
RETURN QUERY RETURN QUERY
EXECUTE EXECUTE
$query$ $query$
select row_to_json(t) from( SELECT row_to_json(t) FROM (
select categories as category, SELECT categories As category,
meta->>'name' as name, meta->>'name' As name,
meta->>'tablename' as tablename, meta->>'tablename' As tablename,
meta->>'aggregate' as aggregate, meta->>'aggregate' As aggregate,
meta->>'type' as type, meta->>'type' As type,
meta->>'description' as description meta->>'description' As description
from (select unnest($1) as categories, unnest($2) as meta) b FROM (SELECT unnest($1) As categories,
unnest($2) As meta) As b
) t ) t
$query$ $query$
USING results, data_table_info; USING results, data_table_info;