From: | Dave Cramer <pg(at)fastcrypt(dot)com> |
---|---|
To: | Alex Ignatov <alexign(at)gmail(dot)com> |
Cc: | List <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | Re: Binary transfer not working |
Date: | 2015-04-07 21:15:17 |
Message-ID: | CADK3HHLo9LWZJycbeMTQipeaWj8ugogoV6bTEQaZUpoEv8243w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Alex,
You are not doing anything wrong. Turns out forceBinaryTransfer doesn't
work because:
public void setPrepareThreshold(int newThreshold) throws SQLException {
checkClosed();
if (newThreshold < 0) {
forceBinaryTransfers = true;
newThreshold = 1;
}
else
*forceBinaryTransfers = false*;
this.m_prepareThreshold = newThreshold;
}
I'm trying to figure out if we should ever reset forceBinaryTransfers
I removed the line in italics above in the snapshot
https://oss.sonatype.org/content/repositories/snapshots/org/postgresql/postgresql/9.4-1201-jdbc41-SNAPSHOT/
Let me know if that works
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca
On 6 April 2015 at 10:38, Alex Ignatov <alexign(at)gmail(dot)com> wrote:
> Hello!
> Im testing jdbc binary transfer mode but i can't make it works as it
> should.
> Network packet dump always shows me that for example "dtrntran" TIMESTAMP column
> is transfering in text and not in binary representation as it should.
> Debug log shows me that binary mode is on, but regardless
> org.postgresql.forceBinary=false/true it is always text.
> What am i doing wrong?
> jdbc version - postgresql-9.4-1201.jdbc4.jar
> postgresql version - 9.4.1
> This is my test code. javac vm arguments is
> -Dorg.postgresql.forceBinary=true
>
> import java.sql.Connection;
> import java.sql.Driver;
> import java.sql.DriverManager;
> import java.sql.PreparedStatement;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.util.Properties;
> import java.sql.Statement;
> import java.sql.Timestamp;
>
> public class TestMe {
> private static java.sql.Timestamp getCurrentTimeStamp() {
>
> java.util.Date today = new java.util.Date();
> return new java.sql.Timestamp(today.getTime());
>
> }
>
> public static void main(String[] args) throws SQLException {
>
> String url = "jdbc:postgresql://thunder:5432/test";
> Connection conn = null;
> org.postgresql.Driver.setLogLevel(org.postgresql.Driver.DEBUG);
>
> Properties connectionProps = new Properties();
> connectionProps.put("user", "***");
> connectionProps.put("password", "***");
> connectionProps.put("loglevel", "2");
> conn = DriverManager.getConnection(url, connectionProps);
> select(conn);
> }
>
> private static void select(Connection conn) {
> try {
> PreparedStatement fs = conn.prepareStatement("SELECT dtrntran
> FROM trn order by itrnnum limit 1");
> ResultSet rs = fs.executeQuery();
> for (int i = 0; i < 1; i++) {
> rs.next();
> }
> rs.close();
> System.out.println("org.postgresql.forceBinary= "
> + Boolean.getBoolean("org.postgresql.forceBinary"));
> } catch (SQLException e) {
> }
>
> }
> }
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Royce Ausburn | 2015-04-09 02:30:25 | Bug report: TCP deadlock between JDBC & Postgres |
Previous Message | Dave Cramer | 2015-04-07 10:50:17 | Re: ?currentSchema work? |