diff options
author | Nick Vatamaniuc <vatamane@gmail.com> | 2022-03-11 15:06:33 -0500 |
---|---|---|
committer | Nick Vatamaniuc <vatamane@gmail.com> | 2022-03-11 15:06:33 -0500 |
commit | 0a5a37c6ce7736cf753d0b70d3193c2e561827e7 (patch) | |
tree | ec4753c434bc84e23b865881cc935f2614577dc6 | |
parent | b9a322344aa6e86cf81af61300d697619f545311 (diff) | |
download | couchdb-broken-partitioned-custom-reduce.tar.gz |
Partitions with custom reduce are brokenbroken-partitioned-custom-reduce
```
make elixir tests=test/elixir/test/partition_view_test.exs:314
* test query with custom reduce works (708.2ms)
1) test query with custom reduce works (ViewPartitionTest)
test/elixir/test/partition_view_test.exs:314
Assertion with == failed
code: assert resp.status_code == 200
left: 500
right: 200
stacktrace:
test/elixir/test/partition_view_test.exs:319: (test)
```
Logs show:
```
[error] 2022-03-11T20:05:58.969707Z node1@127.0.0.1 <0.985.0> 9bc85227db req_err(2412564908) {{invalid_ejson,{p,<<"bar">>,[<<"field">>,<<"one">>]}},
[{jiffy,encode,2,
[{file,"/Users/nvatama/asf-3-main/src/jiffy/src/jiffy.erl"},
{line,99}]},
{couch_os_process,writejson,2,[{file,"src/couch_os_process.erl"},{line,97}]},
{couch_os_process,handle_call,3,
```
-rw-r--r-- | test/elixir/test/partition_view_test.exs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/elixir/test/partition_view_test.exs b/test/elixir/test/partition_view_test.exs index 0a55c2443..7edd79b44 100644 --- a/test/elixir/test/partition_view_test.exs +++ b/test/elixir/test/partition_view_test.exs @@ -29,6 +29,16 @@ defmodule ViewPartitionTest do } """ + red_custom = """ + function(keys, values, rereduce) { + if (rereduce) { + return sum(values); + } else { + return values.length; + } + } + """ + query = %{:w => 3} body = %{ @@ -56,6 +66,10 @@ defmodule ViewPartitionTest do views: %{some: %{map: map_fun2, reduce: "_count"}} }, %{ + _id: "_design/reduce_custom", + views: %{some: %{map: map_fun2, reduce: red_custom}} + }, + %{ _id: "_design/include_ddocs", views: %{some: %{map: map_fun1}}, options: %{include_design: true} @@ -297,6 +311,32 @@ defmodule ViewPartitionTest do ] end + test "query with custom reduce works", context do + db_name = context[:db_name] + + url = "/#{db_name}/_partition/foo/_design/reduce_custom/_view/some" + resp = Couch.get(url, query: %{reduce: true, group_level: 1}) + assert resp.status_code == 200 + results = get_reduce_result(resp) + assert results == [%{"key" => ["field"], "value" => 50}] + + resp = Couch.get(url, query: %{reduce: true, group_level: 2}) + results = get_reduce_result(resp) + + assert results == [ + %{"key" => ["field", "one"], "value" => 16}, + %{"key" => ["field", "two"], "value" => 34} + ] + + resp = Couch.get(url, query: %{reduce: true, group: true}) + results = get_reduce_result(resp) + + assert results == [ + %{"key" => ["field", "one"], "value" => 16}, + %{"key" => ["field", "two"], "value" => 34} + ] + end + test "partition query can set query limits", context do set_config({"query_server_config", "partition_query_limit", "2000"}) |