[JDBC] Efficient use of ON CONFLICT DO UPDATE with the PostgreSQL JDBC driver - Mailing list pgsql-jdbc

Hello,

I've at last had an opportunity to use PostgreSQL 9.6 (instead of 9.4) for a project, and have been able to use the ON CONFLICT DO UPDATE clause. As it can involve repeating parameter values (including, as is my case, large binary files), I'm wondering if there's any performance or resource-usage side effects (or workarounds) when doing something like this:

INSERT INTO foo (c_uuid, file_data, file_name) VALUES (?, ?, ?)
ON CONFLICT (c_uuid) DO UPDATE SET file_data = ?, file_name = ?

On the Java side, that means invoking PreparedStatement::setBinaryStream TWICE for the same data.

I'm not noticing side effects on localhost (but haven't profiled either).  Is this fine, or a potential problem?   Is there a better approach?

Thanks,
Christopher

pgsql-jdbc by date:

Previous
From: Rich Shepard
Date:
Subject: Re: Questions on use
Next
From: Dave Cramer
Date:
Subject: Re: [JDBC] Efficient use of ON CONFLICT DO UPDATE with the PostgreSQLJDBC driver