From 66fd33da374d12bebddc89a11db0b3d307b7f7fd Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Wed, 11 Nov 2015 15:43:11 +0100 Subject: [PATCH] Fixes param type for geocode_ip --- server/extension/expected/90_geocode_ip_test.out | 4 ++-- server/extension/sql/0.0.1/90_geocode_ip.sql | 8 ++++---- server/extension/sql/90_geocode_ip_test.sql | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/extension/expected/90_geocode_ip_test.out b/server/extension/expected/90_geocode_ip_test.out index 1f81910..db16fa5 100644 --- a/server/extension/expected/90_geocode_ip_test.out +++ b/server/extension/expected/90_geocode_ip_test.out @@ -1,6 +1,6 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0'::inet); +SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0'); geocode_ip_point ------------------ @@ -9,7 +9,7 @@ SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0 -- Insert dummy data into ip_address_locations INSERT INTO ip_address_locations VALUES ('0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); -- This should return the polygon inserted above -SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0'::inet); +SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0'); geocode_ip_point ---------------------------------------------------- 0101000020E61000003333333333334440AE47E17A14AE0D40 diff --git a/server/extension/sql/0.0.1/90_geocode_ip.sql b/server/extension/sql/0.0.1/90_geocode_ip.sql index 1692a1a..9e41ac2 100644 --- a/server/extension/sql/0.0.1/90_geocode_ip.sql +++ b/server/extension/sql/0.0.1/90_geocode_ip.sql @@ -1,6 +1,6 @@ -- Interface of the server extension -CREATE OR REPLACE FUNCTION geocode_ip_point(user_id NAME, tx_id BIGINT, ip INET) +CREATE OR REPLACE FUNCTION geocode_ip_point(user_id NAME, tx_id BIGINT, ip TEXT) RETURNS Geometry AS $$ plpy.debug('Entering _geocode_ip_point') 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_ip_point($1) AS point", ["INET"]) + plan = plpy.prepare("SELECT cdb_geocoder_server._geocode_ip_point($1) AS point", ["TEXT"]) rv = plpy.execute(plan, [ip], 1) plpy.debug('Returning from _geocode_ip_point') @@ -26,14 +26,14 @@ $$ LANGUAGE plpythonu; -- Implementation of the server extension -- Note: these functions depend on the cdb_geocoder extension -CREATE OR REPLACE FUNCTION _geocode_ip_point(ip INET) +CREATE OR REPLACE FUNCTION _geocode_ip_point(ip TEXT) RETURNS Geometry AS $$ DECLARE ret Geometry; BEGIN SELECT ips.the_geom as geom INTO ret FROM public.ip_address_locations ips - WHERE ips.network_start_ip = ip; + WHERE ips.network_start_ip = ip::inet; RETURN ret; END diff --git a/server/extension/sql/90_geocode_ip_test.sql b/server/extension/sql/90_geocode_ip_test.sql index 337a1ae..63ff315 100644 --- a/server/extension/sql/90_geocode_ip_test.sql +++ b/server/extension/sql/90_geocode_ip_test.sql @@ -1,9 +1,9 @@ -- Check that the public function is callable, even with no data -- It should return NULL -SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0'::inet); +SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0'); -- Insert dummy data into ip_address_locations INSERT INTO ip_address_locations VALUES ('0.0.0.0'::inet, (ST_SetSRID(ST_MakePoint('40.40', '3.71'), 4326))); -- This should return the polygon inserted above -SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0'::inet); +SELECT cdb_geocoder_server.geocode_ip_point(session_user, txid_current(), '0.0.0.0');