Geocoder server renamed to dataservices server extension

This commit is contained in:
Mario de Frutos
2016-02-05 17:57:22 +01:00
parent 2a9d6c14bd
commit 2994a1b402
117 changed files with 1008 additions and 1002 deletions
+10 -10
View File
@@ -1,6 +1,6 @@
# Makefile to generate the extension out of separate sql source files. # Makefile to generate the extension out of separate sql source files.
# Once a version is released, it is not meant to be changed. E.g: once version 0.0.1 is out, it SHALL NOT be changed. # Once a version is released, it is not meant to be changed. E.g: once version 0.0.1 is out, it SHALL NOT be changed.
EXTENSION = cdb_geocoder_server EXTENSION = cdb_dataservices_server
EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/") EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/")
# The new version to be generated from templates # The new version to be generated from templates
@@ -11,15 +11,15 @@ NEW_EXTENSION_ARTIFACT = $(EXTENSION)--$(EXTVERSION).sql
# for installation from scratch, upgrades and downgrades. # for installation from scratch, upgrades and downgrades.
# @see http://www.postgresql.org/docs/current/static/extend-pgxs.html # @see http://www.postgresql.org/docs/current/static/extend-pgxs.html
DATA = $(NEW_EXTENSION_ARTIFACT) \ DATA = $(NEW_EXTENSION_ARTIFACT) \
cdb_geocoder_server--0.0.1.sql \ cdb_dataservices_server--0.0.1.sql \
cdb_geocoder_server--0.1.0.sql \ cdb_dataservices_server--0.1.0.sql \
cdb_geocoder_server--0.2.0.sql \ cdb_dataservices_server--0.2.0.sql \
cdb_geocoder_server--0.1.0--0.0.1.sql \ cdb_dataservices_server--0.1.0--0.0.1.sql \
cdb_geocoder_server--0.0.1--0.1.0.sql \ cdb_dataservices_server--0.0.1--0.1.0.sql \
cdb_geocoder_server--0.2.0--0.1.0.sql \ cdb_dataservices_server--0.2.0--0.1.0.sql \
cdb_geocoder_server--0.1.0--0.2.0.sql \ cdb_dataservices_server--0.1.0--0.2.0.sql \
cdb_geocoder_server--0.2.0--0.2.1.sql \ cdb_dataservices_server--0.2.0--0.3.0.sql \
cdb_geocoder_server--0.2.1--0.2.0.sql cdb_dataservices_server--0.3.0--0.2.0.sql
REGRESS = $(notdir $(basename $(wildcard test/$(EXTVERSION)/sql/*test.sql))) REGRESS = $(notdir $(basename $(wildcard test/$(EXTVERSION)/sql/*test.sql)))
TEST_DIR = test/$(EXTVERSION) TEST_DIR = test/$(EXTVERSION)
+3 -3
View File
@@ -1,5 +1,5 @@
# CartoDB geocoder API server extension # CartoDB dataservices API server extension
Postgres extension for the CartoDB geocoder API, server side. Postgres extension for the CartoDB dataservices API, server side.
## Dependencies ## Dependencies
This extension is thought to be used on top of CartoDB geocoder extension, for the internal geocoder. This extension is thought to be used on top of CartoDB geocoder extension, for the internal geocoder.
@@ -39,7 +39,7 @@ psql -U postgres cartodb_dev_user_fe3b850a-01c0-48f9-8a26-a82f09e9b53f_db
and then: and then:
```sql ```sql
CREATE EXTENSION cdb_geocoder_server; CREATE EXTENSION cdb_dataservices_server;
``` ```
The extension creation in the user's db requires **superuser** privileges. The extension creation in the user's db requires **superuser** privileges.
@@ -1,6 +1,6 @@
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf_v2(config_key text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text)
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key) conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key)
conf = plpy.execute(conf_query)[0]['conf'] conf = plpy.execute(conf_query)[0]['conf']
if conf is None: if conf is None:
@@ -18,7 +18,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -27,10 +27,10 @@ RETURNS boolean AS $$
from cartodb_geocoder import redis_helper from cartodb_geocoder import redis_helper
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'], redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -49,7 +49,7 @@ RETURNS boolean AS $$
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -57,7 +57,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_geocoder import config_helper from cartodb_geocoder import config_helper
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -75,26 +75,26 @@ RETURNS boolean AS $$
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
DROP FUNCTION IF EXISTS cdb_geocoder_server.cdb_geocode_street_point(TEXT, TEXT, TEXT, TEXT); DROP FUNCTION IF EXISTS cdb_dataservices_server.cdb_geocode_street_point(TEXT, TEXT, TEXT, TEXT);
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
plpy.execute("SELECT cdb_geocoder_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)] user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
if user_geocoder_config.heremaps_geocoder: if user_geocoder_config.heremaps_geocoder:
here_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
elif user_geocoder_config.google_geocoder: elif user_geocoder_config.google_geocoder:
google_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) google_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
else: else:
plpy.error('Requested geocoder is not available') plpy.error('Requested geocoder is not available')
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from heremaps import heremapsgeocoder from heremaps import heremapsgeocoder
from cartodb_geocoder import quota_service from cartodb_geocoder import quota_service
@@ -128,15 +128,15 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.error('Google geocoder is not available yet') plpy.error('Google geocoder is not available yet')
return None return None
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- We apply again the grants to include the new functions -- We apply again the grants to include the new functions
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
@@ -1,6 +1,6 @@
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -9,8 +9,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf() CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf()
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('redis_conf') conf")[0]['conf'] conf = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('redis_conf') conf")[0]['conf']
if conf is None: if conf is None:
plpy.error("There is no redis configuration defined") plpy.error("There is no redis configuration defined")
@@ -27,7 +27,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
if user_id in GD and 'redis_connection' in GD[user_id]: if user_id in GD and 'redis_connection' in GD[user_id]:
return False return False
@@ -35,7 +35,7 @@ RETURNS boolean AS $$
from cartodb_geocoder import redis_helper from cartodb_geocoder import redis_helper
config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf() c;""")[0] from cdb_dataservices_server._get_redis_conf() c;""")[0]
redis_connection = redis_helper.RedisHelper(config_params['sentinel_host'], redis_connection = redis_helper.RedisHelper(config_params['sentinel_host'],
config_params['sentinel_port'], config_params['sentinel_port'],
config_params['sentinel_master_id'], config_params['sentinel_master_id'],
@@ -44,13 +44,13 @@ RETURNS boolean AS $$
GD[user_id] = {'redis_connection': redis_connection} GD[user_id] = {'redis_connection': redis_connection}
return True return True
$$ LANGUAGE plpythonu;-- Geocodes a street address given a searchtext and a state and/or country $$ LANGUAGE plpythonu;-- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry RETURNS Geometry
AS $$ AS $$
import json import json
from heremaps import heremapsgeocoder from heremaps import heremapsgeocoder
heremaps_conf = json.loads(plpy.execute("SELECT cdb_geocoder_server._get_conf('heremaps')", 1)[0]['get_conf']) heremaps_conf = json.loads(plpy.execute("SELECT cdb_dataservices_server._get_conf('heremaps')", 1)[0]['get_conf'])
app_id = heremaps_conf['geocoder']['app_id'] app_id = heremaps_conf['geocoder']['app_id']
app_code = heremaps_conf['geocoder']['app_code'] app_code = heremaps_conf['geocoder']['app_code']
@@ -66,7 +66,7 @@ AS $$
return point['st_setsrid'] return point['st_setsrid']
$$ LANGUAGE plpythonu;-- Interface of the server extension $$ LANGUAGE plpythonu;-- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin0_polygons') plpy.debug('Entering cdb_geocode_admin0_polygons')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -75,7 +75,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [country_name], 1) rv = plpy.execute(plan, [country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons')
@@ -87,7 +87,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -104,7 +104,7 @@ $$ LANGUAGE plpgsql;
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -113,7 +113,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [admin1_name], 1) rv = plpy.execute(plan, [admin1_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons')
@@ -121,7 +121,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -130,7 +130,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [admin1_name, country_name], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
@@ -143,7 +143,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -167,7 +167,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -193,7 +193,7 @@ $$ LANGUAGE plpgsql;
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -202,7 +202,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"])
rv = plpy.execute(plan, [city_name], 1) rv = plpy.execute(plan, [city_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -210,7 +210,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -219,7 +219,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [city_name, country_name], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -227,7 +227,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -236,7 +236,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -249,7 +249,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -268,7 +268,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -288,7 +288,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -313,7 +313,7 @@ $$ LANGUAGE plpgsql;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -322,14 +322,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1) AS point", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1) AS point", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -338,14 +338,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_polygon') plpy.debug('Entering _cdb_geocode_postalcode_polygon')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -354,14 +354,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_polygon') plpy.debug('Returning from _cdb_geocode_postalcode_polygon')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -370,7 +370,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
@@ -382,7 +382,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -403,7 +403,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -428,7 +428,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -449,7 +449,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -475,7 +475,7 @@ END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_ipaddress_point') plpy.debug('Entering _cdb_geocode_ipaddress_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -484,7 +484,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"])
rv = plpy.execute(plan, [ip], 1) rv = plpy.execute(plan, [ip], 1)
plpy.debug('Returning from _cdb_geocode_ipaddress_point') plpy.debug('Returning from _cdb_geocode_ipaddress_point')
@@ -496,7 +496,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -531,9 +531,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
@@ -0,0 +1,29 @@
DROP FUNCTION IF EXISTS cdb_dataservices_server._get_redis_conf_v2(text);
DROP FUNCTION IF EXISTS cdb_dataservices_server._connect_to_redis(text);
DROP FUNCTION IF EXISTS cdb_dataservices_server._get_geocoder_config(text, text);
DROP FUNCTION IF EXISTS cdb_dataservices_server.cdb_geocode_street_point(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
DROP FUNCTION IF EXISTS cdb_dataservices_server.cdb_geocode_street_point_v2(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
DROP FUNCTION IF EXISTS cdb_dataservices_server._cdb_here_geocode_street_point(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
DROP FUNCTION IF EXISTS cdb_dataservices_server._cdb_google_geocode_street_point(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry
AS $$
import json
from heremaps import heremapsgeocoder
heremaps_conf = json.loads(plpy.execute("SELECT cdb_dataservices_server._get_conf('heremaps')", 1)[0]['get_conf'])
app_id = heremaps_conf['geocoder']['app_id']
app_code = heremaps_conf['geocoder']['app_code']
geocoder = heremapsgeocoder.Geocoder(app_id, app_code)
results = geocoder.geocode_address(searchtext=searchtext, city=city, state=state_province, country=country)
coordinates = geocoder.extract_lng_lat_from_result(results[0])
plan = plpy.prepare("SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326); ", ["double precision", "double precision"])
point = plpy.execute(plan, [coordinates[0], coordinates[1]], 1)[0]
return point['st_setsrid']
$$ LANGUAGE plpythonu;
@@ -1,5 +1,5 @@
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -7,7 +7,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_services.metrics import GeocoderConfig from cartodb_services.metrics import GeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -25,7 +25,7 @@ RETURNS boolean AS $$
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -34,10 +34,10 @@ RETURNS boolean AS $$
from cartodb_services.tools import RedisConnection from cartodb_services.tools import RedisConnection
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'], redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -55,7 +55,7 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.here import HereMapsGeocoder from cartodb_services.here import HereMapsGeocoder
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
@@ -90,7 +90,7 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.google import GoogleMapsGeocoder from cartodb_services.google import GoogleMapsGeocoder
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
@@ -1,6 +1,6 @@
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -9,8 +9,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf_v2(config_key text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text)
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key) conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key)
conf = plpy.execute(conf_query)[0]['conf'] conf = plpy.execute(conf_query)[0]['conf']
if conf is None: if conf is None:
@@ -28,7 +28,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -37,10 +37,10 @@ RETURNS boolean AS $$
from cartodb_geocoder import redis_helper from cartodb_geocoder import redis_helper
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'], redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -58,7 +58,7 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -66,7 +66,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_geocoder import config_helper from cartodb_geocoder import config_helper
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -83,25 +83,25 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
plpy.execute("SELECT cdb_geocoder_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)] user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
if user_geocoder_config.heremaps_geocoder: if user_geocoder_config.heremaps_geocoder:
here_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
elif user_geocoder_config.google_geocoder: elif user_geocoder_config.google_geocoder:
google_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) google_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
else: else:
plpy.error('Requested geocoder is not available') plpy.error('Requested geocoder is not available')
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from heremaps import heremapsgeocoder from heremaps import heremapsgeocoder
from cartodb_geocoder import quota_service from cartodb_geocoder import quota_service
@@ -135,14 +135,14 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.error('Google geocoder is not available yet') plpy.error('Google geocoder is not available yet')
return None return None
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin0_polygons') plpy.debug('Entering cdb_geocode_admin0_polygons')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -151,7 +151,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [country_name], 1) rv = plpy.execute(plan, [country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons')
@@ -163,7 +163,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -180,7 +180,7 @@ $$ LANGUAGE plpgsql;
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -189,7 +189,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [admin1_name], 1) rv = plpy.execute(plan, [admin1_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons')
@@ -197,7 +197,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -206,7 +206,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [admin1_name, country_name], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
@@ -219,7 +219,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -243,7 +243,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -269,7 +269,7 @@ $$ LANGUAGE plpgsql;
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -278,7 +278,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"])
rv = plpy.execute(plan, [city_name], 1) rv = plpy.execute(plan, [city_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -286,7 +286,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -295,7 +295,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [city_name, country_name], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -303,7 +303,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -312,7 +312,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -325,7 +325,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -344,7 +344,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -364,7 +364,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -389,7 +389,7 @@ $$ LANGUAGE plpgsql;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -398,14 +398,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1) AS point", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1) AS point", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -414,14 +414,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_polygon') plpy.debug('Entering _cdb_geocode_postalcode_polygon')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -430,14 +430,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_polygon') plpy.debug('Returning from _cdb_geocode_postalcode_polygon')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -446,7 +446,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
@@ -458,7 +458,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -479,7 +479,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -504,7 +504,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -525,7 +525,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -551,7 +551,7 @@ END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_ipaddress_point') plpy.debug('Entering _cdb_geocode_ipaddress_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -560,7 +560,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"])
rv = plpy.execute(plan, [ip], 1) rv = plpy.execute(plan, [ip], 1)
plpy.debug('Returning from _cdb_geocode_ipaddress_point') plpy.debug('Returning from _cdb_geocode_ipaddress_point')
@@ -572,7 +572,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -607,9 +607,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
@@ -1,5 +1,5 @@
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -7,7 +7,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_geocoder import config_helper from cartodb_geocoder import config_helper
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -25,7 +25,7 @@ RETURNS boolean AS $$
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -34,10 +34,10 @@ RETURNS boolean AS $$
from cartodb_geocoder import redis_helper from cartodb_geocoder import redis_helper
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'], redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -55,7 +55,7 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from heremaps import heremapsgeocoder from heremaps import heremapsgeocoder
from cartodb_geocoder import quota_service from cartodb_geocoder import quota_service
@@ -88,7 +88,7 @@ RETURNS Geometry AS $$
plpy.error(error_msg) plpy.error(error_msg)
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.error('Google geocoder is not available yet') plpy.error('Google geocoder is not available yet')
return None return None
@@ -1,16 +1,16 @@
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [country_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -29,19 +29,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(admin1_name)], 1) rv = plpy.execute(plan, [admin1_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -60,19 +60,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon(trim($1), trim($2)) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon(trim($1), trim($2)) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(admin1_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -91,19 +91,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1)) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1)) AS mypoint", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name)], 1) rv = plpy.execute(plan, [city_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -122,19 +122,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1), trim($2)) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1), trim($2)) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -153,19 +153,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1), trim($2), trim($3)) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1), trim($2), trim($3)) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name), plpy.quote_nullable(admin1_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -184,19 +184,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point(trim($1)) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point(trim($1)) AS mypoint", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(code)], 1) rv = plpy.execute(plan, [code], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -215,19 +215,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point(trim($1), trim($2)) AS mypoint", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point(trim($1), trim($2)) AS mypoint", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(code), plpy.quote_nullable(country)], 1) rv = plpy.execute(plan, [code, country], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -246,19 +246,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(code)], 1) rv = plpy.execute(plan, [code], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -277,19 +277,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon(trim($1), trim($2)) AS mypolygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon(trim($1), trim($2)) AS mypolygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(code), plpy.quote_nullable(country)], 1) rv = plpy.execute(plan, [code, country], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -308,19 +308,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point(trim($1)) AS mypoint", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point(trim($1)) AS mypoint", ["TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(ip)], 1) rv = plpy.execute(plan, [ip], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -1,7 +1,7 @@
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES --DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -10,8 +10,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf_v2(config_key text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text)
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key) conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key)
conf = plpy.execute(conf_query)[0]['conf'] conf = plpy.execute(conf_query)[0]['conf']
if conf is None: if conf is None:
@@ -29,7 +29,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -38,10 +38,10 @@ RETURNS boolean AS $$
from cartodb_services.tools import RedisConnection from cartodb_services.tools import RedisConnection
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'], redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -59,7 +59,7 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -67,7 +67,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_services.metrics import GeocoderConfig from cartodb_services.metrics import GeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -84,25 +84,25 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
plpy.execute("SELECT cdb_geocoder_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)] user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
if user_geocoder_config.heremaps_geocoder: if user_geocoder_config.heremaps_geocoder:
here_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
elif user_geocoder_config.google_geocoder: elif user_geocoder_config.google_geocoder:
google_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) google_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
else: else:
plpy.error('Requested geocoder is not available') plpy.error('Requested geocoder is not available')
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.here import HereMapsGeocoder from cartodb_services.here import HereMapsGeocoder
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
@@ -137,7 +137,7 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.google import GoogleMapsGeocoder from cartodb_services.google import GoogleMapsGeocoder
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
@@ -169,7 +169,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin0_polygons') plpy.debug('Entering cdb_geocode_admin0_polygons')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -178,7 +178,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [country_name], 1) rv = plpy.execute(plan, [country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons')
@@ -190,7 +190,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -207,7 +207,7 @@ $$ LANGUAGE plpgsql;
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -216,7 +216,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [admin1_name], 1) rv = plpy.execute(plan, [admin1_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons')
@@ -224,7 +224,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -233,7 +233,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [admin1_name, country_name], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
@@ -246,7 +246,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -270,7 +270,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -296,7 +296,7 @@ $$ LANGUAGE plpgsql;
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -305,7 +305,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"])
rv = plpy.execute(plan, [city_name], 1) rv = plpy.execute(plan, [city_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -313,7 +313,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -322,7 +322,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [city_name, country_name], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -330,7 +330,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -339,7 +339,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -352,7 +352,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -371,7 +371,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -391,7 +391,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -416,7 +416,7 @@ $$ LANGUAGE plpgsql;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -425,14 +425,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1) AS point", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1) AS point", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -441,14 +441,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_polygon') plpy.debug('Entering _cdb_geocode_postalcode_polygon')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -457,14 +457,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_polygon') plpy.debug('Returning from _cdb_geocode_postalcode_polygon')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -473,7 +473,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
@@ -485,7 +485,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -506,7 +506,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -531,7 +531,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -552,7 +552,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -578,7 +578,7 @@ END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_ipaddress_point') plpy.debug('Entering _cdb_geocode_ipaddress_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -587,7 +587,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"])
rv = plpy.execute(plan, [ip], 1) rv = plpy.execute(plan, [ip], 1)
plpy.debug('Returning from _cdb_geocode_ipaddress_point') plpy.debug('Returning from _cdb_geocode_ipaddress_point')
@@ -599,7 +599,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -634,9 +634,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
@@ -1,4 +1,4 @@
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin0_polygons') plpy.debug('Entering cdb_geocode_admin0_polygons')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -7,14 +7,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [country_name], 1) rv = plpy.execute(plan, [country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons')
return rv[0]["mypolygon"] return rv[0]["mypolygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -23,14 +23,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [admin1_name], 1) rv = plpy.execute(plan, [admin1_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons')
return rv[0]["mypolygon"] return rv[0]["mypolygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -39,14 +39,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [admin1_name, country_name], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
return rv[0]["mypolygon"] return rv[0]["mypolygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -55,14 +55,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"])
rv = plpy.execute(plan, [city_name], 1) rv = plpy.execute(plan, [city_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
return rv[0]["mypoint"] return rv[0]["mypoint"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -71,14 +71,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [city_name, country_name], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
return rv[0]["mypoint"] return rv[0]["mypoint"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -87,14 +87,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
return rv[0]["mypoint"] return rv[0]["mypoint"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -103,14 +103,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1) AS point", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1) AS point", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -119,14 +119,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_polygon') plpy.debug('Entering _cdb_geocode_postalcode_polygon')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -135,14 +135,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_polygon') plpy.debug('Returning from _cdb_geocode_postalcode_polygon')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -151,14 +151,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_ipaddress_point') plpy.debug('Entering _cdb_geocode_ipaddress_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -167,7 +167,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"])
rv = plpy.execute(plan, [ip], 1) rv = plpy.execute(plan, [ip], 1)
plpy.debug('Returning from _cdb_geocode_ipaddress_point') plpy.debug('Returning from _cdb_geocode_ipaddress_point')
@@ -1,7 +1,7 @@
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES --DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -10,8 +10,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf_v2(config_key text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text)
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key) conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key)
conf = plpy.execute(conf_query)[0]['conf'] conf = plpy.execute(conf_query)[0]['conf']
if conf is None: if conf is None:
@@ -29,7 +29,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -38,10 +38,10 @@ RETURNS boolean AS $$
from cartodb_services.tools import RedisConnection from cartodb_services.tools import RedisConnection
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'], redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -59,7 +59,7 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -67,7 +67,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_services.quota import GeocoderConfig from cartodb_services.quota import GeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -84,25 +84,25 @@ RETURNS boolean AS $$
return True return True
$$ LANGUAGE plpythonu SECURITY DEFINER; $$ LANGUAGE plpythonu SECURITY DEFINER;
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
plpy.execute("SELECT cdb_geocoder_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)] user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
if user_geocoder_config.heremaps_geocoder: if user_geocoder_config.heremaps_geocoder:
here_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
elif user_geocoder_config.google_geocoder: elif user_geocoder_config.google_geocoder:
google_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) google_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
else: else:
plpy.error('Requested geocoder is not available') plpy.error('Requested geocoder is not available')
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.here import HereMapsGeocoder from cartodb_services.here import HereMapsGeocoder
from cartodb_services.quota import QuotaService from cartodb_services.quota import QuotaService
@@ -137,7 +137,7 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.google import GoogleMapsGeocoder from cartodb_services.google import GoogleMapsGeocoder
from cartodb_services.quota import QuotaService from cartodb_services.quota import QuotaService
@@ -167,19 +167,19 @@ RETURNS Geometry AS $$
finally: finally:
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [country_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -203,7 +203,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -218,19 +218,19 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(admin1_name)], 1) rv = plpy.execute(plan, [admin1_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -250,19 +250,19 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon(trim($1), trim($2)) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon(trim($1), trim($2)) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(admin1_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -287,7 +287,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -311,7 +311,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -335,19 +335,19 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1)) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1)) AS mypoint", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name)], 1) rv = plpy.execute(plan, [city_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -367,19 +367,19 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1), trim($2)) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1), trim($2)) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -399,19 +399,19 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1), trim($2), trim($3)) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1), trim($2), trim($3)) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name), plpy.quote_nullable(admin1_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -436,7 +436,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -455,7 +455,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -475,7 +475,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -498,19 +498,19 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point(trim($1)) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point(trim($1)) AS mypoint", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(code)], 1) rv = plpy.execute(plan, [code], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -529,19 +529,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point(trim($1), trim($2)) AS mypoint", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point(trim($1), trim($2)) AS mypoint", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(code), plpy.quote_nullable(country)], 1) rv = plpy.execute(plan, [code, country], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -560,19 +560,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(code)], 1) rv = plpy.execute(plan, [code], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -591,19 +591,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon(trim($1), trim($2)) AS mypolygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon(trim($1), trim($2)) AS mypolygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(code), plpy.quote_nullable(country)], 1) rv = plpy.execute(plan, [code, country], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -626,7 +626,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -647,7 +647,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -672,7 +672,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -693,7 +693,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -717,19 +717,19 @@ RETURNS Geometry AS $$
RETURN ret; RETURN ret;
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point(trim($1)) AS mypoint", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point(trim($1)) AS mypoint", ["TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(ip)], 1) rv = plpy.execute(plan, [ip], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -752,7 +752,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -787,9 +787,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
@@ -0,0 +1,5 @@
comment = 'CartoDB dataservices server extension'
default_version = '0.3.0'
requires = 'plpythonu, postgis, cdb_geocoder'
superuser = true
schema = cdb_dataservices_server
@@ -1,29 +0,0 @@
DROP FUNCTION IF EXISTS cdb_geocoder_server._get_redis_conf_v2(text);
DROP FUNCTION IF EXISTS cdb_geocoder_server._connect_to_redis(text);
DROP FUNCTION IF EXISTS cdb_geocoder_server._get_geocoder_config(text, text);
DROP FUNCTION IF EXISTS cdb_geocoder_server.cdb_geocode_street_point(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
DROP FUNCTION IF EXISTS cdb_geocoder_server.cdb_geocode_street_point_v2(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
DROP FUNCTION IF EXISTS cdb_geocoder_server._cdb_here_geocode_street_point(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
DROP FUNCTION IF EXISTS cdb_geocoder_server._cdb_google_geocode_street_point(TEXT, TEXT, TEXT, TEXT, TEXT, TEXT);
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry
AS $$
import json
from heremaps import heremapsgeocoder
heremaps_conf = json.loads(plpy.execute("SELECT cdb_geocoder_server._get_conf('heremaps')", 1)[0]['get_conf'])
app_id = heremaps_conf['geocoder']['app_id']
app_code = heremaps_conf['geocoder']['app_code']
geocoder = heremapsgeocoder.Geocoder(app_id, app_code)
results = geocoder.geocode_address(searchtext=searchtext, city=city, state=state_province, country=country)
coordinates = geocoder.extract_lng_lat_from_result(results[0])
plan = plpy.prepare("SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326); ", ["double precision", "double precision"])
point = plpy.execute(plan, [coordinates[0], coordinates[1]], 1)[0]
return point['st_setsrid']
$$ LANGUAGE plpythonu;
@@ -1,6 +0,0 @@
# cdb geocoder server extension
comment = 'CartoDB server geocoder extension'
default_version = '0.2.1'
requires = 'plpythonu, postgis, cdb_geocoder'
superuser = true
schema = cdb_geocoder_server
+1 -1
View File
@@ -1,3 +1,3 @@
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES --DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
@@ -1,4 +1,4 @@
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -7,8 +7,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf() CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf()
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('redis_conf') conf")[0]['conf'] conf = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('redis_conf') conf")[0]['conf']
if conf is None: if conf is None:
plpy.error("There is no redis configuration defined") plpy.error("There is no redis configuration defined")
@@ -25,7 +25,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
if user_id in GD and 'redis_connection' in GD[user_id]: if user_id in GD and 'redis_connection' in GD[user_id]:
return False return False
@@ -33,7 +33,7 @@ RETURNS boolean AS $$
from cartodb_geocoder import redis_helper from cartodb_geocoder import redis_helper
config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf() c;""")[0] from cdb_dataservices_server._get_redis_conf() c;""")[0]
redis_connection = redis_helper.RedisHelper(config_params['sentinel_host'], redis_connection = redis_helper.RedisHelper(config_params['sentinel_host'],
config_params['sentinel_port'], config_params['sentinel_port'],
config_params['sentinel_master_id'], config_params['sentinel_master_id'],
@@ -1,11 +1,11 @@
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry RETURNS Geometry
AS $$ AS $$
import json import json
from heremaps import heremapsgeocoder from heremaps import heremapsgeocoder
heremaps_conf = json.loads(plpy.execute("SELECT cdb_geocoder_server._get_conf('heremaps')", 1)[0]['get_conf']) heremaps_conf = json.loads(plpy.execute("SELECT cdb_dataservices_server._get_conf('heremaps')", 1)[0]['get_conf'])
app_id = heremaps_conf['geocoder']['app_id'] app_id = heremaps_conf['geocoder']['app_id']
app_code = heremaps_conf['geocoder']['app_code'] app_code = heremaps_conf['geocoder']['app_code']
+3 -3
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin0_polygons') plpy.debug('Entering cdb_geocode_admin0_polygons')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,7 +9,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [country_name], 1) rv = plpy.execute(plan, [country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons')
@@ -21,7 +21,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+6 -6
View File
@@ -1,7 +1,7 @@
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -10,7 +10,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [admin1_name], 1) rv = plpy.execute(plan, [admin1_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons')
@@ -18,7 +18,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -27,7 +27,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [admin1_name, country_name], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
@@ -40,7 +40,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -64,7 +64,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -1,7 +1,7 @@
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -10,7 +10,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"])
rv = plpy.execute(plan, [city_name], 1) rv = plpy.execute(plan, [city_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -18,7 +18,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -27,7 +27,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [city_name, country_name], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -35,7 +35,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -44,7 +44,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -57,7 +57,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -76,7 +76,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -96,7 +96,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+12 -12
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,14 +9,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1) AS point", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1) AS point", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -25,14 +25,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_polygon') plpy.debug('Entering _cdb_geocode_postalcode_polygon')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -41,14 +41,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_polygon') plpy.debug('Returning from _cdb_geocode_postalcode_polygon')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -57,7 +57,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
@@ -69,7 +69,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -90,7 +90,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -115,7 +115,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -136,7 +136,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+3 -3
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_ipaddress_point') plpy.debug('Entering _cdb_geocode_ipaddress_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,7 +9,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"])
rv = plpy.execute(plan, [ip], 1) rv = plpy.execute(plan, [ip], 1)
plpy.debug('Returning from _cdb_geocode_ipaddress_point') plpy.debug('Returning from _cdb_geocode_ipaddress_point')
@@ -21,7 +21,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -7,9 +7,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
+1 -1
View File
@@ -1,3 +1,3 @@
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES --DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
@@ -1,4 +1,4 @@
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -7,8 +7,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf_v2(config_key text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text)
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key) conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key)
conf = plpy.execute(conf_query)[0]['conf'] conf = plpy.execute(conf_query)[0]['conf']
if conf is None: if conf is None:
@@ -26,7 +26,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -35,10 +35,10 @@ RETURNS boolean AS $$
from cartodb_geocoder import redis_helper from cartodb_geocoder import redis_helper
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'], redis_metadata_connection = redis_helper.RedisHelper(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -1,5 +1,5 @@
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -7,7 +7,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_geocoder import config_helper from cartodb_geocoder import config_helper
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -1,23 +1,23 @@
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
plpy.execute("SELECT cdb_geocoder_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)] user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
if user_geocoder_config.heremaps_geocoder: if user_geocoder_config.heremaps_geocoder:
here_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
elif user_geocoder_config.google_geocoder: elif user_geocoder_config.google_geocoder:
google_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) google_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
else: else:
plpy.error('Requested geocoder is not available') plpy.error('Requested geocoder is not available')
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from heremaps import heremapsgeocoder from heremaps import heremapsgeocoder
from cartodb_geocoder import quota_service from cartodb_geocoder import quota_service
@@ -51,7 +51,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.error('Google geocoder is not available yet') plpy.error('Google geocoder is not available yet')
return None return None
+3 -3
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin0_polygons') plpy.debug('Entering cdb_geocode_admin0_polygons')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,7 +9,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [country_name], 1) rv = plpy.execute(plan, [country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons')
@@ -21,7 +21,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+6 -6
View File
@@ -1,7 +1,7 @@
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -10,7 +10,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [admin1_name], 1) rv = plpy.execute(plan, [admin1_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons')
@@ -18,7 +18,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -27,7 +27,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [admin1_name, country_name], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
@@ -40,7 +40,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -64,7 +64,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -1,7 +1,7 @@
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -10,7 +10,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"])
rv = plpy.execute(plan, [city_name], 1) rv = plpy.execute(plan, [city_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -18,7 +18,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -27,7 +27,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [city_name, country_name], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -35,7 +35,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -44,7 +44,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -57,7 +57,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -76,7 +76,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -96,7 +96,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+12 -12
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,14 +9,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1) AS point", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1) AS point", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -25,14 +25,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_polygon') plpy.debug('Entering _cdb_geocode_postalcode_polygon')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -41,14 +41,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_polygon') plpy.debug('Returning from _cdb_geocode_postalcode_polygon')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -57,7 +57,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
@@ -69,7 +69,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -90,7 +90,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -115,7 +115,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -136,7 +136,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+3 -3
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_ipaddress_point') plpy.debug('Entering _cdb_geocode_ipaddress_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,7 +9,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"])
rv = plpy.execute(plan, [ip], 1) rv = plpy.execute(plan, [ip], 1)
plpy.debug('Returning from _cdb_geocode_ipaddress_point') plpy.debug('Returning from _cdb_geocode_ipaddress_point')
@@ -21,7 +21,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -7,9 +7,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
+1 -1
View File
@@ -1,3 +1,3 @@
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES --DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
@@ -1,4 +1,4 @@
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -7,8 +7,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf_v2(config_key text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text)
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key) conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key)
conf = plpy.execute(conf_query)[0]['conf'] conf = plpy.execute(conf_query)[0]['conf']
if conf is None: if conf is None:
@@ -26,7 +26,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -35,10 +35,10 @@ RETURNS boolean AS $$
from cartodb_services.tools import RedisConnection from cartodb_services.tools import RedisConnection
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'], redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -1,5 +1,5 @@
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -7,7 +7,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_services.metrics import GeocoderConfig from cartodb_services.metrics import GeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -1,23 +1,23 @@
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
plpy.execute("SELECT cdb_geocoder_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)] user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
if user_geocoder_config.heremaps_geocoder: if user_geocoder_config.heremaps_geocoder:
here_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
elif user_geocoder_config.google_geocoder: elif user_geocoder_config.google_geocoder:
google_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) google_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
else: else:
plpy.error('Requested geocoder is not available') plpy.error('Requested geocoder is not available')
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.here import HereMapsGeocoder from cartodb_services.here import HereMapsGeocoder
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
@@ -52,7 +52,7 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.google import GoogleMapsGeocoder from cartodb_services.google import GoogleMapsGeocoder
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
+3 -3
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin0_polygons') plpy.debug('Entering cdb_geocode_admin0_polygons')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,7 +9,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [country_name], 1) rv = plpy.execute(plan, [country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin0_polygons')
@@ -21,7 +21,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+6 -6
View File
@@ -1,7 +1,7 @@
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -10,7 +10,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1) AS mypolygon", ["text"])
rv = plpy.execute(plan, [admin1_name], 1) rv = plpy.execute(plan, [admin1_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygons')
@@ -18,7 +18,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -27,7 +27,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [admin1_name, country_name], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('Returning from Returning from cdb_geocode_admin1_polygon(admin1_name text, country_name text)')
@@ -40,7 +40,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -64,7 +64,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -1,7 +1,7 @@
-- Interfacess of the server extension -- Interfacess of the server extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -10,7 +10,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1) AS mypoint", ["text"])
rv = plpy.execute(plan, [city_name], 1) rv = plpy.execute(plan, [city_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -18,7 +18,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -27,7 +27,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [city_name, country_name], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -35,7 +35,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('Entering cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -44,7 +44,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
plpy.debug('Returning from Returning from geocode_namedplace') plpy.debug('Returning from Returning from geocode_namedplace')
@@ -57,7 +57,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -76,7 +76,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -96,7 +96,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+12 -12
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,14 +9,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1) AS point", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1) AS point", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -25,14 +25,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point($1, $2) AS point", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
return rv[0]["point"] return rv[0]["point"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_polygon') plpy.debug('Entering _cdb_geocode_postalcode_polygon')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -41,14 +41,14 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1) AS polygon", ["text"])
rv = plpy.execute(plan, [code], 1) rv = plpy.execute(plan, [code], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_polygon') plpy.debug('Returning from _cdb_geocode_postalcode_polygon')
return rv[0]["polygon"] return rv[0]["polygon"]
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_postalcode_point') plpy.debug('Entering _cdb_geocode_postalcode_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -57,7 +57,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon($1, $2) AS polygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [code, country], 1) rv = plpy.execute(plan, [code, country], 1)
plpy.debug('Returning from _cdb_geocode_postalcode_point') plpy.debug('Returning from _cdb_geocode_postalcode_point')
@@ -69,7 +69,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -90,7 +90,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -115,7 +115,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -136,7 +136,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
+3 -3
View File
@@ -1,6 +1,6 @@
-- Interface of the server extension -- Interface of the server extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.debug('Entering _cdb_geocode_ipaddress_point') plpy.debug('Entering _cdb_geocode_ipaddress_point')
plpy.debug('user = %s' % username) plpy.debug('user = %s' % username)
@@ -9,7 +9,7 @@ RETURNS Geometry AS $$
#--TODO: quota check #--TODO: quota check
#-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point($1) AS point", ["TEXT"])
rv = plpy.execute(plan, [ip], 1) rv = plpy.execute(plan, [ip], 1)
plpy.debug('Returning from _cdb_geocode_ipaddress_point') plpy.debug('Returning from _cdb_geocode_ipaddress_point')
@@ -21,7 +21,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -7,9 +7,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
@@ -1,3 +1,3 @@
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES --DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION -- Complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit
@@ -1,4 +1,4 @@
CREATE TYPE cdb_geocoder_server._redis_conf_params AS ( CREATE TYPE cdb_dataservices_server._redis_conf_params AS (
sentinel_host text, sentinel_host text,
sentinel_port int, sentinel_port int,
sentinel_master_id text, sentinel_master_id text,
@@ -7,8 +7,8 @@ CREATE TYPE cdb_geocoder_server._redis_conf_params AS (
); );
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_redis_conf_v2(config_key text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text)
RETURNS cdb_geocoder_server._redis_conf_params AS $$ RETURNS cdb_dataservices_server._redis_conf_params AS $$
conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key) conf_query = "SELECT cartodb.CDB_Conf_GetConf('{0}') as conf".format(config_key)
conf = plpy.execute(conf_query)[0]['conf'] conf = plpy.execute(conf_query)[0]['conf']
if conf is None: if conf is None:
@@ -26,7 +26,7 @@ RETURNS cdb_geocoder_server._redis_conf_params AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
-- Get the connection to redis from cache or create a new one -- Get the connection to redis from cache or create a new one
CREATE OR REPLACE FUNCTION cdb_geocoder_server._connect_to_redis(user_id text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._connect_to_redis(user_id text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "redis_connection_{0}".format(user_id) cache_key = "redis_connection_{0}".format(user_id)
if cache_key in GD: if cache_key in GD:
@@ -35,10 +35,10 @@ RETURNS boolean AS $$
from cartodb_services.tools import RedisConnection from cartodb_services.tools import RedisConnection
metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0]
metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port,
c.sentinel_master_id, c.timeout, c.redis_db c.sentinel_master_id, c.timeout, c.redis_db
from cdb_geocoder_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0]
redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'], redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'],
metadata_config_params['sentinel_port'], metadata_config_params['sentinel_port'],
metadata_config_params['sentinel_master_id'], metadata_config_params['sentinel_master_id'],
@@ -1,5 +1,5 @@
-- Get the Redis configuration from the _conf table -- -- Get the Redis configuration from the _conf table --
CREATE OR REPLACE FUNCTION cdb_geocoder_server._get_geocoder_config(username text, orgname text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_geocoder_config(username text, orgname text)
RETURNS boolean AS $$ RETURNS boolean AS $$
cache_key = "user_geocoder_config_{0}".format(username) cache_key = "user_geocoder_config_{0}".format(username)
if cache_key in GD: if cache_key in GD:
@@ -7,7 +7,7 @@ RETURNS boolean AS $$
else: else:
import json import json
from cartodb_services.quota import GeocoderConfig from cartodb_services.quota import GeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metadata_connection']
heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf'] heremaps_conf_json = plpy.execute("SELECT cartodb.CDB_Conf_GetConf('heremaps_conf') as heremaps_conf", 1)[0]['heremaps_conf']
if not heremaps_conf_json: if not heremaps_conf_json:
@@ -1,23 +1,23 @@
-- Geocodes a street address given a searchtext and a state and/or country -- Geocodes a street address given a searchtext and a state and/or country
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_street_point_v2(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
plpy.execute("SELECT cdb_geocoder_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)] user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
if user_geocoder_config.heremaps_geocoder: if user_geocoder_config.heremaps_geocoder:
here_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) here_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_here_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(here_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
elif user_geocoder_config.google_geocoder: elif user_geocoder_config.google_geocoder:
google_plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"]) google_plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_google_geocode_street_point($1, $2, $3, $4, $5, $6) as point; ", ["text", "text", "text", "text", "text", "text"])
return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point'] return plpy.execute(google_plan, [username, orgname, searchtext, city, state_province, country], 1)[0]['point']
else: else:
plpy.error('Requested geocoder is not available') plpy.error('Requested geocoder is not available')
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.here import HereMapsGeocoder from cartodb_services.here import HereMapsGeocoder
from cartodb_services.quota import QuotaService from cartodb_services.quota import QuotaService
@@ -52,7 +52,7 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.google import GoogleMapsGeocoder from cartodb_services.google import GoogleMapsGeocoder
from cartodb_services.quota import QuotaService from cartodb_services.quota import QuotaService
@@ -1,16 +1,16 @@
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin0_polygon(username text, orgname text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin0_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin0_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [country_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -34,7 +34,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin0_polygon(country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin0_polygon(country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -1,17 +1,17 @@
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(admin1_name)], 1) rv = plpy.execute(plan, [admin1_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -31,19 +31,19 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_admin1_polygon(username text, orgname text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_admin1_polygon(trim($1), trim($2)) AS mypolygon", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_admin1_polygon(trim($1), trim($2)) AS mypolygon", ["text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(admin1_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [admin1_name, country_name], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -68,7 +68,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_admin1_polygon(admin1_name text) ---- cdb_geocode_admin1_polygon(admin1_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -92,7 +92,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_admin1_polygon(admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -1,17 +1,17 @@
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1)) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1)) AS mypoint", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name)], 1) rv = plpy.execute(plan, [city_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -31,19 +31,19 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1), trim($2)) AS mypoint", ["text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1), trim($2)) AS mypoint", ["text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [city_name, country_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -63,19 +63,19 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_namedplace_point(username text, orgname text, city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_namedplace_point(trim($1), trim($2), trim($3)) AS mypoint", ["text", "text", "text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_namedplace_point(trim($1), trim($2), trim($3)) AS mypoint", ["text", "text", "text"])
rv = plpy.execute(plan, [plpy.quote_nullable(city_name), plpy.quote_nullable(admin1_name), plpy.quote_nullable(country_name)], 1) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -100,7 +100,7 @@ $$ LANGUAGE plpythonu;
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
---- cdb_geocode_namedplace_point(city_name text) ---- cdb_geocode_namedplace_point(city_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -119,7 +119,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -139,7 +139,7 @@ RETURNS Geometry AS $$
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -1,16 +1,16 @@
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point(trim($1)) AS mypoint", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point(trim($1)) AS mypoint", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(code)], 1) rv = plpy.execute(plan, [code], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -29,19 +29,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_point(trim($1), trim($2)) AS mypoint", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_point(trim($1), trim($2)) AS mypoint", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(code), plpy.quote_nullable(country)], 1) rv = plpy.execute(plan, [code, country], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -60,19 +60,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon(trim($1)) AS mypolygon", ["text"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon(trim($1)) AS mypolygon", ["text"])
rv = plpy.execute(plan, [plpy.quote_nullable(code)], 1) rv = plpy.execute(plan, [code], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -91,19 +91,19 @@ RETURNS Geometry AS $$
quota_service.increment_total_geocoder_use() quota_service.increment_total_geocoder_use()
$$ LANGUAGE plpythonu; $$ LANGUAGE plpythonu;
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_postalcode_polygon(trim($1), trim($2)) AS mypolygon", ["TEXT", "TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_postalcode_polygon(trim($1), trim($2)) AS mypolygon", ["TEXT", "TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(code), plpy.quote_nullable(country)], 1) rv = plpy.execute(plan, [code, country], 1)
result = rv[0]["mypolygon"] result = rv[0]["mypolygon"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -126,7 +126,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -147,7 +147,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_point(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_point(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -172,7 +172,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -193,7 +193,7 @@ RETURNS Geometry AS $$
END END
$$ LANGUAGE plpgsql; $$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_postalcode_polygon(code text, country text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_postalcode_polygon(code text, country text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -1,16 +1,16 @@
CREATE OR REPLACE FUNCTION cdb_geocoder_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_ipaddress_point(username text, orgname text, ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
from cartodb_services.metrics import QuotaService from cartodb_services.metrics import QuotaService
from cartodb_services.metrics import InternalGeocoderConfig from cartodb_services.metrics import InternalGeocoderConfig
plpy.execute("SELECT cdb_geocoder_server._connect_to_redis('{0}')".format(username)) plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname) user_geocoder_config = InternalGeocoderConfig(redis_conn, username, orgname)
quota_service = QuotaService(user_geocoder_config, redis_conn) quota_service = QuotaService(user_geocoder_config, redis_conn)
try: try:
plan = plpy.prepare("SELECT cdb_geocoder_server._cdb_geocode_ipaddress_point(trim($1)) AS mypoint", ["TEXT"]) plan = plpy.prepare("SELECT cdb_dataservices_server._cdb_geocode_ipaddress_point(trim($1)) AS mypoint", ["TEXT"])
rv = plpy.execute(plan, [plpy.quote_nullable(ip)], 1) rv = plpy.execute(plan, [ip], 1)
result = rv[0]["mypoint"] result = rv[0]["mypoint"]
if result: if result:
quota_service.increment_success_geocoder_use() quota_service.increment_success_geocoder_use()
@@ -33,7 +33,7 @@ $$ LANGUAGE plpythonu;
-- Implementation of the server extension -- Implementation of the server extension
-- Note: these functions depend on the cdb_geocoder extension -- Note: these functions depend on the cdb_geocoder extension
CREATE OR REPLACE FUNCTION cdb_geocoder_server._cdb_geocode_ipaddress_point(ip text) CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_geocode_ipaddress_point(ip text)
RETURNS Geometry AS $$ RETURNS Geometry AS $$
DECLARE DECLARE
ret Geometry; ret Geometry;
@@ -7,9 +7,9 @@ BEGIN
CREATE USER geocoder_api; CREATE USER geocoder_api;
END IF; END IF;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api; GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO geocoder_api;
GRANT USAGE ON SCHEMA cdb_geocoder_server TO geocoder_api; GRANT USAGE ON SCHEMA cdb_dataservices_server TO geocoder_api;
GRANT USAGE ON SCHEMA public TO geocoder_api; GRANT USAGE ON SCHEMA public TO geocoder_api;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api; GRANT SELECT ON ALL TABLES IN SCHEMA public TO geocoder_api;
END$$; END$$;
@@ -5,7 +5,7 @@ CREATE EXTENSION plpythonu;
CREATE EXTENSION cartodb; CREATE EXTENSION cartodb;
CREATE EXTENSION cdb_geocoder; CREATE EXTENSION cdb_geocoder;
-- Install the extension -- Install the extension
CREATE EXTENSION cdb_geocoder_server; CREATE EXTENSION cdb_dataservices_server;
-- Mock the redis server connection to point to this very test db -- Mock the redis server connection to point to this very test db
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
cdb_conf_setconf cdb_conf_setconf
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
cdb_geocode_admin0_polygon cdb_geocode_admin0_polygon
---------------------------- ----------------------------
@@ -16,7 +16,7 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
-71.1031880899493 42.3152774590236))',4326) -71.1031880899493 42.3152774590236))',4326)
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
cdb_geocode_admin0_polygon cdb_geocode_admin0_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
@@ -26,7 +26,7 @@ SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin0_polygon' AND proname = 'cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -37,7 +37,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin0_polygon' AND proname = '_cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -1,12 +1,12 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
---------------------------- ----------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
---------------------------- ----------------------------
@@ -22,13 +22,13 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
-71.1031880899493 42.3152774590236))',4326) -71.1031880899493 42.3152774590236))',4326)
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
@@ -38,7 +38,7 @@ SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -49,7 +49,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -60,7 +60,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -71,7 +71,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -1,18 +1,18 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
@@ -31,37 +31,37 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
-- Insert dummy data into admin1 decoder table -- Insert dummy data into admin1 decoder table
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
-- This should return the point inserted above -- This should return the point inserted above
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
@@ -71,7 +71,7 @@ SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgna
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -82,7 +82,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -93,7 +93,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -104,7 +104,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -115,7 +115,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -126,7 +126,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -6,7 +6,7 @@ DELETE FROM available_services;
DELETE FROM admin0_synonyms; DELETE FROM admin0_synonyms;
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
------------------------------ ------------------------------
@@ -42,25 +42,25 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
3 3
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000000000000000E040408036B47414764840 0101000020E61000000000000000E040408036B47414764840
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000000000000000E040408036B47414764840 0101000020E61000000000000000E040408036B47414764840
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204');
cdb_geocode_postalcode_polygon cdb_geocode_postalcode_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040 0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain');
cdb_geocode_postalcode_polygon cdb_geocode_postalcode_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040 0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
@@ -76,7 +76,7 @@ DELETE FROM admin0_synonyms;
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -87,7 +87,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -98,7 +98,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -109,7 +109,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -120,7 +120,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -131,7 +131,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -142,7 +142,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -153,7 +153,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
cdb_geocode_ipaddress_point cdb_geocode_ipaddress_point
----------------------------- -----------------------------
@@ -9,7 +9,7 @@ SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgnam
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
cdb_geocode_ipaddress_point cdb_geocode_ipaddress_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000003333333333334440AE47E17A14AE0D40 0101000020E61000003333333333334440AE47E17A14AE0D40
@@ -19,7 +19,7 @@ SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgnam
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_ipaddress_point' AND proname = 'cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -30,7 +30,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_ipaddress_point' AND proname = '_cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -1,5 +1,5 @@
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api;
REVOKE USAGE ON SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE USAGE ON SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE USAGE ON SCHEMA public FROM geocoder_api; REVOKE USAGE ON SCHEMA public FROM geocoder_api;
REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api; REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api;
@@ -6,7 +6,7 @@ CREATE EXTENSION cartodb;
CREATE EXTENSION cdb_geocoder; CREATE EXTENSION cdb_geocoder;
-- Install the extension -- Install the extension
CREATE EXTENSION cdb_geocoder_server; CREATE EXTENSION cdb_dataservices_server;
-- Mock the redis server connection to point to this very test db -- Mock the redis server connection to point to this very test db
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
-- Insert some dummy synonym -- Insert some dummy synonym
INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP'); INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP');
@@ -14,19 +14,19 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
-- Check for admin0 signatures -- Check for admin0 signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin0_polygon' AND proname = 'cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin0_polygon' AND proname = '_cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
@@ -1,7 +1,7 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
-- Insert dummy data into country decoder table -- Insert dummy data into country decoder table
INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA'); INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA');
@@ -15,34 +15,34 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
-- Check for admin1 signatures -- Check for admin1 signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
@@ -1,8 +1,8 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
-- Insert dummy data into points table -- Insert dummy data into points table
INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText( INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText(
@@ -21,52 +21,52 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
-- This should return the point inserted above -- This should return the point inserted above
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain');
-- Check for namedplaces signatures -- Check for namedplaces signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
@@ -7,7 +7,7 @@ DELETE FROM admin0_synonyms;
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES ( INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES (
@@ -44,13 +44,13 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain');
-- Clean dbs -- Clean dbs
DELETE FROM global_postal_code_points; DELETE FROM global_postal_code_points;
@@ -63,55 +63,55 @@ DELETE FROM admin0_synonyms;
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
@@ -1,24 +1,24 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
-- Check for namedplaces signatures (point and polygon) -- Check for namedplaces signatures (point and polygon)
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_ipaddress_point' AND proname = 'cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_ipaddress_point' AND proname = '_cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
@@ -1,5 +1,5 @@
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api;
REVOKE USAGE ON SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE USAGE ON SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE USAGE ON SCHEMA public FROM geocoder_api; REVOKE USAGE ON SCHEMA public FROM geocoder_api;
REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api; REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api;
@@ -5,7 +5,7 @@ CREATE EXTENSION plpythonu;
CREATE EXTENSION cartodb; CREATE EXTENSION cartodb;
CREATE EXTENSION cdb_geocoder; CREATE EXTENSION cdb_geocoder;
-- Install the extension -- Install the extension
CREATE EXTENSION cdb_geocoder_server; CREATE EXTENSION cdb_dataservices_server;
-- Mock the redis server connection to point to this very test db -- Mock the redis server connection to point to this very test db
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
cdb_conf_setconf cdb_conf_setconf
@@ -2,7 +2,7 @@
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_street_point' AND proname = 'cdb_geocode_street_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text');
exists exists
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
cdb_geocode_admin0_polygon cdb_geocode_admin0_polygon
---------------------------- ----------------------------
@@ -16,7 +16,7 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
-71.1031880899493 42.3152774590236))',4326) -71.1031880899493 42.3152774590236))',4326)
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
cdb_geocode_admin0_polygon cdb_geocode_admin0_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
@@ -26,7 +26,7 @@ SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin0_polygon' AND proname = 'cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -37,7 +37,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin0_polygon' AND proname = '_cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -1,12 +1,12 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
---------------------------- ----------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
---------------------------- ----------------------------
@@ -22,13 +22,13 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
-71.1031880899493 42.3152774590236))',4326) -71.1031880899493 42.3152774590236))',4326)
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
@@ -38,7 +38,7 @@ SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -49,7 +49,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -60,7 +60,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -71,7 +71,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -1,18 +1,18 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
@@ -31,37 +31,37 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
-- Insert dummy data into admin1 decoder table -- Insert dummy data into admin1 decoder table
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
-- This should return the point inserted above -- This should return the point inserted above
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
@@ -71,7 +71,7 @@ SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgna
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -82,7 +82,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -93,7 +93,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -104,7 +104,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -115,7 +115,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -126,7 +126,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -6,7 +6,7 @@ DELETE FROM available_services;
DELETE FROM admin0_synonyms; DELETE FROM admin0_synonyms;
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
------------------------------ ------------------------------
@@ -42,25 +42,25 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
3 3
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000000000000000E040408036B47414764840 0101000020E61000000000000000E040408036B47414764840
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000000000000000E040408036B47414764840 0101000020E61000000000000000E040408036B47414764840
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204');
cdb_geocode_postalcode_polygon cdb_geocode_postalcode_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040 0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain');
cdb_geocode_postalcode_polygon cdb_geocode_postalcode_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040 0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
@@ -76,7 +76,7 @@ DELETE FROM admin0_synonyms;
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -87,7 +87,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -98,7 +98,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -109,7 +109,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -120,7 +120,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -131,7 +131,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -142,7 +142,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -153,7 +153,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
cdb_geocode_ipaddress_point cdb_geocode_ipaddress_point
----------------------------- -----------------------------
@@ -9,7 +9,7 @@ SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgnam
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
cdb_geocode_ipaddress_point cdb_geocode_ipaddress_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000003333333333334440AE47E17A14AE0D40 0101000020E61000003333333333334440AE47E17A14AE0D40
@@ -19,7 +19,7 @@ SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgnam
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_ipaddress_point' AND proname = 'cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -30,7 +30,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_ipaddress_point' AND proname = '_cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -1,5 +1,5 @@
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api;
REVOKE USAGE ON SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE USAGE ON SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE USAGE ON SCHEMA public FROM geocoder_api; REVOKE USAGE ON SCHEMA public FROM geocoder_api;
REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api; REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api;
@@ -6,7 +6,7 @@ CREATE EXTENSION cartodb;
CREATE EXTENSION cdb_geocoder; CREATE EXTENSION cdb_geocoder;
-- Install the extension -- Install the extension
CREATE EXTENSION cdb_geocoder_server; CREATE EXTENSION cdb_dataservices_server;
-- Mock the redis server connection to point to this very test db -- Mock the redis server connection to point to this very test db
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
@@ -2,6 +2,6 @@
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_street_point' AND proname = 'cdb_geocode_street_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text');
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
-- Insert some dummy synonym -- Insert some dummy synonym
INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP'); INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP');
@@ -14,19 +14,19 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
-- Check for admin0 signatures -- Check for admin0 signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin0_polygon' AND proname = 'cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin0_polygon' AND proname = '_cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
@@ -1,7 +1,7 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
-- Insert dummy data into country decoder table -- Insert dummy data into country decoder table
INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA'); INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA');
@@ -15,34 +15,34 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
-- Check for admin1 signatures -- Check for admin1 signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
@@ -1,8 +1,8 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
-- Insert dummy data into points table -- Insert dummy data into points table
INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText( INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText(
@@ -21,52 +21,52 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
-- This should return the point inserted above -- This should return the point inserted above
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain');
-- Check for namedplaces signatures -- Check for namedplaces signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
@@ -7,7 +7,7 @@ DELETE FROM admin0_synonyms;
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES ( INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES (
@@ -44,13 +44,13 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain');
-- Clean dbs -- Clean dbs
DELETE FROM global_postal_code_points; DELETE FROM global_postal_code_points;
@@ -63,55 +63,55 @@ DELETE FROM admin0_synonyms;
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
@@ -1,24 +1,24 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
-- Check for namedplaces signatures (point and polygon) -- Check for namedplaces signatures (point and polygon)
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_ipaddress_point' AND proname = 'cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_ipaddress_point' AND proname = '_cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
@@ -1,5 +1,5 @@
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api;
REVOKE USAGE ON SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE USAGE ON SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE USAGE ON SCHEMA public FROM geocoder_api; REVOKE USAGE ON SCHEMA public FROM geocoder_api;
REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api; REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api;
@@ -5,7 +5,7 @@ CREATE EXTENSION plpythonu;
CREATE EXTENSION cartodb; CREATE EXTENSION cartodb;
CREATE EXTENSION cdb_geocoder; CREATE EXTENSION cdb_geocoder;
-- Install the extension -- Install the extension
CREATE EXTENSION cdb_geocoder_server; CREATE EXTENSION cdb_dataservices_server;
-- Mock the redis server connection to point to this very test db -- Mock the redis server connection to point to this very test db
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
cdb_conf_setconf cdb_conf_setconf
@@ -2,7 +2,7 @@
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_street_point_v2' AND proname = 'cdb_geocode_street_point_v2'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text');
exists exists
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
cdb_geocode_admin0_polygon cdb_geocode_admin0_polygon
---------------------------- ----------------------------
@@ -16,7 +16,7 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
-71.1031880899493 42.3152774590236))',4326) -71.1031880899493 42.3152774590236))',4326)
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
cdb_geocode_admin0_polygon cdb_geocode_admin0_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
@@ -26,7 +26,7 @@ SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin0_polygon' AND proname = 'cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -37,7 +37,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin0_polygon' AND proname = '_cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -1,12 +1,12 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
---------------------------- ----------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
---------------------------- ----------------------------
@@ -22,13 +22,13 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
-71.1031880899493 42.3152774590236))',4326) -71.1031880899493 42.3152774590236))',4326)
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
cdb_geocode_admin1_polygon cdb_geocode_admin1_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------
0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540
@@ -38,7 +38,7 @@ SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -49,7 +49,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -60,7 +60,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -71,7 +71,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -1,18 +1,18 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
------------------------------ ------------------------------
@@ -31,37 +31,37 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
-- Insert dummy data into admin1 decoder table -- Insert dummy data into admin1 decoder table
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
-- This should return the point inserted above -- This should return the point inserted above
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain');
cdb_geocode_namedplace_point cdb_geocode_namedplace_point
---------------------------------------------------- ----------------------------------------------------
0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340
@@ -71,7 +71,7 @@ SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgna
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -82,7 +82,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -93,7 +93,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -104,7 +104,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -115,7 +115,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -126,7 +126,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -6,7 +6,7 @@ DELETE FROM available_services;
DELETE FROM admin0_synonyms; DELETE FROM admin0_synonyms;
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
------------------------------ ------------------------------
@@ -42,25 +42,25 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
3 3
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000000000000000E040408036B47414764840 0101000020E61000000000000000E040408036B47414764840
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain');
cdb_geocode_postalcode_point cdb_geocode_postalcode_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000000000000000E040408036B47414764840 0101000020E61000000000000000E040408036B47414764840
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204');
cdb_geocode_postalcode_polygon cdb_geocode_postalcode_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040 0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
(1 row) (1 row)
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain');
cdb_geocode_postalcode_polygon cdb_geocode_postalcode_polygon
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040 0106000020E610000001000000010300000001000000040000000000000000E000C01F383D7839B740400000000000E000C0AA3C0EDE220F3B4000000000004812404FB7FCCD04893D400000000000E000C01F383D7839B74040
@@ -76,7 +76,7 @@ DELETE FROM admin0_synonyms;
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -87,7 +87,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -98,7 +98,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -109,7 +109,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
exists exists
@@ -120,7 +120,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -131,7 +131,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -142,7 +142,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -153,7 +153,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
exists exists
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
cdb_geocode_ipaddress_point cdb_geocode_ipaddress_point
----------------------------- -----------------------------
@@ -9,7 +9,7 @@ SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgnam
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
cdb_geocode_ipaddress_point cdb_geocode_ipaddress_point
---------------------------------------------------- ----------------------------------------------------
0101000020E61000003333333333334440AE47E17A14AE0D40 0101000020E61000003333333333334440AE47E17A14AE0D40
@@ -19,7 +19,7 @@ SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgnam
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_ipaddress_point' AND proname = 'cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
exists exists
@@ -30,7 +30,7 @@ SELECT exists(SELECT *
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_ipaddress_point' AND proname = '_cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
exists exists
@@ -1,5 +1,5 @@
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api;
REVOKE USAGE ON SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE USAGE ON SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE USAGE ON SCHEMA public FROM geocoder_api; REVOKE USAGE ON SCHEMA public FROM geocoder_api;
REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api; REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api;
@@ -6,7 +6,7 @@ CREATE EXTENSION cartodb;
CREATE EXTENSION cdb_geocoder; CREATE EXTENSION cdb_geocoder;
-- Install the extension -- Install the extension
CREATE EXTENSION cdb_geocoder_server; CREATE EXTENSION cdb_dataservices_server;
-- Mock the redis server connection to point to this very test db -- Mock the redis server connection to point to this very test db
SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); SELECT cartodb.cdb_conf_setconf('redis_conf', '{"sentinel_host": "localhost", "sentinel_port": 26739, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
@@ -2,6 +2,6 @@
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_street_point_v2' AND proname = 'cdb_geocode_street_point_v2'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text, text, text');
@@ -1,6 +1,6 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
-- Insert some dummy synonym -- Insert some dummy synonym
INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP'); INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP');
@@ -14,19 +14,19 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText(
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_admin0_polygon('test_user', 'test_orgname', 'Spain');
-- Check for admin0 signatures -- Check for admin0 signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin0_polygon' AND proname = 'cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin0_polygon' AND proname = '_cdb_geocode_admin0_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
@@ -1,7 +1,7 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
-- Insert dummy data into country decoder table -- Insert dummy data into country decoder table
INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA'); INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA');
@@ -15,34 +15,34 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California');
SELECT cdb_geocoder_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States'); SELECT cdb_dataservices_server.cdb_geocode_admin1_polygon('test_user', 'test_orgname', 'California', 'United States');
-- Check for admin1 signatures -- Check for admin1 signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_admin1_polygon' AND proname = 'cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_admin1_polygon' AND proname = '_cdb_geocode_admin1_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
@@ -1,8 +1,8 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
-- Insert dummy data into points table -- Insert dummy data into points table
INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText( INSERT INTO global_cities_points_limited (geoname_id, name, iso2, admin1, admin2, population, lowername, the_geom) VALUES (3128760, 'Elche', 'ES', 'Valencia', 'AL', 34534, 'elche', ST_GeomFromText(
@@ -21,52 +21,52 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES');
INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES');
-- This should return the point inserted above -- This should return the point inserted above
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elx', 'Valencia', 'Spain');
SELECT cdb_geocoder_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain'); SELECT cdb_dataservices_server.cdb_geocode_namedplace_point('test_user', 'test_orgname', 'Elche', 'valencia', 'Spain');
-- Check for namedplaces signatures -- Check for namedplaces signatures
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_namedplace_point' AND proname = 'cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_namedplace_point' AND proname = '_cdb_geocode_namedplace_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
@@ -7,7 +7,7 @@ DELETE FROM admin0_synonyms;
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES ( INSERT INTO global_postal_code_points (the_geom, iso3, postal_code, postal_code_num) VALUES (
@@ -44,13 +44,13 @@ INSERT INTO admin0_synonyms (adm0_a3, name, name_, rank) VALUES (
); );
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_point('test_user', 'test_org', '03204', 'spain');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204');
SELECT cdb_geocoder_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain'); SELECT cdb_dataservices_server.cdb_geocode_postalcode_polygon('test_user', 'test_org', '03204', 'spain');
-- Clean dbs -- Clean dbs
DELETE FROM global_postal_code_points; DELETE FROM global_postal_code_points;
@@ -63,55 +63,55 @@ DELETE FROM admin0_synonyms;
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_point' AND proname = 'cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_postalcode_polygon' AND proname = 'cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_point' AND proname = '_cdb_geocode_postalcode_point'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_postalcode_polygon' AND proname = '_cdb_geocode_postalcode_polygon'
AND oidvectortypes(p.proargtypes) = 'text, text'); AND oidvectortypes(p.proargtypes) = 'text, text');
@@ -1,24 +1,24 @@
-- Check that the public function is callable, even with no data -- Check that the public function is callable, even with no data
-- It should return NULL -- It should return NULL
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
-- Insert dummy data into ip_address_locations -- Insert dummy data into ip_address_locations
INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); INSERT INTO ip_address_locations VALUES ('::ffff:0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326)));
-- This should return the polygon inserted above -- This should return the polygon inserted above
SELECT cdb_geocoder_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0'); SELECT cdb_dataservices_server.cdb_geocode_ipaddress_point('test_user', 'test_orgname', '0.0.0.0');
-- Check for namedplaces signatures (point and polygon) -- Check for namedplaces signatures (point and polygon)
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = 'cdb_geocode_ipaddress_point' AND proname = 'cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text, text, text'); AND oidvectortypes(p.proargtypes) = 'text, text, text');
SELECT exists(SELECT * SELECT exists(SELECT *
FROM pg_proc p FROM pg_proc p
INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid) INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
WHERE ns.nspname = 'cdb_geocoder_server' WHERE ns.nspname = 'cdb_dataservices_server'
AND proname = '_cdb_geocode_ipaddress_point' AND proname = '_cdb_geocode_ipaddress_point'
AND oidvectortypes(p.proargtypes) = 'text'); AND oidvectortypes(p.proargtypes) = 'text');
@@ -1,5 +1,5 @@
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api; REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM geocoder_api;
REVOKE USAGE ON SCHEMA cdb_geocoder_server FROM geocoder_api; REVOKE USAGE ON SCHEMA cdb_dataservices_server FROM geocoder_api;
REVOKE USAGE ON SCHEMA public FROM geocoder_api; REVOKE USAGE ON SCHEMA public FROM geocoder_api;
REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api; REVOKE SELECT ON ALL TABLES IN SCHEMA public FROM geocoder_api;

Some files were not shown because too many files have changed in this diff Show More