From 6c57640901304f944cfe2b19651c6964362b3710 Mon Sep 17 00:00:00 2001 From: Kartones Date: Mon, 11 Aug 2014 15:26:13 +0200 Subject: [PATCH] CDB-3870 replaced priority of qmax inside checkquota --- NEWS | 7 +++++++ scripts-available/CDB_Quota.sql | 20 ++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index 61e601d..4a38534 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +0.3.5 (2014-08-11) +------------------ +Inverting priority of CDB_CheckQuota qmax so gies more priority to existing user quota function over parameter value. + +0.3.4 (2014-08-xx) +------------------ + 0.3.3 (2014-07-xx) ------------------ * Splitting of CartodbfyTable method in subfunctions to be able to call in fragments and evade timeouts on hot zones diff --git a/scripts-available/CDB_Quota.sql b/scripts-available/CDB_Quota.sql index fb718fd..70bd839 100644 --- a/scripts-available/CDB_Quota.sql +++ b/scripts-available/CDB_Quota.sql @@ -46,16 +46,20 @@ BEGIN ELSE schema_name := 'public'; END IF; - -- Hack to support old versions of CDB_CheckQuota with 2 params but without schema_name - IF TG_NARGS >= 2 AND TG_ARGV[1] <> '-1' THEN - qmax := TG_ARGV[1]; - ELSE + + -- By default try to use quota function, and if not present then rely on the one specified by params + BEGIN + EXECUTE FORMAT('SELECT %I._CDB_UserQuotaInBytes();', schema_name) INTO qmax; + EXCEPTION WHEN undefined_function THEN BEGIN - EXECUTE FORMAT('SELECT %I._CDB_UserQuotaInBytes();', schema_name) INTO qmax; - EXCEPTION WHEN undefined_function THEN - RAISE EXCEPTION 'Missing "%"._CDB_UserQuotaInBytes()', schema_name; + IF TG_NARGS >= 2 AND TG_ARGV[1] <> '-1' THEN + qmax := TG_ARGV[1]; + ELSE + RAISE EXCEPTION 'Missing "%"._CDB_UserQuotaInBytes()', schema_name; + END IF; END; - END IF; + END; + pbfact := TG_ARGV[0]; dice := random();