On Thursday, June 28, 2012 4:55:20 AM UTC-4, Lukas Eder wrote:

> > In my case, I'd like to see TableFieldImpl become public (so I can 
> derive 
> > it). 
>
> That seems like a bad idea at first. These "impl" classes change 
> frequently between releases, and I wouldn't like to see them being 
> part of the public API. What extensions do you need? 
>

We have an xml file that describes our DB schema.  As well, it describes 
meta information that will be needed by an ExecuteListener.  My plan is to 
write my own metadata generator, that drives of the xml file (vs a live DB 
server).  It would generate largely the same content as the jooq generator 
does but instead of TableFieldImpl instances for each field, it would 
MyTableFieldImpl instances.  That would necessitate making TableFieldImpl 
public.  Note that TableImpl is already public.

Here's why..  Our schema xml file can specify that some columns take on 
some extra behavior.  I'm skipping the details of that extra behavior for 
now.  The ExecuteListener will need to intercept INSERT and UPDATE calls, 
inspect the Query object (thus my needing of more public API), check the 
conditions for that extra behavior and then let the call through.

In another use case, our ExecuteListener will need to add some extra WHERE 
clauses to certain queries.  It may seem bizarre, but that's what our 
current infrastructure does so we'll need to maintain that if we switch to 
jooq.

There are some other use cases, but they all fall along similar lines and 
have the same overall requirement.  We need to be able to inspect queries.
 

> > I'm also trying to do several things in an ExecuteListeners and it 
> > would be nice to see InsertQuery.getInto() move into the Interface and 
> make 
> > public. 
>
> That probably makes sense. I filed this as feature request #1492: 
> https://sourceforge.net/apps/trac/jooq/ticket/1492 
>

What is the typical process from feature request to getting on the roadmap?
 

> I'll see what other internals can be exposed in the public non-DSL API 
>

I need a way to see the field/value pairs for an INSERT query.  That 
appears to be getValues().
 

> Could you explain this a bit more? Maybe there is another solution, 
> not involving API changes? 
>

Some of the specifics I'd rather not go into detail about on a public 
forum.  I hope I've painted the picture clearly enough.  Thanks a lot for 
the time and consideration.

~S

Reply via email to