Geocoder server renamed to dataservices server extension
This commit is contained in:
+10
-10
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
+17
-17
@@ -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;
|
||||||
+44
-44
@@ -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;
|
||||||
+7
-7
@@ -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
|
||||||
+52
-52
@@ -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$$;
|
||||||
+7
-7
@@ -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
|
||||||
+44
-44
@@ -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()
|
||||||
+52
-52
@@ -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$$;
|
||||||
+22
-22
@@ -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')
|
||||||
+74
-74
@@ -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,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']
|
||||||
@@ -19,4 +19,4 @@ AS $$
|
|||||||
point = plpy.execute(plan, [coordinates[0], coordinates[1]], 1)[0]
|
point = plpy.execute(plan, [coordinates[0], coordinates[1]], 1)[0]
|
||||||
|
|
||||||
return point['st_setsrid']
|
return point['st_setsrid']
|
||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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_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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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.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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
+6
-6
@@ -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'],
|
||||||
+2
-2
@@ -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:
|
||||||
+7
-7
@@ -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;
|
||||||
+10
-10
@@ -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;
|
||||||
+15
-15
@@ -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;
|
||||||
+20
-20
@@ -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;
|
||||||
+3
-3
@@ -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
Reference in New Issue
Block a user