Re: Binary transfer not working

Поиск
Список
Период
Сортировка
От Dave Cramer
Тема Re: Binary transfer not working
Дата
Msg-id CADK3HHLo9LWZJycbeMTQipeaWj8ugogoV6bTEQaZUpoEv8243w@mail.gmail.com
обсуждение исходный текст
Ответ на Binary transfer not working  (Alex Ignatov <alexign@gmail.com>)
Список 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@gmail.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) {
        }

    }
}



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: ?currentSchema work?
Следующее
От: Royce Ausburn
Дата:
Сообщение: Bug report: TCP deadlock between JDBC & Postgres