couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoit Chesneau <bchesn...@gmail.com>
Subject Re: filter for _changes
Date Mon, 20 Jul 2009 07:19:00 GMT
2009/7/20 Chris Anderson <jchris@apache.org>:
> Devs,
>
> I've just committed a patch (r795687) that adds the ability to filter
> _changes requests with a JavaScript function.
>
> The function signature is:
>
> function(doc, req, userCtx) {
>  return (true or false);
> }
>
> When it returns true (or something truthy, like a non-empty string or
> a non-zero number), the change is passed along to the user, otherwise
> it is skipped.
>
> The filter functions are stored on design documents under the
> "filters" field. The current best source of documentation is the
> changes.js test.
>
> To query changes with a filter, the syntax is like:
>
> GET /db/_changes?filter=ddocname/filtername
>
> The biggest problem with this patch is that it uses a JavaScript OS
> process per connected filtered listener. Fixing this is an
> optimization as it won't effect the API, which is why I'm comfortable
> committing this.
>
> I'd appreciate some review to make sure the implementation is on the
> right track.
>
> Cheers,
> Chris
>
> --

Implementation seems good for me and tests pass. For userCtx filtering
I guess it would be needed to have a way to filter all changes without
passing any parameter to forbid all changes read. Maybe by adding a
main validate_changes on top of a design doc ? Same args but this
fucntion would be applied on all changes. What do you think about it ?

- benoit

Mime
View raw message