diff options
author | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2010-09-29 19:36:24 +0100 |
---|---|---|
committer | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2010-09-29 19:36:24 +0100 |
commit | 6db65737ad2ad3d67d50a1b5adc0cfa28b999029 (patch) | |
tree | 92abcde8638bbdeb078ea8c5e041ea65de8c0931 | |
parent | d0bbfe0f2dc79d389d092dc7877612443ba67777 (diff) | |
download | rabbitmq-server-6db65737ad2ad3d67d50a1b5adc0cfa28b999029.tar.gz |
using mnesia:read rather than qlc
-rw-r--r-- | src/rabbit_exchange_type_topic.erl | 17 | ||||
-rw-r--r-- | src/rabbit_tests.erl | 4 |
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, |