I'm sorry for not replying for a long time. Been busy a little with my current project.
Can you please list a couple of interesting use cases, which you mentioned? Well, while jooq utilizes SLF4J for do some benchmarking, using listeners it would be possible do that even better. For example, you shipped some release of your software to a customer. And this customer pretends, that your application sometimes works really slow. But only sometimes. Well, you can just enable your own profiler listener in jooq via configuration file and it will magically log all queries, that execute longer than X seconds and all related queries to those (how speciffically related depends on your profiler logic. It could be queries, that immediately precede long ones on the same layer or other). If this listener has access to jooq object model, it can also be set up so that it would log long query structure without data so not to overload log file with queries. I know, that some kinds of the job can be done using special tools for query profiling, but I would prefer to spare myself a nightmare of explaining how to install and operate them to the customer. For example, I would like to implement soft delete functionality into software. Jooq filter can be used to add WHERE predicate on "deleted" field to all queries for this. It can do this correctly,only if it has access to jooq query model. Another example can be a plugin "number of thread edits" to a forum software. It can automatically add edited=edited+1 to all update queries on a particular table. Of course, you need to plan the architecture of your software so that it would be possible to add all those using another way, but you can't have too many ways, can you? :) An important part here I think is for listeners and filters to have access to jooq object model, not only string values of generated SQL queries. Well, if you need some more, I can think of plenty ;) Oracle starts parallelising queries automatically (by transforming filters into unions, etc). I think that's the way it should be done. Well, I'm MySQL guy and I'm scared of even thinking of administering such a monster as Oracle ;) Let alone it's huge price which leaves real sharding available only to Rockfeller-like fellows. There are a plenty other databases each of it has it's own way of development. And I doubt Oracle should set standards of how dabatase should work. Look at Facebook or some other large things.