From 2d0503e3bb0c50c99670c01272ee8c1fe7710f8d Mon Sep 17 00:00:00 2001 From: John Christopher Anderson Date: Mon, 4 May 2009 22:06:12 +0000 Subject: reduce_limit error is thrown when the reduce function output is not small enough compared to the input. Errors can be switched off using the config API. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@771466 13f79535-47bb-0310-9956-ffa450edef68 --- share/server/views.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'share/server/views.js') diff --git a/share/server/views.js b/share/server/views.js index c6d71579..de728ac2 100644 --- a/share/server/views.js +++ b/share/server/views.js @@ -46,7 +46,17 @@ var Views = (function() { reductions[i] = null; } } - print("[true," + toJSON(reductions) + "]"); + var reduce_line = toJSON(reductions); + var reduce_length = reduce_line.length; + if (query_config && query_config.reduce_limit && + reduce_length > 200 && ((reduce_length * 2) > line.length)) { + throw { + error:"reduce_overflow_error", + reason: "Reduce output must shrink more rapidly. Current output: '"+reduce_line+"'" + }; + } else { + print("[true," + reduce_line + "]"); + } }; return { -- cgit v1.2.3