diff --git a/server/extension/cdb_dataservices_server--0.13.3--0.13.3.1.sql b/server/extension/cdb_dataservices_server--0.13.3--0.13.3.1.sql new file mode 100644 index 0000000..624f268 --- /dev/null +++ b/server/extension/cdb_dataservices_server--0.13.3--0.13.3.1.sql @@ -0,0 +1,49 @@ +--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES +-- Complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "ALTER EXTENSION cdb_dataservices_server UPDATE TO '0.13.3.1'" to load this file. \quit + +-- HERE goes your code to upgrade/downgrade +CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_isodistance(username TEXT, orgname TEXT, source geometry(Geometry, 4326), mode TEXT, range integer[], options text[] DEFAULT array[]::text[]) +RETURNS SETOF cdb_dataservices_server.isoline AS $$ + plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username)) + redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] + plpy.execute("SELECT cdb_dataservices_server._get_isolines_routing_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) + user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)] + + if user_isolines_config.google_services_user: + plpy.error('This service is not available for google service users.') + + if user_isolines_config.heremaps_provider: + plpy.debug('Requested isolines provider is heremaps') + here_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_here_isodistance($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(here_plan, [username, orgname, source, mode, range, options]) + elif user_isolines_config.mapzen_provider: + plpy.debug('Requested isolines provider is mapzen') + mapzen_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_mapzen_isodistance($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options]) + else: + plpy.error('Requested isolines provider is not available') +$$ LANGUAGE plpythonu; + + +CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_isochrone(username TEXT, orgname TEXT, source geometry(Geometry, 4326), mode TEXT, range integer[], options text[] DEFAULT array[]::text[]) +RETURNS SETOF cdb_dataservices_server.isoline AS $$ + plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username)) + redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] + plpy.execute("SELECT cdb_dataservices_server._get_isolines_routing_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) + user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)] + + if user_isolines_config.google_services_user: + plpy.error('This service is not available for google service users.') + + if user_isolines_config.heremaps_provider: + plpy.debug('Requested isolines provider is heremaps') + here_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_here_isochrone($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(here_plan, [username, orgname, source, mode, range, options]) + elif user_isolines_config.mapzen_provider: + plpy.debug('Requested isolines provider is mapzen') + mapzen_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_mapzen_isochrone($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options]) + else: + plpy.error('Requested isolines provider is not available') +$$ LANGUAGE plpythonu; diff --git a/server/extension/cdb_dataservices_server--0.13.3.1--0.13.3.sql b/server/extension/cdb_dataservices_server--0.13.3.1--0.13.3.sql new file mode 100644 index 0000000..4e1060a --- /dev/null +++ b/server/extension/cdb_dataservices_server--0.13.3.1--0.13.3.sql @@ -0,0 +1,49 @@ +--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES +-- Complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "ALTER EXTENSION cdb_dataservices_server UPDATE TO '0.13.3'" to load this file. \quit + +-- HERE goes your code to upgrade/downgrade +CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_isodistance(username TEXT, orgname TEXT, source geometry(Geometry, 4326), mode TEXT, range integer[], options text[] DEFAULT array[]::text[]) +RETURNS SETOF cdb_dataservices_server.isoline AS $$ + plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username)) + redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] + plpy.execute("SELECT cdb_dataservices_server._get_isolines_routing_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) + user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)] + + if user_isolines_config.google_services_user: + plpy.error('This service is not available for google service users.') + + if user_isolines_config.heremaps_provider: + plpy.debug('Requested isolines provider is heremaps') + here_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_here_isodistance($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(here_plan, [username, orgname, source, mode, range, options], 1) + elif user_isolines_config.mapzen_provider: + plpy.debug('Requested isolines provider is mapzen') + mapzen_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_mapzen_isodistance($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options], 1) + else: + plpy.error('Requested isolines provider is not available') +$$ LANGUAGE plpythonu; + + +CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_isochrone(username TEXT, orgname TEXT, source geometry(Geometry, 4326), mode TEXT, range integer[], options text[] DEFAULT array[]::text[]) +RETURNS SETOF cdb_dataservices_server.isoline AS $$ + plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username)) + redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection'] + plpy.execute("SELECT cdb_dataservices_server._get_isolines_routing_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname))) + user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)] + + if user_isolines_config.google_services_user: + plpy.error('This service is not available for google service users.') + + if user_isolines_config.heremaps_provider: + plpy.debug('Requested isolines provider is heremaps') + here_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_here_isochrone($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(here_plan, [username, orgname, source, mode, range, options], 1) + elif user_isolines_config.mapzen_provider: + plpy.debug('Requested isolines provider is mapzen') + mapzen_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_mapzen_isochrone($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) + return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options], 1) + else: + plpy.error('Requested isolines provider is not available') +$$ LANGUAGE plpythonu; diff --git a/server/extension/cdb_dataservices_server.control b/server/extension/cdb_dataservices_server.control index d877823..cccdc99 100644 --- a/server/extension/cdb_dataservices_server.control +++ b/server/extension/cdb_dataservices_server.control @@ -1,5 +1,5 @@ comment = 'CartoDB dataservices server extension' -default_version = '0.13.3' +default_version = '0.13.3.1' requires = 'plpythonu, plproxy, postgis, cdb_geocoder' superuser = true schema = cdb_dataservices_server diff --git a/server/extension/cdb_dataservices_server--0.13.2--0.13.3.sql b/server/extension/old_versions/cdb_dataservices_server--0.13.2--0.13.3.sql similarity index 100% rename from server/extension/cdb_dataservices_server--0.13.2--0.13.3.sql rename to server/extension/old_versions/cdb_dataservices_server--0.13.2--0.13.3.sql diff --git a/server/extension/cdb_dataservices_server--0.13.3--0.13.2.sql b/server/extension/old_versions/cdb_dataservices_server--0.13.3--0.13.2.sql similarity index 100% rename from server/extension/cdb_dataservices_server--0.13.3--0.13.2.sql rename to server/extension/old_versions/cdb_dataservices_server--0.13.3--0.13.2.sql diff --git a/server/extension/cdb_dataservices_server--0.13.3.sql b/server/extension/old_versions/cdb_dataservices_server--0.13.3.sql similarity index 100% rename from server/extension/cdb_dataservices_server--0.13.3.sql rename to server/extension/old_versions/cdb_dataservices_server--0.13.3.sql diff --git a/server/extension/sql/85_isodistance.sql b/server/extension/sql/85_isodistance.sql index f82adef..a87a9f7 100644 --- a/server/extension/sql/85_isodistance.sql +++ b/server/extension/sql/85_isodistance.sql @@ -11,11 +11,11 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$ if user_isolines_config.heremaps_provider: plpy.debug('Requested isolines provider is heremaps') here_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_here_isodistance($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) - return plpy.execute(here_plan, [username, orgname, source, mode, range, options], 1) + return plpy.execute(here_plan, [username, orgname, source, mode, range, options]) elif user_isolines_config.mapzen_provider: plpy.debug('Requested isolines provider is mapzen') mapzen_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_mapzen_isodistance($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) - return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options], 1) + return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options]) else: plpy.error('Requested isolines provider is not available') $$ LANGUAGE plpythonu; diff --git a/server/extension/sql/90_isochrone.sql b/server/extension/sql/90_isochrone.sql index c9e5307..9aee838 100644 --- a/server/extension/sql/90_isochrone.sql +++ b/server/extension/sql/90_isochrone.sql @@ -11,11 +11,11 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$ if user_isolines_config.heremaps_provider: plpy.debug('Requested isolines provider is heremaps') here_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_here_isochrone($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) - return plpy.execute(here_plan, [username, orgname, source, mode, range, options], 1) + return plpy.execute(here_plan, [username, orgname, source, mode, range, options]) elif user_isolines_config.mapzen_provider: plpy.debug('Requested isolines provider is mapzen') mapzen_plan = plpy.prepare("SELECT * FROM cdb_dataservices_server.cdb_mapzen_isochrone($1, $2, $3, $4, $5, $6) as isoline; ", ["text", "text", "geometry(geometry, 4326)", "text", "integer[]", "text[]"]) - return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options], 1) + return plpy.execute(mapzen_plan, [username, orgname, source, mode, range, options]) else: plpy.error('Requested isolines provider is not available') $$ LANGUAGE plpythonu;