diff options
| -rw-r--r-- | share/www/script/test/view_errors.js | 25 | ||||
| -rw-r--r-- | src/couchdb/couch_httpd_view.erl | 2 | 
2 files changed, 24 insertions, 3 deletions
| diff --git a/share/www/script/test/view_errors.js b/share/www/script/test/view_errors.js index c6cbcc55..e8bd08e4 100644 --- a/share/www/script/test/view_errors.js +++ b/share/www/script/test/view_errors.js @@ -74,9 +74,6 @@ couchTests.view_errors = function(debug) {            T(e.error == "query_parse_error");        } -      // reduce=false on map views doesn't work, so group=true will -      // never throw for temp reduce views. -        var designDoc = {          _id:"_design/test",          language: "javascript", @@ -104,6 +101,15 @@ couchTests.view_errors = function(debug) {            db.view("test/no_reduce", {group: true});            T(0 == 1);        } catch(e) { +          T(db.last_req.status == 400); +          T(e.error == "query_parse_error"); +      } + +      try { +          db.view("test/no_reduce", {group_level: 1}); +          T(0 == 1); +      } catch(e) { +          T(db.last_req.status == 400);            T(e.error == "query_parse_error");        } @@ -115,10 +121,23 @@ couchTests.view_errors = function(debug) {          T(e.error == "query_parse_error");        } +      db.view("test/no_reduce", {reduce: false}); +      TEquals(200, db.last_req.status, "reduce=false for map views (without" +                                     + " group or group_level) is allowed"); +        try {            db.view("test/with_reduce", {group: true, reduce: false});            T(0 == 1);        } catch(e) { +          T(db.last_req.status == 400); +          T(e.error == "query_parse_error"); +      } + +      try { +          db.view("test/with_reduce", {group_level: 1, reduce: false}); +          T(0 == 1); +      } catch(e) { +        T(db.last_req.status == 400);            T(e.error == "query_parse_error");        } diff --git a/src/couchdb/couch_httpd_view.erl b/src/couchdb/couch_httpd_view.erl index 63e737e8..36e44da5 100644 --- a/src/couchdb/couch_httpd_view.erl +++ b/src/couchdb/couch_httpd_view.erl @@ -387,6 +387,8 @@ validate_view_query(group_level, Value, Args) ->      end;  validate_view_query(inclusive_end, Value, Args) ->      Args#view_query_args{inclusive_end=Value}; +validate_view_query(reduce, false, Args) -> +    Args;  validate_view_query(reduce, _, Args) ->      case Args#view_query_args.view_type of      map -> | 
