>From what i understand, the postgres jdbc driver does support
reading/writing from a result set or command via a input or output stream,
however from my testing, it looks like it just buffers the whole thing in
memory. I actually had one case where i was able to insert 1.2GB of content
into a bytea column, but could not retrieve it. Something about invalid
allocation size. Postgres's limit is 1GB and they want you to use the large
object api. I think it stores it the file outside of the normal database
table file.

On Tue, Aug 28, 2018 at 10:18 AM Christopher Schultz <
ch...@christopherschultz.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Torsten,
>
> On 8/28/18 09:27, Torsten Krah wrote:
> > Am Dienstag, den 28.08.2018, 09:21 -0400 schrieb Christopher
> > Schultz:
> >> Interesting. I wonder why Postgres decided not to support that
> >> through the standard JDBC API.
> >>
> >> Have you tried setting the "compatible" flag on the connection
> >> just to see if it works for you?
> >
> > I am curious - afaik the standard JDBC API does not support e.g. to
> > use seek() or truncate() on the BLOB to fast forward to some
> > position in the file - how would you do that with the standard API
> > Christopher - maybe i've missed that feature?
> >
> > The LargeObject API does support this.
>
> I've never tried doing random-access reads into BLOBs in a database
> before... that seems like an architectural mistake to me.
>
> But if I had to, I'd try to:
>
> ResultSet rs = ...;
> Blob blob = rs.getBlob("bigfield");
>
> // Take a chunk out of the middle
> byte[] chunk = blob.getBytes(start, length);
> // or
> InputStream readFromMiddle = blob.getBinaryStream(strart, length);
>
> // Truncate the blob
> blob.truncate(newEndPos);
>
> The Blob API isn't really that extensive... I'm not sure how you could
> have missed those methods in there. It's really all there is.
>
> Now... if Postgres artificially places a 1GiB limit on everything that
> goes through that API, well, then you are kind of screwed.
>
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/
>
> iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAluFWbwACgkQHPApP6U8
> pFgpoxAAtWj6cROWQXgw/r6H/OeoHnOZI262JqajXi7L3QycYzVwNENNQ1v+fKNS
> AegRgAUTDnw0KBk2hPkZHaCEcNIuzshvxA9Vs2ptLynwEjoGXD17+ZXR85uy4Iq/
> bfmnhSAbDRiNg9VoTFw4Vmbx+dNXZUT8jfkGdWWvTH/27yws72vXSLH/bhnAa/IU
> R1eNqmWGbBIQiQaWk2YhSDKWfuQoNUXxiJPYR07u4MhtxGctPHN7nudZb2ZjFGaF
> qCidhoE6/tuNzkpLyMvrvMGHGCR3mP9Vc1UyHtwwckPTCV+rctV2MfpD7RG00K+m
> ABlhCpkw7n0YEGFe2GQet7xF5dB8aLtcv/XimE0/rkQzhzwMkFtRLS30ONwoCiPh
> ID3gLWOmLaAtlCjgO3/FWZbYqxs2yZYyO3xerukHoji4bUYPwfa1otJBQwrjVgZI
> OQGx4Wy173fjRsIXxdUzgw5hpwocLodtu/U+NGWWpTNNq83/1hw8hEaMHl3p729E
> qifq7DDAnws5nlchr2Njf24tScmNtqw1IZV5T2MU3LDvrhi3t5RukuMe5sSyl6S6
> wEqVfSVHNP/IP7XxtpalwbKSiU0D0kwTA9iBmOPA+aQfD05kFKAD9wT9YHgF5wAw
> NGFZBgIaB374sJWZgMQRl/dfHNrrfXV9Lk7OnHk+vXsrakd2O24=
> =6hok
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to