On 8/7/10 at 7:37 AM, sivan@omniqueue.com (Sivan Greenberg) wrote: >As I am also using a JS filter and fear the performance and load >consequences, how does one go about writing an erlang filter? > >-SIvan I can't claim it to be idiomatic Erlang, but this is the one I am working on that accepts query argument from the client opening the change feed. fun({Doc}, {Req}) -> {Query} = couch_util:get_value(<<"query">>, Req), ExcludedServer = couch_util:get_value(<<"excludeServer">>, Query), case {couch_util:get_value(<<"docType">>, Doc), couch_util:get_value(<<"updatedOnServer">>, Doc)} of {<<"CS_MANIFEST">>, null} -> CreatedOnServer = couch_util:get_value(<<"createdOnServer">>, Doc), CreatedOnServer =/= ExcludedServer; {<<"CS_MANIFEST">>, undefined} -> false; {<>, UpdatedOnServer} -> UpdatedOnServer =/= ExcludedServer; _ -> false end end. BTW, since strings are represented as Binaries (<<>> syntax), string manipulation in Erlang map-reduce and filter functions is easy with Erlang's BIFs that manipulate binaries, like split_binary(). Matt