summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2012-04-05 17:17:38 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2012-04-05 17:17:38 +0100
commit8b41e2695a7450186ad0848662d895095775c657 (patch)
tree6bc6fcb57ee4359569eecf84ac3b7209b46c654e
parentb25b3af939f9a98d3dcbd77b9349f51b36df2514 (diff)
downloadrabbitmq-server-git-8b41e2695a7450186ad0848662d895095775c657.tar.gz
dtree API cleanup: handle 'insert' w empty secondary key list correctly
-rw-r--r--src/dtree.erl6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dtree.erl b/src/dtree.erl
index 473b4283e3..e88ad96322 100644
--- a/src/dtree.erl
+++ b/src/dtree.erl
@@ -65,7 +65,11 @@
empty() -> {gb_trees:empty(), gb_trees:empty()}.
%% Insert an entry. Fails if there already is an entry with the given
-%% primary key. The list of secondary keys should be non-empty.
+%% primary key.
+insert(PK, [], V, {P, S}) ->
+ %% dummy insert to force error if PK exists
+ gb_trees:insert(PK, {gb_sets:empty(), V}, P),
+ {P, S};
insert(PK, SKs, V, {P, S}) ->
{gb_trees:insert(PK, {gb_sets:from_list(SKs), V}, P),
lists:foldl(fun (SK, S0) ->