On Thu, 15 Dec 2005, Tom Lane wrote:
> It probably is. However, sending an empty query string to the backend
> to execute ought to be competitive with a bare Sync. libpq supports
> that; does JDBC?
You can say Statement.execute(""), but that still does the full extended
query protocol setup:
14:25:48.375 (1) FE=> Parse(stmt=null,query="",oids={})
14:25:48.377 (1) FE=> Bind(stmt=null,portal=null)
14:25:48.378 (1) FE=> Describe(portal=null)
14:25:48.378 (1) FE=> Execute(portal=null,limit=0)
14:25:48.378 (1) FE=> Sync
14:25:48.379 (1) <=BE ParseComplete [null]
14:25:48.380 (1) <=BE BindComplete [null]
14:25:48.380 (1) <=BE NoData
14:25:48.380 (1) <=BE EmptyQuery
14:25:48.381 (1) <=BE ReadyForQuery(I)
Testing this with the V2 protocol reveals an issue, but it looks like
the server's fault.
14:33:42.550 (1) FE=> Query("")
14:33:42.550 (1) <=BE EmptyQuery
At this point the driver is waiting for ReadyForQuery, but the server is
waiting for another query. The documentation states, "If a completely
empty (no contents other than whitespace) query string is received, the
response is EmptyQueryResponse followed by ReadyForQuery."
Kris Jurka