From d4bc69cd3c773e0ef6435b66b59ef837f7fe642c Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Fri, 8 Nov 2019 19:49:16 +0100 Subject: [PATCH] Return postgis version in diagnostics info (WIP) --- .../CDB_FederatedServerDiagnostics.sql | 19 +++++++++++++++++-- test/CDB_FederatedServerDiagnostics.sql | 4 ++++ test/CDB_FederatedServerDiagnostics_expect | 2 ++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/scripts-available/CDB_FederatedServerDiagnostics.sql b/scripts-available/CDB_FederatedServerDiagnostics.sql index e55f90f..edc0851 100644 --- a/scripts-available/CDB_FederatedServerDiagnostics.sql +++ b/scripts-available/CDB_FederatedServerDiagnostics.sql @@ -41,6 +41,17 @@ $$ LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE; +CREATE OR REPLACE FUNCTION @extschema@.__CDB_FS_Foreign_PostGIS_Version_PG(server_internal name) +RETURNS text +AS $$ +BEGIN + -- TODO implement + RETURN '4.0'; +END +$$ +LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE; + + -- -- Collect and return diagnostics info from a remote PG into a jsonb -- @@ -48,9 +59,13 @@ CREATE OR REPLACE FUNCTION @extschema@.__CDB_FS_Server_Diagnostics_PG(server_int RETURNS jsonb AS $$ DECLARE - remote_server_version text := @extschema@.__CDB_FS_Foreign_Server_Version_PG(server_internal); + remote_server_version text := @extschema@.__CDB_FS_Foreign_Server_Version_PG(server_internal); + remote_postgis_version text := @extschema@.__CDB_FS_Foreign_PostGIS_Version_PG(server_internal); BEGIN - RETURN jsonb_build_object('server_version', remote_server_version); + RETURN jsonb_build_object( + 'server_version', remote_server_version, + 'postgis_version', remote_postgis_version + ); END $$ LANGUAGE PLPGSQL VOLATILE PARALLEL UNSAFE; diff --git a/test/CDB_FederatedServerDiagnostics.sql b/test/CDB_FederatedServerDiagnostics.sql index a94776d..864f012 100644 --- a/test/CDB_FederatedServerDiagnostics.sql +++ b/test/CDB_FederatedServerDiagnostics.sql @@ -38,6 +38,10 @@ SELECT '1.2', pg_typeof(cartodb.CDB_Federated_Server_Diagnostics(server => 'loop SELECT '1.3', cartodb.CDB_Federated_Server_Diagnostics(server => 'loopback') @> format('{"server_version": "%s"}', setting)::jsonb FROM pg_settings WHERE name = 'server_version'; +\echo '%% It returns the postgis version' +SELECT '1.4', cartodb.CDB_Federated_Server_Diagnostics(server => 'loopback') @> format('{"postgis_version": "%s"}', extversion)::jsonb + FROM pg_extension WHERE extname = 'postgis'; + -- =================================================================== -- Cleanup diff --git a/test/CDB_FederatedServerDiagnostics_expect b/test/CDB_FederatedServerDiagnostics_expect index 9ec5b49..1c58eda 100644 --- a/test/CDB_FederatedServerDiagnostics_expect +++ b/test/CDB_FederatedServerDiagnostics_expect @@ -5,4 +5,6 @@ ERROR: Server "doesNotExist" does not exist 1.2|jsonb %% It returns the server version 1.3|t +%% It returns the postgis version +1.4|t D1|