Let me please bump the thread.
Just in case, I'm PgJDBC committer.
PgJDBC receives requests to "support CLOB" from time to time, however, I believe it is impossible without the support from the database.
To my best knowledge, the database does not have APIs for "streaming large text data".
The only "streaming large binary data" API I know is LargeObject which seems to be old-fashioned.
I believe Java is not the only client that wants streaming access for binary and text data.
Here's a recent pull request to PgJDBC
https://github.com/pgjdbc/pgjdbc/pull/1892 where Andrew suggests to add BLOB/CLOB support via bytea/text,
and apparently, Andrew is surprised that the database lacks BLOB/CLOB support.
Any ideas on the way to proceed here?
I don't think it is right to implement Clob via text, especially in case the database provides its own "large text with streaming" datatype in the future.
The concerns to avoid "Clob maps to text" could be:
a) Once the behavior is implemented, it is hard to change. That is applications would rely on it (and it becomes a defacto standard), and it would be hard to move to the proper "text with streaming API" datatype.
b) If we make «clob is text», then people might start using update/substring APIs (which is the primary motivation for Clob) without realizing there’s full value update behind the scenes. Currently, they can use setString/getString for text, and it is crystal clear that the text is updated fully on every update.
Vladimir