[Pljava-dev] Re: postgresql jdbc driver

Thomas Hallgren thhal at mailblocks.com
Thu Feb 24 20:03:49 UTC 2005


Bart,
> So why do you also need the jdbc3-810 driver?
> 
I realize that I might have misread what you asked for. But if the 
requirements that he listed was an answer to "why they use the jdbc3-810 
driver as a complement (or instead of?) the PLJava driver", then his 
answer just make no sense at all:

>       # Full support of ANSI SQL 99 (CASE, all JOIN types, ..)
Neither of the JDBC drivers are concerned with this.

>       # Support of Views and Views on Views
Neither of the JDBC drivers are concerned with this.

>       # Support of User Defined Functions
>       (preferably via SQLJ - Java running in the database)
PLJava *is* user defined functions and it's JDBC driver allows you to 
call other JDBC driver functions through SQL. Neither of the JDBC 
drivers are concerned with SQLJ.

>       # Inline Views (e.g. SELECT ... FROM (SELECT xx FROM yy) ..)
>       # JDBC 3.0 Support (especially RowSet)
>
As stated before, RowSet's just makes no sense at all in the PLJava 
domain, i.e. inside of a user defined function running inside the 
database backend.

A final note and I'm not at all sure it's in any way applicable:

Using the client jdbc driver inside of PLJava is a *very* bad idea since 
it would result in a new remote connection to the backend and hence, not 
only severely degraded performance but also a different transaction. The 
PLJava jdbc driver runs within the transaction that was started by the 
caller of the user defined function. Virtually everything will break if 
your violate transaction boundaries.

Regards,
Thomas Hallgren




More information about the Pljava-dev mailing list