On Fri, Feb 7, 2014 at 12:00 PM, <rnew...@apache.org> wrote: > Updated Branches: > refs/heads/key-vs-keys [created] a478b4549 > > > Send better error if user specifies key and keys > > > Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo > Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/a478b454 > Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/a478b454 > Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/a478b454 > > Branch: refs/heads/key-vs-keys > Commit: a478b4549289810f94332276e1f7fe75d4155212 > Parents: e7fdc16 > Author: Robert Newson <rnew...@apache.org> > Authored: Fri Feb 7 11:00:24 2014 +0000 > Committer: Robert Newson <rnew...@apache.org> > Committed: Fri Feb 7 11:00:24 2014 +0000 > > ---------------------------------------------------------------------- > src/couch_mrview/include/couch_mrview.hrl | 1 + > src/couch_mrview/src/couch_mrview_http.erl | 2 +- > src/couch_mrview/src/couch_mrview_util.erl | 7 +++++++ > 3 files changed, 9 insertions(+), 1 deletion(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/couchdb/blob/a478b454/src/couch_mrview/include/couch_mrview.hrl > ---------------------------------------------------------------------- > diff --git a/src/couch_mrview/include/couch_mrview.hrl > b/src/couch_mrview/include/couch_mrview.hrl > index e4ec66d..cec3e31 100644 > --- a/src/couch_mrview/include/couch_mrview.hrl > +++ b/src/couch_mrview/include/couch_mrview.hrl > @@ -63,6 +63,7 @@ > start_key_docid, > end_key, > end_key_docid, > + key, > keys, > > direction = fwd, > > http://git-wip-us.apache.org/repos/asf/couchdb/blob/a478b454/src/couch_mrview/src/couch_mrview_http.erl > ---------------------------------------------------------------------- > diff --git a/src/couch_mrview/src/couch_mrview_http.erl > b/src/couch_mrview/src/couch_mrview_http.erl > index 7b92034..2f301a0 100644 > --- a/src/couch_mrview/src/couch_mrview_http.erl > +++ b/src/couch_mrview/src/couch_mrview_http.erl > @@ -301,7 +301,7 @@ parse_qs(Key, Val, Args) -> > Args#mrargs{reduce=parse_boolean(Val)}; > "key" -> > JsonKey = ?JSON_DECODE(Val), > - Args#mrargs{start_key=JsonKey, end_key=JsonKey}; > + Args#mrargs{key=JsonKey, start_key=JsonKey, end_key=JsonKey}; > "keys" -> > Args#mrargs{keys=?JSON_DECODE(Val)}; > "startkey" -> > > http://git-wip-us.apache.org/repos/asf/couchdb/blob/a478b454/src/couch_mrview/src/couch_mrview_util.erl > ---------------------------------------------------------------------- > diff --git a/src/couch_mrview/src/couch_mrview_util.erl > b/src/couch_mrview/src/couch_mrview_util.erl > index c4272f8..7860b3b 100644 > --- a/src/couch_mrview/src/couch_mrview_util.erl > +++ b/src/couch_mrview/src/couch_mrview_util.erl > @@ -359,6 +359,13 @@ validate_args(Args) -> > _ -> mrverror(<<"`keys` must be an array of strings.">>) > end, > > + case {Args#mrargs.keys, Args#mrargs.key} of > + {undefined, _} -> ok; > + {[], _} -> ok; > + {[_|_], undefined} -> ok; > + _ -> mrverror(<<"`key` is incompatible with `keys`">>) > + end, > + > case {Args#mrargs.keys, Args#mrargs.start_key} of > {undefined, _} -> ok; > {[], _} -> ok; >
hrm, but then we are testing key and if it pass doing the same test for start_key, a bit redudant imo. What about adding a more generic message on the start_key message saying keys is incompatible with start_key or key? - benoit