summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J. Davis <paul.joseph.davis@gmail.com>2020-09-03 12:44:24 -0500
committerPaul J. Davis <paul.joseph.davis@gmail.com>2020-09-09 09:46:03 -0500
commit0ccd2f9f3a377c3d00977b9db7d0300178ae1094 (patch)
tree078d79b2a5ea53d07da6fd71d70361f6b7b35d4c
parent5eb9be05e5d9bd7c5f56ebce0ad8651365201176 (diff)
downloadcouchdb-0ccd2f9f3a377c3d00977b9db7d0300178ae1094.tar.gz
Disable node validation in production
This keeps validation during tests but disables the validation during production to avoid the overhead of collation.
-rw-r--r--src/ebtree.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ebtree.erl b/src/ebtree.erl
index ea445eada..3cfb82030 100644
--- a/src/ebtree.erl
+++ b/src/ebtree.erl
@@ -63,6 +63,12 @@
-define(at_min(Tree, Node), Tree#tree.min == length(Node#node.members)).
-define(is_full(Tree, Node), Tree#tree.max == length(Node#node.members)).
+-ifdef(TEST).
+-define(validate_node(Tree, Node), validate_node(Tree, Node)).
+-else.
+-define(validate_node(Tree, Node), ignore).
+-endif.
+
%% two special 1-bit bitstrings that cannot appear in valid keys.
-define(MIN, <<0:1>>).
-define(MAX, <<1:1>>).
@@ -1020,7 +1026,7 @@ set_node(Tx, #tree{} = Tree, #node{} = _From, #node{} = To) ->
set_node(Tx, #tree{} = Tree, #node{} = Node) ->
- validate_node(Tree, Node),
+ ?validate_node(Tree, Node),
Key = node_key(Tree#tree.prefix, Node#node.id),
Value = encode_node(Tree, Key, Node),
cache(Tree, set, [Node#node.id, Node]),