I like the API. I think it is not overengineered, from the point of view that you set the filters in the api itself instead of using an extra class (constructed from the attribute) to get that effect. You lose some power like setCaseSensitive being global instead of per attribute, but I don't think the tradeoff of power vs a usable API is worth to have it per-attribute. Actually it is not possible to use command and variable binding unless you have a fixed command. That is useful for solving (we only have a fixed amount of solver queries) but for search you would need to have statements for every possible combination of fields and criterias, so compiling everytime you do a search makes perfect sense. What I don't like is the way it exposes the sql part. The builder should return a blind object which you can execute, but not expose the sql strings. Duncan -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org