aboutsummaryrefslogtreecommitdiff
path: root/www/davical
diff options
context:
space:
mode:
authorTobias C. Berner <tcberner@FreeBSD.org>2017-10-26 17:39:49 +0000
committerTobias C. Berner <tcberner@FreeBSD.org>2017-10-26 17:39:49 +0000
commita0559c84ba11fa0856ae7b057f5caeca4d58060b (patch)
tree0b903ff9ac6b6b8217c682ecc750ecce2040d7b3 /www/davical
parent83e8894a7a540a3248643fe06beec97b5054bce9 (diff)
downloadports-a0559c84ba11fa0856ae7b057f5caeca4d58060b.tar.gz
ports-a0559c84ba11fa0856ae7b057f5caeca4d58060b.zip
Fix www/davical to be comptible with Postgres 10.0
PR: 223187 Submitted by: Le Baron d'Merde <lbdm@privacychain.ch> (maintainer) Reported by: karl@denninger.net
Notes
Notes: svn path=/head/; revision=452931
Diffstat (limited to 'www/davical')
-rw-r--r--www/davical/Makefile2
-rw-r--r--www/davical/files/patch-git_3900179459
2 files changed, 60 insertions, 1 deletions
diff --git a/www/davical/Makefile b/www/davical/Makefile
index 918e17bb6211..5ed94a5af786 100644
--- a/www/davical/Makefile
+++ b/www/davical/Makefile
@@ -4,7 +4,7 @@
PORTNAME= davical
DISTVERSIONPREFIX= r
DISTVERSION= 1.1.5
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES?= www
MASTER_SITES= https://gitlab.com/${PORTNAME}-project/${PORTNAME}/repository/archive.tar.gz?ref=${DISTVERSIONPREFIX}${PORTVERSION}&dummy=/
diff --git a/www/davical/files/patch-git_39001794 b/www/davical/files/patch-git_39001794
new file mode 100644
index 000000000000..4804044bb993
--- /dev/null
+++ b/www/davical/files/patch-git_39001794
@@ -0,0 +1,59 @@
+From 39001794a3121c33c8cba50398b653a94328be40 Mon Sep 17 00:00:00 2001
+From: Florian Schlichting <fsfs@debian.org>
+Date: Tue, 3 Oct 2017 22:36:29 +0200
+Subject: [PATCH] Update caldav_functions.sql for Postgresql 10
+
+From version 10, Postgresql does not allow set-returning functions in
+CASE statements. As we're using the functions recursively, we cannot
+use LATERAL as suggested in the error message, but we can switch the
+condition inside-out with only a limited amount of repetition.
+
+--- dba/caldav_functions.sql
++++ dba/caldav_functions.sql
+@@ -897,21 +897,37 @@ LANGUAGE plpgsql IMMUTABLE STRICT;
+
+ -- Expanded group memberships out to some depth
+ CREATE or REPLACE FUNCTION expand_memberships( INT8, INT ) RETURNS SETOF INT8 AS $$
+- SELECT group_id FROM group_member WHERE member_id = $1
+- UNION
+- SELECT expanded.g_id FROM (SELECT CASE WHEN $2 > 0 THEN expand_memberships( group_id, $2 - 1) END AS g_id
+- FROM group_member WHERE member_id = $1) AS expanded
+- WHERE expanded.g_id IS NOT NULL;
+-$$ LANGUAGE sql STABLE STRICT;
++BEGIN
++ IF $2 > 0 THEN
++ RETURN QUERY
++ SELECT group_id FROM group_member WHERE member_id = $1
++ UNION
++ SELECT expanded.g_id FROM (SELECT expand_memberships( group_id, $2 - 1) AS g_id
++ FROM group_member WHERE member_id = $1) AS expanded
++ WHERE expanded.g_id IS NOT NULL;
++ ELSE
++ RETURN QUERY
++ SELECT group_id FROM group_member WHERE member_id = $1;
++ END IF;
++END
++$$ LANGUAGE plpgsql IMMUTABLE STRICT;
+
+ -- Expanded group members out to some depth
+ CREATE or REPLACE FUNCTION expand_members( INT8, INT ) RETURNS SETOF INT8 AS $$
+- SELECT member_id FROM group_member WHERE group_id = $1
+- UNION
+- SELECT expanded.m_id FROM (SELECT CASE WHEN $2 > 0 THEN expand_members( member_id, $2 - 1) END AS m_id
+- FROM group_member WHERE group_id = $1) AS expanded
+- WHERE expanded.m_id IS NOT NULL;
+-$$ LANGUAGE sql STABLE STRICT;
++BEGIN
++ IF $2 > 0 THEN
++ RETURN QUERY
++ SELECT member_id FROM group_member WHERE group_id = $1
++ UNION
++ SELECT expanded.m_id FROM (SELECT expand_members( member_id, $2 - 1) AS m_id
++ FROM group_member WHERE group_id = $1) AS expanded
++ WHERE expanded.m_id IS NOT NULL;
++ ELSE
++ RETURN QUERY
++ SELECT member_id FROM group_member WHERE group_id = $1;
++ END IF;
++END
++$$ LANGUAGE plpgsql IMMUTABLE STRICT;