From d3d5cbdbbd3c99f5b2172844184f61e61a1a0a16 Mon Sep 17 00:00:00 2001 From: John Krauss Date: Mon, 11 Jul 2016 12:15:36 -0400 Subject: [PATCH] use obs_meta in obs_getmeasurebyid --- src/pg/sql/41_observatory_augmentation.sql | 28 ++++++++++------------ 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/pg/sql/41_observatory_augmentation.sql b/src/pg/sql/41_observatory_augmentation.sql index 08a6208..cf663ae 100644 --- a/src/pg/sql/41_observatory_augmentation.sql +++ b/src/pg/sql/41_observatory_augmentation.sql @@ -396,30 +396,26 @@ DECLARE test_query TEXT; BEGIN - SELECT x ->> 'colname', x ->> 'tablename' INTO colname, target_table - FROM cdb_observatory._OBS_GetColumnData(boundary_id, Array[measure_id], time_span) As x; - EXECUTE - format('SELECT ct.colname - FROM observatory.obs_column_to_column c2c, - observatory.obs_column_table ct, - observatory.obs_table t - WHERE c2c.reltype = ''geom_ref'' - AND ct.column_id = c2c.source_id - AND ct.table_id = t.id - AND t.tablename = %L' - , target_table) - INTO data_geoid_colname; + format('SELECT numer_colname, numer_geomref_colname, numer_tablename + FROM observatory.obs_meta + WHERE geom_id = %L + AND numer_id = %L + AND (numer_timespan = %L OR (%L IS NULL)) + ORDER BY numer_timespan DESC + LIMIT 1 ', + boundary_id, measure_id) + INTO colname, data_geoid_colname, target_table; RAISE DEBUG 'target_table %, colname %', target_table, colname; EXECUTE format( 'SELECT %I - FROM observatory.%I - WHERE %I.%I = %L', + FROM observatory.%I data + WHERE data.%I = %L', colname, target_table, - target_table, data_geoid_colname, geom_ref) + data_geoid_colname, geom_ref) INTO measure_val; RETURN measure_val;