From a92d7d7d37473502aab80ede8c3c3da2314aab0c Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Wed, 4 Jun 2014 10:28:48 +0200 Subject: [PATCH] Add cdb_extension_reload() utility function --- Makefile | 1 + NEWS | 4 ++++ README.md | 6 ++++++ scripts-available/CDB_ExtensionUtils.sql | 13 +++++++++++++ 4 files changed, 24 insertions(+) create mode 100644 scripts-available/CDB_ExtensionUtils.sql diff --git a/Makefile b/Makefile index 4ef7f6d..bd465bc 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,7 @@ CDBSCRIPTS = \ scripts-available/CDB_SearchPath.sql \ scripts-available/CDB_DDLTriggers.sql \ scripts-available/CDB_ExtensionPost.sql \ + scripts-available/CDB_ExtensionUtils.sql \ $(END) UPGRADABLE = \ diff --git a/NEWS b/NEWS index 5c35f67..5ac9b9b 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,10 @@ Enhancements: - Include revision info in cdb_version() output (#34) +New features: + + - Add a cdb_extension_reload() function + 0.1.0 - 2014-05-23 ------------------ diff --git a/README.md b/README.md index 1d16e06..f1fd88f 100644 --- a/README.md +++ b/README.md @@ -95,3 +95,9 @@ to "V". Example to upgrade a 0.2.0dev version: ALTER EXTENSION cartodb UPDATE TO '0.2.0devnext'; ALTER EXTENSION cartodb UPDATE TO '0.2.0dev'; ``` + +Starting with 0.2.0, the in-place reload can be done with an ad-hoc function: + +```sql +SELECT cartodb.cdb_extension_reload(); +``` diff --git a/scripts-available/CDB_ExtensionUtils.sql b/scripts-available/CDB_ExtensionUtils.sql new file mode 100644 index 0000000..853bd95 --- /dev/null +++ b/scripts-available/CDB_ExtensionUtils.sql @@ -0,0 +1,13 @@ +CREATE OR REPLACE FUNCTION cartodb.cdb_extension_reload() RETURNS void +AS $$ +DECLARE + ver TEXT; + sql TEXT; +BEGIN + ver := split_part(cartodb.cdb_version(), ' ', 1); + sql := 'ALTER EXTENSION cartodb UPDATE TO ''' || ver || 'next'''; + EXECUTE sql; + sql := 'ALTER EXTENSION cartodb UPDATE TO ''' || ver || ''''; + EXECUTE sql; +END; +$$ language 'plpgsql' VOLATILE;