[erlang-questions] Strange ets:select behaviour
Maxim Treskin
zerthurd@REDACTED
Thu Dec 11 14:18:09 CET 2008
Hello
I have error with ets:select when I use MatchSpec with tuple matching.
It is my table:
(n1@REDACTED)2> ets:i(controllers).
<1 > {{{192,168,138,73},37100,2},<0.61.0>}
EOT (q)uit (p)Digits (k)ill /Regexp -->q
quit
it contains IPv4 address, port and assoc_id as key and process Pid.
So, when I select with following two MatchSpecs, I have no problems:
(n1@REDACTED)5> ets:select(controllers, [{{{'$1', '$2', '$3'}, '$4'}, [{'==',
'$3', 2}, {is_pid, '$4'}], ['$4']}]).
[<0.61.0>]
(n1@REDACTED)6> ets:select(controllers, [{{{'$1', '$2', '$3'}, '$4'}, [{'==',
'$2', 37100}, {is_pid, '$4'}], ['$4']}]).
[<0.61.0>]
(see on {'==', $...})
But with this MatchSpec I have error:
(n1@REDACTED)7> ets:select(controllers, [{{{'$1', '$2', '$3'}, '$4'}, [{'==',
'$1', {192,168,138,73}}, {is_pid, '$4'}], ['$4']}]).
** exception error: bad argument
in function ets:select/2
called as ets:select(controllers,
[{{{'$1','$2','$3'},'$4'},
[{'==','$1',{192,168,138,73}},{is_pid,'$4'}],
['$4']}])
Is it means that impossible to use tuples in MatchSpec guards?
My OTP is R12B-5.
Thank you.
--
Maxim Treskin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20081211/5111d3f9/attachment.htm>
More information about the erlang-questions
mailing list