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]),