From 1c9e27906b7c03fdf662f68a177e96e8f89c6a40 Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Wed, 8 Nov 2017 13:14:43 +0100
Subject: [PATCH] Explicitly enable reduce step for views

This fixes a regression caused by a change in CouchDB4J 0.8 introduced
in commit 1eaebde0054ce44a70c0c6d76e0243c460fe06fe. CouchDB4J 0.8+
always defaults to `reduce=false` as long as grouping is not enabled.
---
 src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index f4044fd95..7df45a7f1 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -1133,6 +1133,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
 
 		final NovaView view = new NovaView("skill_question/count_answers_by_session");
 		view.setKey(s.get_id());
+		view.setReduce(true);
 		final ViewResults results = getDatabase().view(view);
 		if (results.getResults().isEmpty()) {
 			return 0;
@@ -1894,6 +1895,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
 
 	private int getQuestionCount(final NovaView view, final Session session) {
 		view.setKey(session.get_id());
+		view.setReduce(true);
 		final ViewResults results = getDatabase().view(view);
 		if (results.getJSONArray("rows").optJSONObject(0) == null) {
 			return 0;
@@ -1914,6 +1916,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
 	private int countQuestionVariantAnswers(final Session session, final String variant) {
 		final NovaView view = new NovaView("skill_question/count_answers_by_session_and_question_variant");
 		view.setKey(session.get_id(), variant);
+		view.setReduce(true);
 		final ViewResults results = getDatabase().view(view);
 		if (results.getResults().isEmpty()) {
 			return 0;
-- 
GitLab