Re: Bug in 7.4_213 driver: returns VARCHAR instead of - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: Bug in 7.4_213 driver: returns VARCHAR instead of
Date
Msg-id 4109904D.3090807@opencloud.com
Whole thread Raw
In response to Re: Bug in 7.4_213 driver: returns VARCHAR instead of  ("j.random.programmer" <javadesigner@yahoo.com>)
List pgsql-jdbc
j.random.programmer wrote:

> Why are the getXXXStream methods "rarely the correct
> thing" ?
> Ignoring current implementation artifacts (if any),
> they
> are almost always the _right_ thing for large amounts
> of
> data.

The point is that it *is* all about current implementation artifacts.
There's no way to stream a text value from the server on demand using
the current protocol. So if you use getXXXStream() with the current
driver, you always end up wrapping data that's completely on-heap anyway
with an unnecessary stream interface. Note that this is more of a
client/server protocol issue than a driver issue (and it's not obvious
how to solve it at the protocol level anyway).

As Barry said, returning LONGVARCHAR implies the preferred access method
is via getXXXStream() (see the jdbc type mapping tables), but those
aren't the best methods for accessing text columns in our current
implementation. And the metadata should reflect the characteristics of
the driver implementation actually used, surely..

-O

pgsql-jdbc by date:

Previous
From: "j.random.programmer"
Date:
Subject: Re: Bug in 7.4_213 driver: returns VARCHAR instead of
Next
From: Nick Selva
Date:
Subject: Calling PGSQL Stored function thru JDBC