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.

Reply via email to