diff --git a/server/extension/expected/30_admin0_test.out b/server/extension/expected/30_admin0_test.out index 12ba5b6..4b455a5 100644 --- a/server/extension/expected/30_admin0_test.out +++ b/server/extension/expected/30_admin0_test.out @@ -1,8 +1,8 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_admin0_polygons(session_user, txid_current(), 'Spain'); - geocode_admin0_polygons -------------------------- +SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain'); + geocode_admin0_polygon +------------------------ (1 row) @@ -16,8 +16,8 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText( -71.1031880899493 42.3152774590236))',4326) ); -- This should return the polygon inserted above -SELECT cdb_geocoder_server.geocode_admin0_polygons(session_user, txid_current(), 'Spain'); - geocode_admin0_polygons +SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain'); + geocode_admin0_polygon -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 (1 row) diff --git a/server/extension/expected/40_admin1_test.out b/server/extension/expected/40_admin1_test.out index 1e5cdc6..7bb29c6 100644 --- a/server/extension/expected/40_admin1_test.out +++ b/server/extension/expected/40_admin1_test.out @@ -1,14 +1,14 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California'); - geocode_admin1_polygons -------------------------- +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California'); + geocode_admin1_polygon +------------------------ (1 row) -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California', 'United States'); - geocode_admin1_polygons -------------------------- +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States'); + geocode_admin1_polygon +------------------------ (1 row) @@ -22,14 +22,14 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c -71.1031880899493 42.3152774590236))',4326) ); -- This should return the polygon inserted above -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California'); - geocode_admin1_polygons +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California'); + geocode_admin1_polygon -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 (1 row) -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California', 'United States'); - geocode_admin1_polygons +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States'); + geocode_admin1_polygon -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0103000020E61000000100000004000000D0EA37A29AC651C00FD603035B284540FEFCFB379AC651C0C0503E9F5B284540FFDDDD4D96C651C033AC3B284F284540D0EA37A29AC651C00FD603035B284540 (1 row) diff --git a/server/extension/expected/50_namedplaces_test.out b/server/extension/expected/50_namedplaces_test.out index 2c1c49c..c8e6c15 100644 --- a/server/extension/expected/50_namedplaces_test.out +++ b/server/extension/expected/50_namedplaces_test.out @@ -1,8 +1,8 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx'); - geocode_namedplace --------------------- +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx'); + geocode_namedplace_point +-------------------------- (1 row) @@ -19,38 +19,38 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES'); -- Insert dummy data into admin1 decoder table INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); -- This should return the point inserted above -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx'); - geocode_namedplace +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx'); + geocode_namedplace_point ---------------------------------------------------- 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 (1 row) -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elche'); - geocode_namedplace +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche'); + geocode_namedplace_point ---------------------------------------------------- 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 (1 row) -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx', 'Spain'); - geocode_namedplace +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Spain'); + geocode_namedplace_point ---------------------------------------------------- 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 (1 row) -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elche', 'Spain'); - geocode_namedplace +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'Spain'); + geocode_namedplace_point ---------------------------------------------------- 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 (1 row) -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx', 'Valencia', 'Spain'); - geocode_namedplace +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Valencia', 'Spain'); + geocode_namedplace_point ---------------------------------------------------- 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 (1 row) -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elche', 'valencia', 'Spain'); - geocode_namedplace +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'valencia', 'Spain'); + geocode_namedplace_point ---------------------------------------------------- 0101000020E6100000637FD93D7958E63F2ECA6C9049A24340 (1 row) diff --git a/server/extension/sql/0.0.1/20_geocode_street.sql b/server/extension/sql/0.0.1/20_geocode_street.sql index 4bb7ebb..73ce23c 100644 --- a/server/extension/sql/0.0.1/20_geocode_street.sql +++ b/server/extension/sql/0.0.1/20_geocode_street.sql @@ -1,5 +1,5 @@ -- Geocodes a street address given a searchtext and a state and/or country -CREATE OR REPLACE FUNCTION cdb_geocoder_server.geocode_street(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) +CREATE OR REPLACE FUNCTION cdb_geocoder_server.geocode_street_point(searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) RETURNS Geometry AS $$ import json diff --git a/server/extension/sql/0.0.1/30_admin0.sql b/server/extension/sql/0.0.1/30_admin0.sql index c5e4ed6..bb1fc2f 100644 --- a/server/extension/sql/0.0.1/30_admin0.sql +++ b/server/extension/sql/0.0.1/30_admin0.sql @@ -1,6 +1,6 @@ -- Interface of the server extension -CREATE OR REPLACE FUNCTION cdb_geocoder_server.geocode_admin0_polygons(user_id name, tx_id bigint, country_name text) +CREATE OR REPLACE FUNCTION cdb_geocoder_server.geocode_admin0_polygon(user_id name, tx_id bigint, country_name text) RETURNS Geometry AS $$ plpy.debug('Entering geocode_admin0_polygons') plpy.debug('user_id = %s' % user_id) @@ -14,7 +14,7 @@ RETURNS Geometry AS $$ #--TODO: quota check #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html - plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_admin0_polygons($1) AS mypolygon", ["text"]) + plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_admin0_polygon($1) AS mypolygon", ["text"]) rv = plpy.execute(plan, [country_name], 1) plpy.debug('Returning from Returning from geocode_admin0_polygons') @@ -26,7 +26,7 @@ $$ LANGUAGE plpythonu; -- Implementation of the server extension -- Note: these functions depend on the cdb_geocoder extension -CREATE OR REPLACE FUNCTION cdb_geocoder_server._geocode_admin0_polygons(country_name text) +CREATE OR REPLACE FUNCTION cdb_geocoder_server._geocode_admin0_polygon(country_name text) RETURNS Geometry AS $$ DECLARE ret Geometry; diff --git a/server/extension/sql/0.0.1/40_admin1.sql b/server/extension/sql/0.0.1/40_admin1.sql index 8d29e26..f243eec 100644 --- a/server/extension/sql/0.0.1/40_admin1.sql +++ b/server/extension/sql/0.0.1/40_admin1.sql @@ -1,9 +1,9 @@ -- Interfacess of the server extension ----- geocode_admin1_polygons(admin1_name text) -CREATE OR REPLACE FUNCTION geocode_admin1_polygons(user_id name, tx_id bigint, admin1_name text) +---- geocode_admin1_polygon(admin1_name text) +CREATE OR REPLACE FUNCTION geocode_admin1_polygon(user_id name, tx_id bigint, admin1_name text) RETURNS Geometry AS $$ - plpy.debug('Entering geocode_admin1_polygons(admin1_name text)') + plpy.debug('Entering geocode_admin1_polygon(admin1_name text)') plpy.debug('user_id = %s' % user_id) #-- Access control @@ -15,17 +15,17 @@ RETURNS Geometry AS $$ #--TODO: quota check #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html - plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_admin1_polygons($1) AS mypolygon", ["text"]) + plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_admin1_polygon($1) AS mypolygon", ["text"]) rv = plpy.execute(plan, [admin1_name], 1) plpy.debug('Returning from Returning from geocode_admin1_polygons') return rv[0]["mypolygon"] $$ LANGUAGE plpythonu; ----- geocode_admin1_polygons(admin1_name text, country_name text) -CREATE OR REPLACE FUNCTION geocode_admin1_polygons(user_id name, tx_id bigint, admin1_name text, country_name text) +---- geocode_admin1_polygon(admin1_name text, country_name text) +CREATE OR REPLACE FUNCTION geocode_admin1_polygon(user_id name, tx_id bigint, admin1_name text, country_name text) RETURNS Geometry AS $$ - plpy.debug('Entering geocode_admin1_polygons(admin1_name text, country_name text)') + plpy.debug('Entering geocode_admin1_polygon(admin1_name text, country_name text)') plpy.debug('user_id = %s' % user_id) #-- Access control @@ -37,10 +37,10 @@ RETURNS Geometry AS $$ #--TODO: quota check #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html - plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_admin1_polygons($1, $2) AS mypolygon", ["text", "text"]) + plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_admin1_polygon($1, $2) AS mypolygon", ["text", "text"]) rv = plpy.execute(plan, [admin1_name, country_name], 1) - plpy.debug('Returning from Returning from geocode_admin1_polygons(admin1_name text, country_name text)') + plpy.debug('Returning from Returning from geocode_admin1_polygon(admin1_name text, country_name text)') return rv[0]["mypolygon"] $$ LANGUAGE plpythonu; @@ -49,8 +49,8 @@ $$ LANGUAGE plpythonu; -- Implementation of the server extension -- Note: these functions depend on the cdb_geocoder extension ----- geocode_admin1_polygons(admin1_name text) -CREATE OR REPLACE FUNCTION _geocode_admin1_polygons(admin1_name text) +---- geocode_admin1_polygon(admin1_name text) +CREATE OR REPLACE FUNCTION _geocode_admin1_polygon(admin1_name text) RETURNS Geometry AS $$ DECLARE ret Geometry; @@ -73,8 +73,8 @@ RETURNS Geometry AS $$ END $$ LANGUAGE plpgsql; ----- geocode_admin1_polygons(admin1_name text, country_name text) -CREATE OR REPLACE FUNCTION _geocode_admin1_polygons(admin1_name text, country_name text) +---- geocode_admin1_polygon(admin1_name text, country_name text) +CREATE OR REPLACE FUNCTION _geocode_admin1_polygon(admin1_name text, country_name text) RETURNS Geometry AS $$ DECLARE ret Geometry; diff --git a/server/extension/sql/0.0.1/50_namedplaces.sql b/server/extension/sql/0.0.1/50_namedplaces.sql index 124aeea..5a72421 100644 --- a/server/extension/sql/0.0.1/50_namedplaces.sql +++ b/server/extension/sql/0.0.1/50_namedplaces.sql @@ -1,9 +1,9 @@ -- Interfacess of the server extension ----- geocode_namedplace(city_name text) -CREATE OR REPLACE FUNCTION geocode_namedplace(user_id name, tx_id bigint, city_name text) +---- geocode_namedplace_point(city_name text) +CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, tx_id bigint, city_name text) RETURNS Geometry AS $$ - plpy.debug('Entering geocode_namedplace(city_name text)') + plpy.debug('Entering geocode_namedplace_point(city_name text)') plpy.debug('user_id = %s' % user_id) #-- Access control @@ -15,17 +15,17 @@ RETURNS Geometry AS $$ #--TODO: quota check #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html - plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_namedplace($1) AS mypoint", ["text"]) + plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_namedplace_point($1) AS mypoint", ["text"]) rv = plpy.execute(plan, [city_name], 1) plpy.debug('Returning from Returning from geocode_namedplace') return rv[0]["mypoint"] $$ LANGUAGE plpythonu; ----- geocode_namedplace(city_name text, country_name text) -CREATE OR REPLACE FUNCTION geocode_namedplace(user_id name, tx_id bigint, city_name text, country_name text) +---- geocode_namedplace_point(city_name text, country_name text) +CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, tx_id bigint, city_name text, country_name text) RETURNS Geometry AS $$ - plpy.debug('Entering geocode_namedplace(city_name text, country_name text)') + plpy.debug('Entering geocode_namedplace_point(city_name text, country_name text)') plpy.debug('user_id = %s' % user_id) #-- Access control @@ -37,17 +37,17 @@ RETURNS Geometry AS $$ #--TODO: quota check #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html - plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_namedplace($1, $2) AS mypoint", ["text", "text"]) + plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_namedplace_point($1, $2) AS mypoint", ["text", "text"]) rv = plpy.execute(plan, [city_name, country_name], 1) plpy.debug('Returning from Returning from geocode_namedplace') return rv[0]["mypoint"] $$ LANGUAGE plpythonu; ----- geocode_namedplace(city_name text, admin1_name text, country_name text) -CREATE OR REPLACE FUNCTION geocode_namedplace(user_id name, tx_id bigint, city_name text, admin1_name text, country_name text) +---- geocode_namedplace_point(city_name text, admin1_name text, country_name text) +CREATE OR REPLACE FUNCTION geocode_namedplace_point(user_id name, tx_id bigint, city_name text, admin1_name text, country_name text) RETURNS Geometry AS $$ - plpy.debug('Entering geocode_namedplace(city_name text, admin1_name text, country_name text)') + plpy.debug('Entering geocode_namedplace_point(city_name text, admin1_name text, country_name text)') plpy.debug('user_id = %s' % user_id) #-- Access control @@ -59,7 +59,7 @@ RETURNS Geometry AS $$ #--TODO: quota check #-- Copied from the doc, see http://www.postgresql.org/docs/9.4/static/plpython-database.html - plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_namedplace($1, $2, $3) AS mypoint", ["text", "text", "text"]) + plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_namedplace_point($1, $2, $3) AS mypoint", ["text", "text", "text"]) rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) plpy.debug('Returning from Returning from geocode_namedplace') @@ -71,8 +71,8 @@ $$ LANGUAGE plpythonu; -- Implementation of the server extension -- Note: these functions depend on the cdb_geocoder extension ----- geocode_namedplace(city_name text) -CREATE OR REPLACE FUNCTION _geocode_namedplace(city_name text) +---- geocode_namedplace_point(city_name text) +CREATE OR REPLACE FUNCTION _geocode_namedplace_point(city_name text) RETURNS Geometry AS $$ DECLARE ret Geometry; @@ -90,8 +90,8 @@ RETURNS Geometry AS $$ END $$ LANGUAGE plpgsql; ----- geocode_namedplace(city_name text, country_name text) -CREATE OR REPLACE FUNCTION _geocode_namedplace(city_name text, country_name text) +---- geocode_namedplace_point(city_name text, country_name text) +CREATE OR REPLACE FUNCTION _geocode_namedplace_point(city_name text, country_name text) RETURNS Geometry AS $$ DECLARE ret Geometry; @@ -110,8 +110,8 @@ RETURNS Geometry AS $$ END $$ LANGUAGE plpgsql; ----- geocode_namedplace(city_name text, admin1_name text, country_name text) -CREATE OR REPLACE FUNCTION _geocode_namedplace(city_name text, admin1_name text, country_name text) +---- geocode_namedplace_point(city_name text, admin1_name text, country_name text) +CREATE OR REPLACE FUNCTION _geocode_namedplace_point(city_name text, admin1_name text, country_name text) RETURNS Geometry AS $$ DECLARE ret Geometry; diff --git a/server/extension/sql/30_admin0_test.sql b/server/extension/sql/30_admin0_test.sql index 60428e9..5ab9248 100644 --- a/server/extension/sql/30_admin0_test.sql +++ b/server/extension/sql/30_admin0_test.sql @@ -1,6 +1,6 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_admin0_polygons(session_user, txid_current(), 'Spain'); +SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain'); -- Insert some dummy synonym INSERT INTO admin0_synonyms (name, adm0_a3) VALUES ('Spain', 'ESP'); @@ -14,4 +14,4 @@ INSERT INTO ne_admin0_v3 (adm0_a3, the_geom) VALUES('ESP', ST_GeomFromText( ); -- This should return the polygon inserted above -SELECT cdb_geocoder_server.geocode_admin0_polygons(session_user, txid_current(), 'Spain'); +SELECT cdb_geocoder_server.geocode_admin0_polygon(session_user, txid_current(), 'Spain'); diff --git a/server/extension/sql/40_admin1_test.sql b/server/extension/sql/40_admin1_test.sql index 1620766..f84d548 100644 --- a/server/extension/sql/40_admin1_test.sql +++ b/server/extension/sql/40_admin1_test.sql @@ -1,7 +1,7 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California'); -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California', 'United States'); +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California'); +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States'); -- Insert dummy data into country decoder table INSERT INTO country_decoder (synonyms, iso3) VALUES (Array['united states'], 'USA'); @@ -15,8 +15,8 @@ INSERT INTO global_province_polygons (synonyms, iso3, the_geom) VALUES (Array['c ); -- This should return the polygon inserted above -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California'); -SELECT cdb_geocoder_server.geocode_admin1_polygons(session_user, txid_current(), 'California', 'United States'); +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California'); +SELECT cdb_geocoder_server.geocode_admin1_polygon(session_user, txid_current(), 'California', 'United States'); diff --git a/server/extension/sql/50_namedplaces_test.sql b/server/extension/sql/50_namedplaces_test.sql index 7cbc541..503e192 100644 --- a/server/extension/sql/50_namedplaces_test.sql +++ b/server/extension/sql/50_namedplaces_test.sql @@ -1,6 +1,6 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx'); +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx'); -- 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( @@ -19,9 +19,9 @@ INSERT INTO country_decoder (synonyms, iso2) VALUES (Array['spain'], 'ES'); INSERT INTO admin1_decoder (admin1, synonyms, iso2) VALUES ('Valencia', Array['valencia', 'Valencia'], 'ES'); -- This should return the point inserted above -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx'); -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elche'); -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx', 'Spain'); -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elche', 'Spain'); -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elx', 'Valencia', 'Spain'); -SELECT cdb_geocoder_server.geocode_namedplace(session_user, txid_current(), 'Elche', 'valencia', 'Spain'); +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx'); +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche'); +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Spain'); +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'Spain'); +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elx', 'Valencia', 'Spain'); +SELECT cdb_geocoder_server.geocode_namedplace_point(session_user, txid_current(), 'Elche', 'valencia', 'Spain');