Re: assertion failure w/extended query protocol

Andres Freund <andres@2ndquadrant.com>

From: Andres Freund <andres@2ndquadrant.com>
To: pgsql-hackers@postgresql.org
Cc: Peter Geoghegan <peter@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>
Date: 2012-10-19T18:01:14Z
Lists: pgsql-hackers

Attachments

On Friday, October 19, 2012 06:41:27 PM Peter Geoghegan wrote:
> On 19 October 2012 17:19, Robert Haas <robertmhaas@gmail.com> wrote:
> > Rushabh Lathia of the EnterpriseDB development team and I have been
> > doing some testing of the extended query protocol and have found a
> > case where it causes an assertion failure.  Here's how to reproduce:
> > 
> > 1. Apply the attached patch to teach psql how to use the extended
> > query protocol.  Compile, install.
> > 
> > 2. Start the modified psql and do this:
> > 
> > \set PROTOCOL extended
> > PREPARE stmt as select 1;
> > CREATE TEMPORARY TABLE tmptbl AS EXECUTE stmt;
> > 
> > The result is:
> > 
> > TRAP: FailedAssertion("!(qry->commandType != CMD_UTILITY)", File:
> > "utility.c", Line: 1516)f
> 
> I'm reasonably confident that commit
> 9dbf2b7d75de5af38d087cbe2b1147dd0fd10f0a caused this breakage.

Simple fix attached. 

Btw, do you plan to submit that psql patch at some point? I repeatedly wished 
to be able to use the extended protocol without writing code or misusing 
pgbench exactly to test stuff like this.

Greetings,

Andres
-- 
Andres Freund		http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Restructure SELECT INTO's parsetree representation into CreateTableAsStmt.