From 0297214c5319fe99b6eb23478d7f9fe58dd007f0 Mon Sep 17 00:00:00 2001 From: Guido Fioravantti Date: Fri, 6 Nov 2015 17:22:39 +0100 Subject: [PATCH] Initial cdb_geocoder_server commit --- server/Makefile | 26 ++++++++++++++++++++++++++ server/README.md | 2 -- server/cdb_geocoder_server--0.0.1.sql | 21 +++++++++++++++++++++ server/cdb_geocoder_server.control | 6 ++++++ server/expected/00_install_test.out | 14 ++++++++++++++ server/expected/10_helper_test.out | 14 ++++++++++++++ server/sql/0.0.1/00_header.sql | 2 ++ server/sql/0.0.1/10_helper.sql | 19 +++++++++++++++++++ server/sql/00_install_test.sql | 16 ++++++++++++++++ server/sql/10_helper_test.sql | 5 +++++ 10 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 server/cdb_geocoder_server--0.0.1.sql create mode 100644 server/expected/00_install_test.out create mode 100644 server/expected/10_helper_test.out create mode 100644 server/sql/0.0.1/00_header.sql create mode 100644 server/sql/0.0.1/10_helper.sql create mode 100644 server/sql/00_install_test.sql create mode 100644 server/sql/10_helper_test.sql diff --git a/server/Makefile b/server/Makefile index e69de29..b7f4973 100644 --- a/server/Makefile +++ b/server/Makefile @@ -0,0 +1,26 @@ +# 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. +EXTENSION = cdb_geocoder_server +EXTVERSION = $(shell grep default_version $(EXTENSION).control | sed -e "s/default_version[[:space:]]*=[[:space:]]*'\([^']*\)'/\1/") + +DATA = $(EXTENSION)--$(EXTVERSION).sql + +REGRESS = $(notdir $(basename $(wildcard sql/*test.sql))) + +# postgres build stuff +PG_CONFIG = pg_config +PGXS := $(shell $(PG_CONFIG) --pgxs) +include $(PGXS) + + +SOURCES_DATA = $(wildcard sql/$(EXTVERSION)/*.sql) + +$(DATA): $(SOURCES_DATA) + rm -f $@ + cat $(SOURCES_DATA) >> $@ + +all: $(DATA) + +# Only meant for development time, do not use once a version is released +devclean: + rm -f $(DATA) diff --git a/server/README.md b/server/README.md index 72af5d8..e69de29 100644 --- a/server/README.md +++ b/server/README.md @@ -1,2 +0,0 @@ -# Geocoder API Server -The CartoDB Geocoder SQL API server diff --git a/server/cdb_geocoder_server--0.0.1.sql b/server/cdb_geocoder_server--0.0.1.sql new file mode 100644 index 0000000..d3f297a --- /dev/null +++ b/server/cdb_geocoder_server--0.0.1.sql @@ -0,0 +1,21 @@ +-- Complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit +-- Check if a given host is up by performing a ping -c 1 call. +CREATE OR REPLACE FUNCTION check_host(hostname TEXT) + RETURNS BOOLEAN +AS $$ + import os + + response = os.system("ping -c 1 " + hostname) + + return False if response else True +$$ LANGUAGE plpythonu VOLATILE; + +-- Returns current pwd +CREATE OR REPLACE FUNCTION pwd() + RETURNS TEXT +AS $$ + import os + + return os.getcwd() +$$ LANGUAGE plpythonu VOLATILE; diff --git a/server/cdb_geocoder_server.control b/server/cdb_geocoder_server.control index e69de29..b5fee44 100644 --- a/server/cdb_geocoder_server.control +++ b/server/cdb_geocoder_server.control @@ -0,0 +1,6 @@ +# cdb geocoder server extension +comment = 'CartoDB server geocoder extension' +default_version = '0.0.1' +relocatable = true +requires = cartodb +superuser = true diff --git a/server/expected/00_install_test.out b/server/expected/00_install_test.out new file mode 100644 index 0000000..17fb473 --- /dev/null +++ b/server/expected/00_install_test.out @@ -0,0 +1,14 @@ +-- Install dependencies +CREATE EXTENSION postgis; +CREATE EXTENSION schema_triggers; +CREATE EXTENSION plpythonu; +CREATE EXTENSION cartodb; +-- Install the extension +CREATE EXTENSION cdb_geocoder_server; +-- Mock the varnish invalidation function +CREATE OR REPLACE FUNCTION public.cdb_invalidate_varnish(table_name text) RETURNS void AS $$ +BEGIN + RETURN; +END +$$ +LANGUAGE plpgsql; diff --git a/server/expected/10_helper_test.out b/server/expected/10_helper_test.out new file mode 100644 index 0000000..5af9f10 --- /dev/null +++ b/server/expected/10_helper_test.out @@ -0,0 +1,14 @@ +-- Check that check_host is working +select check_host('cartodb.com'); + check_host +------------ + t +(1 row) + +-- Check that check_pwd is working +select pwd(); + pwd +------------------------------ + /var/lib/postgresql/9.3/main +(1 row) + diff --git a/server/sql/0.0.1/00_header.sql b/server/sql/0.0.1/00_header.sql new file mode 100644 index 0000000..949e06e --- /dev/null +++ b/server/sql/0.0.1/00_header.sql @@ -0,0 +1,2 @@ +-- Complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION cdb_geocoder_server" to load this file. \quit diff --git a/server/sql/0.0.1/10_helper.sql b/server/sql/0.0.1/10_helper.sql new file mode 100644 index 0000000..86d9b79 --- /dev/null +++ b/server/sql/0.0.1/10_helper.sql @@ -0,0 +1,19 @@ +-- Check if a given host is up by performing a ping -c 1 call. +CREATE OR REPLACE FUNCTION check_host(hostname TEXT) + RETURNS BOOLEAN +AS $$ + import os + + response = os.system("ping -c 1 " + hostname) + + return False if response else True +$$ LANGUAGE plpythonu VOLATILE; + +-- Returns current pwd +CREATE OR REPLACE FUNCTION pwd() + RETURNS TEXT +AS $$ + import os + + return os.getcwd() +$$ LANGUAGE plpythonu VOLATILE; diff --git a/server/sql/00_install_test.sql b/server/sql/00_install_test.sql new file mode 100644 index 0000000..4a2e8b3 --- /dev/null +++ b/server/sql/00_install_test.sql @@ -0,0 +1,16 @@ +-- Install dependencies +CREATE EXTENSION postgis; +CREATE EXTENSION schema_triggers; +CREATE EXTENSION plpythonu; +CREATE EXTENSION cartodb; + +-- Install the extension +CREATE EXTENSION cdb_geocoder_server; + +-- Mock the varnish invalidation function +CREATE OR REPLACE FUNCTION public.cdb_invalidate_varnish(table_name text) RETURNS void AS $$ +BEGIN + RETURN; +END +$$ +LANGUAGE plpgsql; diff --git a/server/sql/10_helper_test.sql b/server/sql/10_helper_test.sql new file mode 100644 index 0000000..e9586c3 --- /dev/null +++ b/server/sql/10_helper_test.sql @@ -0,0 +1,5 @@ +-- Check that check_host is working +select check_host('cartodb.com'); + +-- Check that check_pwd is working +select pwd();