From 5442bdb4f36f6079c5e63b5ddd8486acd032e5ad Mon Sep 17 00:00:00 2001 From: Paul Joseph Davis Date: Sat, 18 Apr 2009 16:16:35 +0000 Subject: Fixes COUCHDB-322 Specifying reduce=true now returns a 400 error when the view has no reduce function. git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@766347 13f79535-47bb-0310-9956-ffa450edef68 --- src/couchdb/couch_httpd_view.erl | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src/couchdb/couch_httpd_view.erl') diff --git a/src/couchdb/couch_httpd_view.erl b/src/couchdb/couch_httpd_view.erl index e0c3f631..4054eb05 100644 --- a/src/couchdb/couch_httpd_view.erl +++ b/src/couchdb/couch_httpd_view.erl @@ -364,9 +364,15 @@ parse_view_query(Req, Keys, IsReduce, IgnoreExtra) -> {"inclusive_end", "false"} -> Args#view_query_args{inclusive_end=false}; {"reduce", "true"} -> - Args#view_query_args{reduce=true}; + Args#view_query_args{ + reduce=true, + req_reduce=true + }; {"reduce", "false"} -> - Args#view_query_args{reduce=false}; + Args#view_query_args{ + reduce=false, + req_reduce=true + }; {"include_docs", Value} -> case Value of "true" -> @@ -401,7 +407,18 @@ parse_view_query(Req, Keys, IsReduce, IgnoreExtra) -> ok end; _ -> - ok + case QueryArgs#view_query_args.req_reduce of + true -> + case QueryArgs#view_query_args.reduce of + true -> + ErrMsg = <<"Bad URL parameter: reduce=true">>, + throw({query_parse_error, ErrMsg}); + _ -> + ok + end; + _ -> + ok + end end, case Keys of nil -> -- cgit v1.2.3