You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by jc...@apache.org on 2009/03/06 17:45:45 UTC

svn commit: r750969 - in /couchdb/trunk: share/www/script/test/list_views.js src/couchdb/couch_httpd.erl src/couchdb/couch_httpd_show.erl

Author: jchris
Date: Fri Mar  6 16:45:45 2009
New Revision: 750969

URL: http://svn.apache.org/viewvc?rev=750969&view=rev
Log:
validate reduce view list queries, make query_parse_error response code 400
thanks Jan, thanks Jason Davies. closes COUCHDB-283

Modified:
    couchdb/trunk/share/www/script/test/list_views.js
    couchdb/trunk/src/couchdb/couch_httpd.erl
    couchdb/trunk/src/couchdb/couch_httpd_show.erl

Modified: couchdb/trunk/share/www/script/test/list_views.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/list_views.js?rev=750969&r1=750968&r2=750969&view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/list_views.js (original)
+++ couchdb/trunk/share/www/script/test/list_views.js Fri Mar  6 16:45:45 2009
@@ -276,4 +276,11 @@
   T(/Key: 2/.test(xhr.responseText));
   T(/FirstKey: 2/.test(xhr.responseText));
   T(/LastKey: 7/.test(xhr.responseText));
+  
+  // no multi-key fetch allowed when group=false
+  xhr = CouchDB.request("POST", "/test_suite_db/_list/lists/simpleForm/withReduce?group=false", {
+    body: '{"keys":[2,4,5,7]}'
+  });
+  T(xhr.status == 400);
+  T(/query_parse_error/.test(xhr.responseText));
 };

Modified: couchdb/trunk/src/couchdb/couch_httpd.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd.erl?rev=750969&r1=750968&r2=750969&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd.erl Fri Mar  6 16:45:45 2009
@@ -386,6 +386,8 @@
 
 send_error(Req, bad_request) ->
     send_error(Req, 400, <<"bad_request">>, <<>>);
+send_error(Req, {query_parse_error, Reason}) ->
+    send_error(Req, 400, <<"query_parse_error">>, Reason);
 send_error(Req, {bad_request, Reason}) ->
     send_error(Req, 400, <<"bad_request">>, Reason);
 send_error(Req, not_found) ->

Modified: couchdb/trunk/src/couchdb/couch_httpd_show.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_show.erl?rev=750969&r1=750968&r2=750969&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_show.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_show.erl Fri Mar  6 16:45:45 2009
@@ -98,6 +98,7 @@
     {not_found, _Reason} ->
         case couch_view:get_reduce_view(Db, DesignId, ViewName, Stale) of
         {ok, ReduceView, Group} ->
+            couch_httpd_view:parse_view_query(Req, Keys, true, true), % just for validation
             case Reduce of
             false ->
                 MapView = couch_view:extract_map_view(ReduceView),