Hi Kevin,
2013/4/8 <[email protected]>:
> Yes, I began by attempting to contribute to the official driver. The
> unfortunate problem is that it is written to support so many server versions
> (some it doesn't even officially support anymore) and even the older version
> 2 server protocol, it was hard to make sense of just how to add the new
> features correctly. So I decided to take a fresh stab at it and started a
> new open source project.
That was my impression, too. It looks like a hard-to-touch piece of software.
> I think a dialect sounds like the way to go but I have limited knowledge of
> jOOQ internals. Can you suggest a way to hack a version of jOOQ that would
> use Oracle's UDT handling with PostgreSQL's *everything else* that I could
> take a stab at until this gets solved on a grander scale?
On Github master (the unrelease jOOQ 3.0-RC3), you'll find references
to org.jooq.UDTRecord in org.jooq.impl.Utils. Interesting methods are
- getFromResultSet()
- getFromSQLInput()
- getFromStatement()
These are some first hints to start hacking. I'm not 100% sure if that
covers everything. Other intersting types to look for might be
org.jooq.UDT, org.jooq.impl.UDTImpl, org.jooq.impl.UDTRecordImpl, and
org.jooq.impl.UDTConstant
Hope this helps. If you have further questions, feel free to ask!
Cheers
Lukas
>
> On Monday, April 8, 2013 12:42:05 AM UTC-7, Lukas Eder wrote:
>>
>> Hello Kevin,
>>
>> Personally, I feel that contributing to the official driver might be a
>> good approach, too :-)
>>
>> But I am aware of these problems with pgjdbc. Also, it doesn't look
>> like the pgjdbc community will make a move forward any time soon.
>> There are still so many SQLFeatureNotSupportedExceptions being thrown
>> from this driver, unloading all the serialisation / deserialisation
>> work to the clients.
>>
>> jOOQ's Oracle support uses standard SQLData, SQLInput, SQLOutput, so
>> there's no reason why this shouldn't work for a "more suitable"
>> Postgres JDBC driver, in principle. But jOOQ's internals are
>> hard-wired to the official pgjdbc driver's behaviour, so it'll take a
>> bit of effort to make jOOQ work with your driver, with respect to
>> UDTs.
>>
>> This makes me think whether the current SQLDialect model is accurate
>> enough, or whether jOOQ should eventually migrate to a "feature set
>> model", where a SQLDialect is just a bunch of default values for all
>> possible feature flags. Example feature flags:
>>
>> - supports-udts={ no | postgres | jdbc }
>> - supports-arrays={ no | oracle | jdbc }
>> - supports-procedures={ no ... }
>>
>> Any feedback to this idea from the group?
>>
>> Cheers
>> Lukas
>>
>> 2013/4/8 <[email protected]>:
>> > I got fed up with pgjdbc not supporting any of the UDT or custom mapping
>> > functions (i.e. getObject(int idx, customTypeMap)). So I wrote a new
>> > driver. It's available on @ https://github.com/kdubb/pgjdbc-ng. It
>> > passes
>> > 85% of the unit tests from the original project along with all the new
>> > conforming features.
>> >
>> > I've been using jOOQ 3 quite a bit and am wondering how much work is
>> > involved in making it work correctly with UDT's in the standard way
>> > (through
>> > SQLData and SQLInput/SQLOutput)?
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "jOOQ User Group" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to [email protected].
>> > For more options, visit https://groups.google.com/groups/opt_out.
>> >
>> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "jOOQ User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
--
You received this message because you are subscribed to the Google Groups "jOOQ
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.