Tatsuo Ishii <ishii@postgresql.org> writes:
> Done. Inclded are C test program along with modified fe-exec.c.
> The modification made to fe-exec.c is sending Sync after Parse, Bind
> and Describe. Pgpool-II does this in order to get current transaction
> status.
I tried this but didn't have any luck crashing the backend. libpq gets
tremendously confused by the extra ReadyForQuery responses, which is
unsurprising. The postmaster log shows
LOG: could not send data to client: Broken pipe
ERROR: relation "foo" does not exist at character 15
STATEMENT: SELECT * FROM foo
ERROR: unnamed prepared statement does not exist
ERROR: current transaction is aborted, commands ignored until end of transaction block
ERROR: current transaction is aborted, commands ignored until end of transaction block
STATEMENT: SELECT NULL , n.nspname, ct.relname, a.attname, a.attnum, ci.relname FROM pg_catalog.pg_namespace n,
pg_catalog.pg_classct, pg_catalog.pg_class ci, pg_catalog.pg_attribute a, pg_catalog.pg_index i WHERE
ct.oid=i.indrelidAND ci.oid=i.indexrelid AND a.attrelid=ci.oid AND i.indisprimary AND ct.relname =
'mst_Ucompany_feature_setting' AND ct.relnamespace = n.oid AND n.nspname = 'foo' ORDER BY 1, 2, 3
So the "unnamed prepared statement does not exist" bit seems to be
related to what you are talking about, but it doesn't actually fail.
regards, tom lane