Re: [INTERFACES] JDBC API to send SimpleQuery ('Q')?

From: Karthik Segpi <karthik(dot)segpi(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: [INTERFACES] JDBC API to send SimpleQuery ('Q')?
Date: 2014-04-25 15:54:46
Message-ID: CACD7L9GiL2-9PstHg5Cd6i+vVwdhTgNFcp0C3pSLgEVSmBjAgg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces pgsql-jdbc

I have the following Java code running in tomcat 7 using
'postgresql-9.3-1101-jdbc41.jar' driver.

String str = "insert into tab1(a,b) values ('name', 'address');"
Statement stmt = conn.createStatement();
stmt.execute(str);

Considering that this is *not* a PreparedStatement, I would have expected
the driver to issue a Simple Query ('Q') instead of an ExtendedQuery ('P').
However, when I print the incoming connection at my middleware (pgpool), I
see the query being received is an ExtendedQuery ('P'). When I execute the
same query in psql, it triggers a Simple Query ('Q') as expected.

What am I missing here? Are there any other settings that I need to tweak?

Thanks

On Fri, Apr 25, 2014 at 11:30 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Karthik Segpi <karthik(dot)segpi(at)gmail(dot)com> writes:
> > I have the following Java code running in tomcat 7 using
> > 'postgresql-9.3-1101-jdbc41.jar' driver.
>
> > String str = "insert into tab1(a,b) values ('name', 'address');"
> > Statement stmt = conn.createStatement();
> > stmt.execute(str);
>
> > Considering that this is *not* a PreparedStatement, I would have expected
> > the driver to issue a Simple Query ('Q') instead of an ExtendedQuery
> ('P').
> > However, when I print the incoming connection at my middleware (pgpool),
> I
> > see the query being received is an ExtendedQuery ('P'). When I execute
> the
> > same query in psql, it triggers a Simple Query ('Q') as expected.
>
> You'd be better off asking about the behavior of the JDBC driver on
> pgsql-jdbc, but offhand I see nothing unreasonable about it if they
> choose to use extended query protocol exclusively. Less code for
> them to maintain, and it's not really less efficient as long as they
> ensure messages get grouped into network packets appropriately.
>
> (psql goes the other direction, and doesn't use extended protocol
> at all, AFAIR.)
>
> > What am I missing here? Are there any other settings that I need to
> tweak?
>
> I think you could still force use of simple query mode by telling the
> driver to use protocol version 2, but that has lots of downsides.
>
> regards, tom lane
>

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Karthik Segpi 2014-04-25 15:56:24 Re: [INTERFACES] JDBC API to send SimpleQuery ('Q')?
Previous Message Tom Lane 2014-04-25 15:30:18 Re: JDBC API to send SimpleQuery ('Q')?

Browse pgsql-jdbc by date

  From Date Subject
Next Message Karthik Segpi 2014-04-25 15:56:24 Re: [INTERFACES] JDBC API to send SimpleQuery ('Q')?
Previous Message Tom Lane 2014-04-25 15:30:18 Re: JDBC API to send SimpleQuery ('Q')?