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 2020/09/03 18:31:52 UTC
[couchdb] 05/05: Disable node validation in production
This is an automated email from the ASF dual-hosted git repository.
davisp pushed a commit to branch prototype/fdb-layer
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit b55afbddc0013e3fff6f8ca0713d4f0f35b6eda0
Author: Paul J. Davis <pa...@gmail.com>
AuthorDate: Thu Sep 3 12:44:24 2020 -0500
Disable node validation in production
This keeps validation during tests but disables the validation during
production to avoid the overhead of collation.
---
src/ebtree/src/ebtree.erl | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/ebtree/src/ebtree.erl b/src/ebtree/src/ebtree.erl
index ea445ea..3cfb820 100644
--- a/src/ebtree/src/ebtree.erl
+++ b/src/ebtree/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]),