Thread: A prepared statement ERROR due to EMPTY_QUERY is defined as a static Instance.
A prepared statement ERROR due to EMPTY_QUERY is defined as a static Instance.
From
Naoya Anzai
Date:
Hi All, I have found an odd movement when using multiple connections with prepareStatement(""). The following ERROR message appeared. org.postgresql.util.PSQLException: ERROR: prepared statement "S_1" does not exist In org/postgresql/core/v3/QueryExecutorImpl.java, EMPTY_QUERY instance is defined as a static instance. --- private final static SimpleQuery EMPTY_QUERY = new SimpleQuery(new String[] { "" }, null); --- For that reason, After CONNECTION-A has prepared EMPTY_QUERY already, If CONNECTION-B tries to execute EMPTY_QUERY for the first time, then CONNECTION-B sends a bind message to PostgreSQL without prepare. I attached a sample source and a patch. Please confirm it. Best Regards, Naoya --- Naoya Anzai Engineering Department NEC Soft, Ltd. E-Mail: anzai-naoya@mxu.nes.nec.co.jp ---
Attachment
Re: A prepared statement ERROR due to EMPTY_QUERY is defined as a static Instance.
From
Dave Cramer
Date:
Naoya,
Thanks for the patch! Curious how would you ever come across this ?
On Thu, Mar 6, 2014 at 11:18 PM, Naoya Anzai <anzai-naoya@mxu.nes.nec.co.jp> wrote:
Hi All,
I have found an odd movement when using multiple connections with prepareStatement("").
The following ERROR message appeared.
org.postgresql.util.PSQLException: ERROR: prepared statement "S_1" does not exist
In org/postgresql/core/v3/QueryExecutorImpl.java,
EMPTY_QUERY instance is defined as a static instance.
---
private final static SimpleQuery EMPTY_QUERY = new SimpleQuery(new String[] { "" }, null);
---
For that reason,
After CONNECTION-A has prepared EMPTY_QUERY already,
If CONNECTION-B tries to execute EMPTY_QUERY for the first time,
then CONNECTION-B sends a bind message to PostgreSQL without prepare.
I attached a sample source and a patch.
Please confirm it.
Best Regards,
Naoya
---
Naoya Anzai
Engineering Department
NEC Soft, Ltd.
E-Mail: anzai-naoya@mxu.nes.nec.co.jp
---
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
Re: A prepared statement ERROR due to EMPTY_QUERY is defined as a static Instance.
From
Naoya Anzai
Date:
Hi Dave, Thanks for your response. > Thanks for the patch! Curious how would you ever come across this ? This incident was reported by one of our customers. So I don't know why their application executes EMPTY_QUERY frequently... Regards, Naoya --- Naoya Anzai Engineering Department NEC Soft, Ltd. E-Mail: anzai-naoya@mxu.nes.nec.co.jp ---
Re: A prepared statement ERROR due to EMPTY_QUERY is defined as a static Instance.
From
David Johnston
Date:
Naoya Anzai wrote > Hi Dave, > > Thanks for your response. > >> Thanks for the patch! Curious how would you ever come across this ? > > This incident was reported by one of our customers. > So I don't know why their application executes EMPTY_QUERY frequently... > > Regards, The most obvious reason would be as a keep-alive query...I have no idea whether that is a wise decision compared to "SELECT 1;" or something that actually causes the server to perform work (i.e., what does the server do when it see the empty-string as input?). David J. -- View this message in context: http://postgresql.1045698.n5.nabble.com/A-prepared-statement-ERROR-due-to-EMPTY-QUERY-is-defined-as-a-static-Instance-tp5795067p5795476.html Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
Re: Re: A prepared statement ERROR due to EMPTY_QUERY is defined as a static Instance.
From
Dave Cramer
Date:
I have never seen anyone use an empty query before. I doubt it saves any bandwidth as I believe there would be a query response
On Mon, Mar 10, 2014 at 9:22 PM, David Johnston <polobo@yahoo.com> wrote:
Naoya Anzai wrote> Hi Dave,The most obvious reason would be as a keep-alive query...I have no idea
>
> Thanks for your response.
>
>> Thanks for the patch! Curious how would you ever come across this ?
>
> This incident was reported by one of our customers.
> So I don't know why their application executes EMPTY_QUERY frequently...
>
> Regards,
whether that is a wise decision compared to "SELECT 1;" or something that
actually causes the server to perform work (i.e., what does the server do
when it see the empty-string as input?).
David J.
--
View this message in context: http://postgresql.1045698.n5.nabble.com/A-prepared-statement-ERROR-due-to-EMPTY-QUERY-is-defined-as-a-static-Instance-tp5795067p5795476.html
Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
Re: Re: A prepared statement ERROR due to EMPTY_QUERY is defined as a static Instance.
From
Naoya Anzai
Date:
Hi, Empty Query has a query response('I') without any data. http://www.postgresql.org/docs/current/static/protocol-message-formats.html (see EmptyQueryResponse) In addition, PostgreSQL curtails the execution process. (see Postgres.c:exec_execute_message) Regards, Naoya > I have never seen anyone use an empty query before. I doubt it saves any bandwidth as I believe there would be a queryresponse > > Dave Cramer > > dave.cramer(at)credativ(dot)ca > http://www.credativ.ca > > > > On Mon, Mar 10, 2014 at 9:22 PM, David Johnston <polobo@yahoo.com> wrote: > > > Naoya Anzai wrote > > > Hi Dave, > > > > Thanks for your response. > > > >> Thanks for the patch! Curious how would you ever come across this ? > > > > This incident was reported by one of our customers. > > So I don't know why their application executes EMPTY_QUERY frequently... > > > > Regards, > > > The most obvious reason would be as a keep-alive query...I have no idea > whether that is a wise decision compared to "SELECT 1;" or something that > actually causes the server to perform work (i.e., what does the server do > when it see the empty-string as input?). > > David J. > > > > > -- > View this message in context: http://postgresql.1045698.n5.nabble.com/A-prepared-statement-ERROR-due-to-EMPTY-QUERY-is-defined-as-a-static-Instance-tp5795067p5795476.html > Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com. > > > > -- > Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-jdbc > > > > --- Naoya Anzai Engineering Department NEC Soft, Ltd. E-Mail: anzai-naoya@mxu.nes.nec.co.jp ---