5Kl8o2Ho7vgchAOE9Die7G changeset

Changeset343031383436 (b)
ParentNone (a)
ab
0+diff --git a/src/couch_index_merger/src/couch_httpd_view_merger.erl b/src/couch_index_merger/src/couch_httpd_view_merger.erl
0+index 9597cb3..1715632 100644
0+--- a/src/couch_index_merger/src/couch_httpd_view_merger.erl
0++++ b/src/couch_index_merger/src/couch_httpd_view_merger.erl
0+@@ -370,13 +370,16 @@ parse_view_name(Name) ->
0+         {nil, nil, <<"_all_docs">>};
0+     [DDocName, ViewName0] ->
0+         {nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
0+-    ["_design", DDocName, ViewName0] ->
0++    ["_design", DDocName0, ViewName0] ->
0++        DDocName = couch_httpd:unquote(DDocName0),
0+         {nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
0+-    [DDocDbName1, DDocName, ViewName0] ->
0++    [DDocDbName1, DDocName0, ViewName0] ->
0+         DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
0++        DDocName = couch_httpd:unquote(DDocName0),
0+         {DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
0+-    [DDocDbName1, "_design", DDocName, ViewName0] ->
0++    [DDocDbName1, "_design", DDocName0, ViewName0] ->
0+         DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
0++        DDocName = couch_httpd:unquote(DDocName0),
0+         {DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
0+     _ ->
0+         throw({bad_request, "A `view` property must have the shape"
0+diff --git a/src/couch_index_merger/src/couch_view_merger.erl b/src/couch_index_merger/src/couch_view_merger.erl
0+index 2f04c7a..4c10678 100644
0+--- a/src/couch_index_merger/src/couch_view_merger.erl
0++++ b/src/couch_index_merger/src/couch_view_merger.erl
0+@@ -208,7 +208,7 @@ http_index_folder_req_details(#simple_index_spec{} = IndexSpec, MergeParams, _DD
0+     <<"_all_docs">> ->
0+         "_all_docs";
0+     _ ->
0+-        ?b2l(DDocId) ++ "/_view/" ++ ?b2l(ViewName)
0++        couch_httpd:quote(DDocId) ++ "/_view/" ++ couch_httpd:quote(ViewName)
0+     end ++ view_qs(ViewArgs, MergeParams),
0+     put(from_url, DbUrl),
0+     case Keys of
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
--- Revision None
+++ Revision 343031383436
@@ -0,0 +1,37 @@
+diff --git a/src/couch_index_merger/src/couch_httpd_view_merger.erl b/src/couch_index_merger/src/couch_httpd_view_merger.erl
+index 9597cb3..1715632 100644
+--- a/src/couch_index_merger/src/couch_httpd_view_merger.erl
++++ b/src/couch_index_merger/src/couch_httpd_view_merger.erl
+@@ -370,13 +370,16 @@ parse_view_name(Name) ->
+ {nil, nil, <<"_all_docs">>};
+ [DDocName, ViewName0] ->
+ {nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
+- ["_design", DDocName, ViewName0] ->
++ ["_design", DDocName0, ViewName0] ->
++ DDocName = couch_httpd:unquote(DDocName0),
+ {nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
+- [DDocDbName1, DDocName, ViewName0] ->
++ [DDocDbName1, DDocName0, ViewName0] ->
+ DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
++ DDocName = couch_httpd:unquote(DDocName0),
+ {DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
+- [DDocDbName1, "_design", DDocName, ViewName0] ->
++ [DDocDbName1, "_design", DDocName0, ViewName0] ->
+ DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
++ DDocName = couch_httpd:unquote(DDocName0),
+ {DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
+ _ ->
+ throw({bad_request, "A `view` property must have the shape"
+diff --git a/src/couch_index_merger/src/couch_view_merger.erl b/src/couch_index_merger/src/couch_view_merger.erl
+index 2f04c7a..4c10678 100644
+--- a/src/couch_index_merger/src/couch_view_merger.erl
++++ b/src/couch_index_merger/src/couch_view_merger.erl
+@@ -208,7 +208,7 @@ http_index_folder_req_details(#simple_index_spec{} = IndexSpec, MergeParams, _DD
+ <<"_all_docs">> ->
+ "_all_docs";
+ _ ->
+- ?b2l(DDocId) ++ "/_view/" ++ ?b2l(ViewName)
++ couch_httpd:quote(DDocId) ++ "/_view/" ++ couch_httpd:quote(ViewName)
+ end ++ view_qs(ViewArgs, MergeParams),
+ put(from_url, DbUrl),
+ case Keys of