commit
0dad5427c4
26
NEWS.md
26
NEWS.md
@ -1,3 +1,29 @@
|
|||||||
|
1.0.0 (6/27/2016)
|
||||||
|
-----
|
||||||
|
|
||||||
|
* Incremented to 1.0.0 to be in compliance with [SemVer](http://semver.org/),
|
||||||
|
which disallows use of 0.x.x versions. This also reflects that we are
|
||||||
|
already in production.
|
||||||
|
|
||||||
|
__API Changes__
|
||||||
|
|
||||||
|
* Added `OBS_DumpVersion` to look up version data ([#118](https://github.com/CartoDB/observatory-extension/pull/118))
|
||||||
|
|
||||||
|
__Improvements__
|
||||||
|
|
||||||
|
* Whether data exists for a geom now determined by polygon intersection instead of
|
||||||
|
BBOX overlap ([#119](https://github.com/CartoDB/observatory-extension/pull/119))
|
||||||
|
* Automated tests cover Spanish and UK data
|
||||||
|
([#115](https://github.com/CartoDB/observatory-extension/pull/115))
|
||||||
|
* Automated tests cover `OBS_GetUSCensusMeasure`
|
||||||
|
([#105](https://github.com/CartoDB/observatory-extension/pull/105))
|
||||||
|
|
||||||
|
__Bugfixes__
|
||||||
|
|
||||||
|
* Geom table can have different `geomref_colname` than the data table
|
||||||
|
([#123](https://github.com/CartoDB/observatory-extension/pull/123))
|
||||||
|
|
||||||
|
|
||||||
0.0.5 (5/27/2016)
|
0.0.5 (5/27/2016)
|
||||||
-----
|
-----
|
||||||
* Adds new function `OBS_GetMeasureById` ([#96](https://github.com/CartoDB/observatory-extension/pull/96))
|
* Adds new function `OBS_GetMeasureById` ([#96](https://github.com/CartoDB/observatory-extension/pull/96))
|
||||||
|
@ -24,8 +24,9 @@ def query(q, is_meta=False, **options):
|
|||||||
params['api_key'] = META_API_KEY if is_meta else API_KEY
|
params['api_key'] = META_API_KEY if is_meta else API_KEY
|
||||||
return requests.get(url, params=params)
|
return requests.get(url, params=params)
|
||||||
|
|
||||||
MEASURE_COLUMNS = [(r['id'], ) for r in query('''
|
MEASURE_COLUMNS = [(r['id'], r['point_only'], ) for r in query('''
|
||||||
SELECT id FROM obs_column
|
SELECT id, aggregate NOT ILIKE 'sum' as point_only
|
||||||
|
FROM obs_column
|
||||||
WHERE type ILIKE 'numeric'
|
WHERE type ILIKE 'numeric'
|
||||||
AND weight > 0
|
AND weight > 0
|
||||||
''', is_meta=True).json()['rows']]
|
''', is_meta=True).json()['rows']]
|
||||||
@ -98,14 +99,14 @@ def default_point(column_id):
|
|||||||
return 'CDB_LatLng(40.7, -73.9)'
|
return 'CDB_LatLng(40.7, -73.9)'
|
||||||
|
|
||||||
|
|
||||||
#def default_area(column_id):
|
def default_area(column_id):
|
||||||
# '''
|
'''
|
||||||
# Returns default test area for the column_id
|
Returns default test area for the column_id
|
||||||
# '''
|
'''
|
||||||
# point = default_point(column_id)
|
point = default_point(column_id)
|
||||||
# area = 'ST_Transform(ST_Buffer(ST_Transform({point}, 3857), 1000), 4326)'.format(
|
area = 'ST_Transform(ST_Buffer(ST_Transform({point}, 3857), 1000), 4326)'.format(
|
||||||
# point=point)
|
point=point)
|
||||||
# return area
|
return area
|
||||||
|
|
||||||
@parameterized(US_CENSUS_MEASURE_COLUMNS)
|
@parameterized(US_CENSUS_MEASURE_COLUMNS)
|
||||||
def test_get_us_census_measure_points(name):
|
def test_get_us_census_measure_points(name):
|
||||||
@ -120,21 +121,23 @@ SELECT * FROM {schema}OBS_GetUSCensusMeasure({point}, '{name}')
|
|||||||
assert_is_not_none(rows[0].values()[0])
|
assert_is_not_none(rows[0].values()[0])
|
||||||
|
|
||||||
|
|
||||||
#@parameterized(MEASURE_COLUMNS)
|
@parameterized(MEASURE_COLUMNS)
|
||||||
#def test_get_measure_areas(column_id):
|
def test_get_measure_areas(column_id, point_only):
|
||||||
# resp = query('''
|
if point_only:
|
||||||
#SELECT * FROM {schema}OBS_GetMeasure({area}, '{column_id}')
|
return
|
||||||
# '''.format(column_id=column_id,
|
resp = query('''
|
||||||
# schema='cdb_observatory.' if USE_SCHEMA else '',
|
SELECT * FROM {schema}OBS_GetMeasure({area}, '{column_id}')
|
||||||
# area=default_area(column_id)))
|
'''.format(column_id=column_id,
|
||||||
# assert_equal(resp.status_code, 200)
|
schema='cdb_observatory.' if USE_SCHEMA else '',
|
||||||
# rows = resp.json()['rows']
|
area=default_area(column_id)))
|
||||||
# assert_equal(1, len(rows))
|
assert_equal(resp.status_code, 200)
|
||||||
# assert_is_not_none(rows[0].values()[0])
|
rows = resp.json()['rows']
|
||||||
|
assert_equal(1, len(rows))
|
||||||
|
assert_is_not_none(rows[0].values()[0])
|
||||||
|
|
||||||
|
|
||||||
@parameterized(MEASURE_COLUMNS)
|
@parameterized(MEASURE_COLUMNS)
|
||||||
def test_get_measure_points(column_id):
|
def test_get_measure_points(column_id, point_only):
|
||||||
resp = query('''
|
resp = query('''
|
||||||
SELECT * FROM {schema}OBS_GetMeasure({point}, '{column_id}')
|
SELECT * FROM {schema}OBS_GetMeasure({point}, '{column_id}')
|
||||||
'''.format(column_id=column_id,
|
'''.format(column_id=column_id,
|
||||||
|
@ -33,7 +33,8 @@ def select_star(tablename):
|
|||||||
|
|
||||||
cdb = Dumpr('observatory.cartodb.com','')
|
cdb = Dumpr('observatory.cartodb.com','')
|
||||||
|
|
||||||
metadata = ['obs_table', 'obs_column_table', 'obs_column', 'obs_column_tag', 'obs_tag', 'obs_column_to_column']
|
metadata = ['obs_table', 'obs_column_table', 'obs_column', 'obs_column_tag',
|
||||||
|
'obs_tag', 'obs_column_to_column', 'obs_dump_version']
|
||||||
|
|
||||||
fixtures = [
|
fixtures = [
|
||||||
('us.census.tiger.census_tract', 'us.census.tiger.census_tract', '2014'),
|
('us.census.tiger.census_tract', 'us.census.tiger.census_tract', '2014'),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
comment = 'CartoDB Observatory backend extension'
|
comment = 'CartoDB Observatory backend extension'
|
||||||
default_version = '0.0.5'
|
default_version = '1.0.0'
|
||||||
requires = 'postgis'
|
requires = 'postgis'
|
||||||
superuser = true
|
superuser = true
|
||||||
schema = cdb_observatory
|
schema = cdb_observatory
|
||||||
|
@ -199,3 +199,20 @@ BEGIN
|
|||||||
RETURN result;
|
RETURN result;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
-- Function that returns the currently deployed obs_dump_version from the
|
||||||
|
-- remote table of the same name.
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION cdb_observatory.OBS_DumpVersion(
|
||||||
|
)
|
||||||
|
RETURNS TEXT
|
||||||
|
AS $$
|
||||||
|
DECLARE
|
||||||
|
result text;
|
||||||
|
BEGIN
|
||||||
|
EXECUTE '
|
||||||
|
SELECT MAX(dump_id) FROM observatory.obs_dump_version
|
||||||
|
' INTO result;
|
||||||
|
RETURN result;
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
@ -633,7 +633,7 @@ BEGIN
|
|||||||
q := q || q_select || format('FROM observatory.%I ', ((data_table_info)[1]->>'tablename'));
|
q := q || q_select || format('FROM observatory.%I ', ((data_table_info)[1]->>'tablename'));
|
||||||
|
|
||||||
q := format(q || ' ) ' || q_sum || ' ]::numeric[] FROM _overlaps, values
|
q := format(q || ' ) ' || q_sum || ' ]::numeric[] FROM _overlaps, values
|
||||||
WHERE values.%I = _overlaps.%I', geom_geoid_colname, geom_geoid_colname);
|
WHERE values.%I = _overlaps.%I', data_geoid_colname, geom_geoid_colname);
|
||||||
|
|
||||||
EXECUTE
|
EXECUTE
|
||||||
q
|
q
|
||||||
|
@ -114,7 +114,7 @@ BEGIN
|
|||||||
AND
|
AND
|
||||||
observatory.OBS_column.type = 'Geometry'
|
observatory.OBS_column.type = 'Geometry'
|
||||||
AND
|
AND
|
||||||
$1 && bounds::box2d
|
ST_Intersects($1, observatory.obs_table.the_geom)
|
||||||
$string$ || timespan_query
|
$string$ || timespan_query
|
||||||
USING geom;
|
USING geom;
|
||||||
RETURN;
|
RETURN;
|
||||||
|
@ -27,3 +27,6 @@ t
|
|||||||
_obs_standardizemeasurename_test
|
_obs_standardizemeasurename_test
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
obs_dumpversion_notnull
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
1
src/pg/test/fixtures/drop_fixtures.sql
vendored
1
src/pg/test/fixtures/drop_fixtures.sql
vendored
@ -6,6 +6,7 @@ DROP TABLE IF EXISTS observatory.obs_column;
|
|||||||
DROP TABLE IF EXISTS observatory.obs_column_tag;
|
DROP TABLE IF EXISTS observatory.obs_column_tag;
|
||||||
DROP TABLE IF EXISTS observatory.obs_tag;
|
DROP TABLE IF EXISTS observatory.obs_tag;
|
||||||
DROP TABLE IF EXISTS observatory.obs_column_to_column;
|
DROP TABLE IF EXISTS observatory.obs_column_to_column;
|
||||||
|
DROP TABLE IF EXISTS observatory.obs_dump_version;
|
||||||
DROP TABLE IF EXISTS observatory.obs_65f29658e096ca1485bf683f65fdbc9f05ec3c5d;
|
DROP TABLE IF EXISTS observatory.obs_65f29658e096ca1485bf683f65fdbc9f05ec3c5d;
|
||||||
DROP TABLE IF EXISTS observatory.obs_1746e37b7cd28cb131971ea4187d42d71f09c5f3;
|
DROP TABLE IF EXISTS observatory.obs_1746e37b7cd28cb131971ea4187d42d71f09c5f3;
|
||||||
DROP TABLE IF EXISTS observatory.obs_1a098da56badf5f32e336002b0a81708c40d29cd;
|
DROP TABLE IF EXISTS observatory.obs_1a098da56badf5f32e336002b0a81708c40d29cd;
|
||||||
|
18902
src/pg/test/fixtures/load_fixtures.sql
vendored
18902
src/pg/test/fixtures/load_fixtures.sql
vendored
File diff suppressed because one or more lines are too long
@ -75,4 +75,7 @@ SELECT cdb_observatory._OBS_GetRelatedColumn(
|
|||||||
-- should give back a standardized measure name
|
-- should give back a standardized measure name
|
||||||
SELECT cdb_observatory._OBS_StandardizeMeasureName('test 343 %% 2 qqq }}{{}}') = 'test_343_2_qqq' As _OBS_StandardizeMeasureName_test;
|
SELECT cdb_observatory._OBS_StandardizeMeasureName('test 343 %% 2 qqq }}{{}}') = 'test_343_2_qqq' As _OBS_StandardizeMeasureName_test;
|
||||||
|
|
||||||
|
SELECT cdb_observatory.OBS_DumpVersion()
|
||||||
|
IS NOT NULL AS OBS_DumpVersion_notnull;
|
||||||
|
|
||||||
\i test/fixtures/drop_fixtures.sql
|
\i test/fixtures/drop_fixtures.sql
|
||||||
|
Loading…
Reference in New Issue
Block a user