Re: Binary transfer not working

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) {
> }
>
> }
> }
>
>
>

In response to

Browse pgsql-jdbc by date

  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?