At the moment, the implementation of RowFilter.CustomExpression is tightly bound to the syntax designed to support non-CQL search syntax for custom 2i implementations. It might be interesting to decouple the two things by making the custom expression implementation and serialization a bit more pluggable. This would allow users to add their own custom expression implementations to experiment with custom filtering strategies without having to patch the C* source. As a minimally invasive first step, custom expressions could be added programmatically via QueryHandler. Further down the line, if this proves useful and we can figure out some reasonable syntax we could think about adding the capability in CQL in a separate ticket.