It was a news for me, that JDBC3ResultSet::getBinaryStream is actually reads all BLOB in one buffer and returns simple ByteArrayInputStream instead of InputStream with incremental BLOB reader.
|
public InputStream getBinaryStream(int col) throws SQLException { |
I believe many JDBC-users don't aware about it either.
It also turns out, that sqlite3 native API make it nearly impossible for current JDBC-implementation to read BLOB incrementally.
I've created an enhancement-request on SQLite-forum to discuss this issue and ask for additional API:
https://www.sqlite.org/forum/forumpost/323f31cffb
I'm surprised someone hasn't created such discussion a decade ago, but later better than never.
This issue is basically a link to SQLite forum discussion an a reminder to implement incremental BLOB reading if something changes on SQLite side.
It was a news for me, that
JDBC3ResultSet::getBinaryStreamis actually reads all BLOB in one buffer and returns simpleByteArrayInputStreaminstead ofInputStreamwith incremental BLOB reader.sqlite-jdbc/src/main/java/org/sqlite/jdbc3/JDBC3ResultSet.java
Line 190 in 8460f63
I believe many JDBC-users don't aware about it either.
It also turns out, that sqlite3 native API make it nearly impossible for current JDBC-implementation to read BLOB incrementally.
I've created an enhancement-request on SQLite-forum to discuss this issue and ask for additional API:
https://www.sqlite.org/forum/forumpost/323f31cffb
I'm surprised someone hasn't created such discussion a decade ago, but later better than never.
This issue is basically a link to SQLite forum discussion an a reminder to implement incremental BLOB reading if something changes on SQLite side.