summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Alexandru Ionescu <vlad@rabbitmq.com>2010-09-29 19:36:24 +0100
committerVlad Alexandru Ionescu <vlad@rabbitmq.com>2010-09-29 19:36:24 +0100
commit6db65737ad2ad3d67d50a1b5adc0cfa28b999029 (patch)
tree92abcde8638bbdeb078ea8c5e041ea65de8c0931
parentd0bbfe0f2dc79d389d092dc7877612443ba67777 (diff)
downloadrabbitmq-server-6db65737ad2ad3d67d50a1b5adc0cfa28b999029.tar.gz
using mnesia:read rather than qlc
-rw-r--r--src/rabbit_exchange_type_topic.erl17
-rw-r--r--src/rabbit_tests.erl4
2 files changed, 6 insertions, 15 deletions
diff --git a/src/rabbit_exchange_type_topic.erl b/src/rabbit_exchange_type_topic.erl
index bbd5d357..9091d385 100644
--- a/src/rabbit_exchange_type_topic.erl
+++ b/src/rabbit_exchange_type_topic.erl
@@ -178,18 +178,11 @@ remove_path_if_empty(X, [{Node, W} | [{Parent, _} | _] = RestPath]) ->
end.
trie_child(X, Node, Word) ->
- Query = qlc:q([NextNode ||
- #topic_trie_edge{trie_edge = #trie_edge{exchange_name = X1,
- node_id = Node1,
- word = Word1},
- node_id = NextNode}
- <- mnesia:table(rabbit_topic_trie_edge),
- X1 == X,
- Node1 == Node,
- Word1 == Word]),
- case qlc:e(Query) of
- [NextNode] -> {ok, NextNode};
- [] -> error
+ case mnesia:read(rabbit_topic_trie_edge, #trie_edge{exchange_name = X,
+ node_id = Node,
+ word = Word}) of
+ [#topic_trie_edge{node_id = NextNode}] -> {ok, NextNode};
+ [] -> error
end.
trie_bindings(X, Node) ->
diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl
index 53aeea7f..cee728ea 100644
--- a/src/rabbit_tests.erl
+++ b/src/rabbit_tests.erl
@@ -673,16 +673,14 @@ test_topic_matching() ->
%% remove the entire exchange
rabbit_exchange_type_topic:delete(X, RemainingBindings),
%% none should match now
- test_topic_expect_match(X, [{"a.b.c", []}, {"b.b.c", []}, {"", []}]),
+ test_topic_expect_match(X, [{"a.b.c", []}, {"b.b.c", []}, {"", []}]),
passed.
test_topic_expect_match(#exchange{name = XName}, List) ->
lists:foreach(
fun({Key, Expected}) ->
- io:format("~p ~p~n", [Key, Expected]),
Res = rabbit_exchange_type_topic:which_matches(
XName, list_to_binary(Key)),
- io:format("Res: ~p~n", [Res]),
ExpectedRes = lists:map(
fun(Q) -> #resource{virtual_host = <<"/">>,
kind = queue,