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
>
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')? |
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')? |