Skip to content

Commit d16fc1f

Browse files
committed
Minor couch_btree refactoring
Make the #btree{} record private. There is no reason for the record to be in the public include file.
1 parent 7041b08 commit d16fc1f

File tree

4 files changed

+30
-18
lines changed

4 files changed

+30
-18
lines changed

src/couch/include/couch_db.hrl

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -182,16 +182,6 @@
182182
db_open_options = []
183183
}).
184184

185-
-record(btree, {
186-
fd,
187-
root,
188-
extract_kv,
189-
assemble_kv,
190-
less,
191-
reduce = nil,
192-
compression = ?DEFAULT_COMPRESSION
193-
}).
194-
195185
-record(proc, {
196186
pid,
197187
lang,

src/couch/src/couch_btree.erl

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,22 @@
1414

1515
-export([open/2, open/3, query_modify/4, add/2, add_remove/3]).
1616
-export([fold/4, full_reduce/1, final_reduce/2, size/1, foldl/3, foldl/4]).
17-
-export([fold_reduce/4, lookup/2, get_state/1, set_options/2]).
17+
-export([fold_reduce/4, lookup/2, set_options/2]).
18+
-export([is_btree/1, get_state/1, get_fd/1, get_reduce_fun/1]).
1819
-export([extract/2, assemble/3, less/3]).
1920

2021
-include_lib("couch/include/couch_db.hrl").
2122

23+
-record(btree, {
24+
fd,
25+
root,
26+
extract_kv,
27+
assemble_kv,
28+
less,
29+
reduce = nil,
30+
compression = ?DEFAULT_COMPRESSION
31+
}).
32+
2233
-define(FILL_RATIO, 0.5).
2334

2435
extract(#btree{extract_kv = undefined}, Value) ->
@@ -56,9 +67,20 @@ set_options(Bt, [{compression, Comp} | Rest]) ->
5667
open(State, Fd, Options) ->
5768
{ok, set_options(#btree{root = State, fd = Fd}, Options)}.
5869

70+
is_btree(#btree{}) ->
71+
true;
72+
is_btree(_) ->
73+
false.
74+
5975
get_state(#btree{root = Root}) ->
6076
Root.
6177

78+
get_fd(#btree{fd = Fd}) ->
79+
Fd.
80+
81+
get_reduce_fun(#btree{reduce = Reduce}) ->
82+
Reduce.
83+
6284
final_reduce(#btree{reduce = Reduce}, Val) ->
6385
final_reduce(Reduce, Val);
6486
final_reduce(Reduce, {[], []}) ->

src/couch/test/eunit/couch_btree_tests.erl

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
-module(couch_btree_tests).
1414

1515
-include_lib("couch/include/couch_eunit.hrl").
16-
-include_lib("couch/include/couch_db.hrl").
1716

1817
-define(ROWS, 1000).
1918
% seconds
@@ -81,7 +80,7 @@ btree_open_test_() ->
8180
{ok, Btree} = couch_btree:open(nil, Fd, [{compression, none}]),
8281
{
8382
"Ensure that created btree is really a btree record",
84-
?_assert(is_record(Btree, btree))
83+
?_assert(couch_btree:is_btree(Btree))
8584
}.
8685

8786
sorted_kvs_test_() ->
@@ -189,18 +188,18 @@ reductions_test_() ->
189188
}.
190189

191190
should_set_fd_correctly(_, {Fd, Btree}) ->
192-
?_assertMatch(Fd, Btree#btree.fd).
191+
?_assertMatch(Fd, couch_btree:get_fd(Btree)).
193192

194193
should_set_root_correctly(_, {_, Btree}) ->
195-
?_assertMatch(nil, Btree#btree.root).
194+
?_assertMatch(nil, couch_btree:get_state(Btree)).
196195

197196
should_create_zero_sized_btree(_, {_, Btree}) ->
198197
?_assertMatch(0, couch_btree:size(Btree)).
199198

200199
should_set_reduce_option(_, {_, Btree}) ->
201200
ReduceFun = fun reduce_fun/2,
202201
Btree1 = couch_btree:set_options(Btree, [{reduce, ReduceFun}]),
203-
?_assertMatch(ReduceFun, Btree1#btree.reduce).
202+
?_assertMatch(ReduceFun, couch_btree:get_reduce_fun(Btree1)).
204203

205204
should_fold_over_empty_btree(_, {_, Btree}) ->
206205
{ok, _, EmptyRes} = couch_btree:foldl(Btree, fun(_, X) -> {ok, X + 1} end, 0),
@@ -228,7 +227,7 @@ should_have_lesser_size_than_file(Fd, Btree) ->
228227
should_keep_root_pointer_to_kp_node(Fd, Btree) ->
229228
?_assertMatch(
230229
{ok, {kp_node, _}},
231-
couch_file:pread_term(Fd, element(1, Btree#btree.root))
230+
couch_file:pread_term(Fd, element(1, couch_btree:get_state(Btree)))
232231
).
233232

234233
should_remove_all_keys(KeyValues, Btree) ->

src/couch_mrview/src/couch_mrview_util.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1317,7 +1317,8 @@ make_user_reds_reduce_fun(Lang, ReduceFuns, NthRed) ->
13171317

13181318
get_btree_state(nil) ->
13191319
nil;
1320-
get_btree_state(#btree{} = Btree) ->
1320+
get_btree_state(Btree) ->
1321+
true = couch_btree:is_btree(Btree),
13211322
couch_btree:get_state(Btree).
13221323

13231324
extract_view_reduce({red, {N, _Lang, #mrview{reduce_funs = Reds}}, _Ref}) ->

0 commit comments

Comments
 (0)