On Wed, May 20, 2015 at 8:29 AM, Bruno Harbulot <br...@distributedmatter.net
> wrote:

>
>
> On Tue, May 19, 2015 at 10:50 PM, David G. Johnston <
> david.g.johns...@gmail.com> wrote:
>
>> On Tue, May 19, 2015 at 2:34 PM, Bruno Harbulot <
>> br...@distributedmatter.net> wrote:
>>
>>>
>>> While I can imagine a Java PostgreSQL driver that would use the libpq
>>> syntax, I can't see it being able to have any useful sort of
>>> half-compatibility with JDBC, whether it mimics its interfaces or not. I'm
>>> not sure it would be very useful at all, considering how much the existing
>>> tooling the the Java world relies on JDBC.
>>>
>>>
>> ​I won't claim to have studied this in great detail but there is a lot
>> more to the JDBC spec beyond the semantics of
>> "PreparedStatement.parse(String)". No need to throw out the baby with the
>> bath water and reinvent ResultSet, Connection and various other interfaces
>> that are perfectly usable before and after a suitable query has been fully
>> parsed.
>>
>> When I say "setInteger(1, new Integer(1000))" I don't care whether I had
>> to write "SELECT ? AS int_val" OR "SELECT $1 AS int_val"; though the later
>> has the nice property of providing corresponding numbers so that I would
>> write something like "SELECT $1 AS int_val, $1 AS int_val_2" and not be
>> forced to write "setInteger(2, new Integer(1000))" to pass in a value to
>> the second - but identical - parameter.  Maybe it violates the semantics
>> defined by the API - which I could be making too lightly of - but having
>> the same mechanics involved to solve the same problem - with only minor
>> semantic nuances to remember seems within the realm of reasonable.
>>
>>
>>
> Yes, you're probably right. Nevertheless, I'm not sure why anyone would
> switch to that format, knowing that other tools that are on top of JDBC
> would certainly not work very well (e.g. Groovy SQL, JOOQ, or ORMs like
> Hibernate, ...).
>
>
​Hadn't really pondered those :(  though to be honest a compatibility layer
to write out sequential $# instead of ? doesn't seem that difficult - but
it would depend on the codebase of the tool.  Unfortunately the driver
wouldn't be in a position to do the work.

David J​

Reply via email to