You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2019/07/23 20:13:27 UTC
[couchdb] 18/25: More bug fixes
This is an automated email from the ASF dual-hosted git repository.
davisp pushed a commit to branch prototype/views
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 3c39ce548a9ae8e4ee3a55b554cb29223ec87530
Author: Paul J. Davis <pa...@gmail.com>
AuthorDate: Tue Jul 23 11:29:26 2019 -0500
More bug fixes
---
src/couch_views/src/couch_views.erl | 2 +-
src/couch_views/src/couch_views_jobs.erl | 5 +++++
src/couch_views/src/couch_views_reader.erl | 18 ++++++++++++------
src/couch_views/test/couch_views_map_test.erl | 11 ++++++-----
4 files changed, 24 insertions(+), 12 deletions(-)
diff --git a/src/couch_views/src/couch_views.erl b/src/couch_views/src/couch_views.erl
index e619a67..8c565a6 100644
--- a/src/couch_views/src/couch_views.erl
+++ b/src/couch_views/src/couch_views.erl
@@ -57,7 +57,7 @@ query(Db, DDoc, ViewName, Callback, Acc0, Args0) ->
maybe_update_view(_Db, _Mrst, #mrargs{update = false}) ->
ok;
-maybe_update_view(_Db, _Mrst, #mrargs{update = laze}) ->
+maybe_update_view(_Db, _Mrst, #mrargs{update = lazy}) ->
ok;
maybe_update_view(Db, Mrst, _Args) ->
diff --git a/src/couch_views/src/couch_views_jobs.erl b/src/couch_views/src/couch_views_jobs.erl
index 85264c6..15852a1 100644
--- a/src/couch_views/src/couch_views_jobs.erl
+++ b/src/couch_views/src/couch_views_jobs.erl
@@ -18,6 +18,11 @@
build_view_async/2
]).
+-ifdef(TEST).
+-compile(export_all).
+-compile(nowarn_export_all).
+-endif.
+
-include_lib("couch_mrview/include/couch_mrview.hrl").
-include("couch_views.hrl").
diff --git a/src/couch_views/src/couch_views_reader.erl b/src/couch_views/src/couch_views_reader.erl
index 41a37eb..2deb9f6 100644
--- a/src/couch_views/src/couch_views_reader.erl
+++ b/src/couch_views/src/couch_views_reader.erl
@@ -135,20 +135,26 @@ mrargs_to_fdb_options(Args) ->
couch_views_encoding:encode(EndKey0)
end,
- EndKeyOpts = case {EndKey1, EndKeyDocId} of
- {undefined, _} ->
+ EndKeyOpts = case {EndKey1, EndKeyDocId, Direction} of
+ {undefined, _, _} ->
[];
- {EndKey1, <<255>>} when not InclusiveEnd ->
+ {EndKey1, <<>>, rev} when not InclusiveEnd ->
+ % When we iterate in reverse with
+ % inclusive_end=false we have to set the
+ % EndKeyDocId to <<255>> so that we don't
+ % include matching rows.
+ [{end_key_gt, {EndKey1, <<255>>}}];
+ {EndKey1, <<255>>, _} when not InclusiveEnd ->
% When inclusive_end=false we need to
% elide the default end_key_docid so as
% to not sort past the docids with the
% given end key.
[{end_key_gt, {EndKey1}}];
- {EndKey1, EndKeyDocId} when not InclusiveEnd ->
+ {EndKey1, EndKeyDocId, _} when not InclusiveEnd ->
[{end_key_gt, {EndKey1, EndKeyDocId}}];
- {EndKey1, EndKeyDocId} when InclusiveEnd ->
+ {EndKey1, EndKeyDocId, _} when InclusiveEnd ->
[{end_key, {EndKey1, EndKeyDocId}}];
- {EndKey1, EndKeyDocId} when InclusiveEnd ->
+ {EndKey1, EndKeyDocId, _} when InclusiveEnd ->
[{end_key_gt, {EndKey1, EndKeyDocId}}]
end,
diff --git a/src/couch_views/test/couch_views_map_test.erl b/src/couch_views/test/couch_views_map_test.erl
index ab3000e..c5db382 100644
--- a/src/couch_views/test/couch_views_map_test.erl
+++ b/src/couch_views/test/couch_views_map_test.erl
@@ -76,7 +76,7 @@ should_map() ->
should_map_with_startkey() ->
- Result = run_query(<<"baz">>, #{start_key => 4}, true),
+ Result = run_query(<<"baz">>, #{start_key => 4}),
Expect = {ok, [
{row, [{id, <<"4">>}, {key, 4}, {value, 4}]},
{row, [{id, <<"5">>}, {key, 5}, {value, 5}]},
@@ -276,7 +276,7 @@ should_map_with_startkey_and_endkey_with_key_array() ->
% expect rows 9-4
?assertEqual({ok, lists:reverse(Rows2)}, ResultRev2),
- ResultRev2 = run_query(<<"boom">>, #{
+ ResultRev3 = run_query(<<"boom">>, #{
start_key => [<<"9">>, 9],
end_key => [<<"4">>, 4],
direction => rev,
@@ -285,7 +285,7 @@ should_map_with_startkey_and_endkey_with_key_array() ->
% Here, specifying [<<"4">>, 4] as the key will prevent
% us from including that row which leaves rows 9-5
- ?assertEqual({ok, lists:reverse(lists:nthtail(1, Rows2))}, ResultRev2).
+ ?assertEqual({ok, lists:reverse(lists:nthtail(1, Rows2))}, ResultRev3).
@@ -446,8 +446,9 @@ run_query(Idx, Args, DebugCluster) ->
Docs = make_docs(10),
fabric2_db:update_docs(Db, [DDoc | Docs]),
if not DebugCluster -> ok; true ->
- %% couch_views:query(Db, DDoc, Idx, fun default_cb/2, [], #{}),
- %% fabric2_fdb:debug_cluster()
+ io:format(standard_error, "Database: ~s~n", [DbName]),
+ couch_views:query(Db, DDoc, Idx, fun default_cb/2, [], #{}),
+ fabric2_fdb:debug_cluster(),
ok
end,
couch_views:query(Db, DDoc, Idx, fun default_cb/2, [], Args).