Excerpts from William Morgan's message of Fri Sep 04 07:41:49 -0700 2009:
> Yes. That's why killed is special; it requires work at threading time to
> drop threads in which any message has a killed label, regardless of
> whether that's the message that matched the query.

Good. I'm glad I'm at least understanding how things work here.

> The other way to implement this, FWIW, is to have labels automatically
> spread to all messages in a thread when they're applied. I think that is
> probably a better implementation, though it increases the cost at
> labeling time. I've been toying with this idea in the sup server code.
> 
> > If not, it seems like it would be possible for a query like
> > "!label:killed" to do exactly what is wanted without needing any
> > special treatment for killed internally.
> 
> I think the above implementation would allow this.

Yes, that would do the trick. It would require extra work both at the
time a label is attached to a message and then again at the time a new
message is associated with an existing thread. But it would give me
the behavior I want "for free" after that.

If such an implementation would be acceptable, then it would seem that
a better long-term solution would be to apply labels only to "thread
objects" and to index and search for those rather than individuals
messages (at least as far as label searching goes). Of course, I'm
talking from an entirely naive point-of-view with regard to the
implementation impact of such a change, but I would imagine it
wouldn't be trivial.

-Carl
_______________________________________________
sup-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/sup-talk

Reply via email to