The following bug has been logged online:
Bug reference: 2629
Logged by: Andy McCurdy
Email address: andy.mccurdy@emergent.net
PostgreSQL version: 8.1.4
Operating system: Windows XP
Description: libpq - Cannot deallocate prepared statement created
with PQprepare()
Details:
According to http://www.postgresql.org/docs/8.1/interactive/libpq-exec.html,
the last statement in the PQprepare() function description suggests that a
user can run the statement: "DEALLOCATE [statement name]" with PQexec() to
deallocate a statement prepared with PQprepare(). When trying to do this, I
consistently get the error message:
ERROR: prepared statement "[statement name]" does not exist
Here's a snippet of code that illustrates what I am attempting to do:
int main()
{
PGconn* conn;
PGresult* result;
conn = PQsetdbLogin("localhost", "5432", NULL, NULL, "postgres", "postgres",
"postgres");
result = PQprepare(conn, "MyQuery", "select * from pg_stat_activity", 0,
NULL);
/*
THE FOLLOW PQEXEC() FAILS. Error message says: ERROR: prepared statement
"myquery" does not exist"
*/
result = PQexec(conn, "DEALLOCATE MyQuery");
result = PQexec(conn, "PREPARE MyQuery AS select * from pg_stat_activity");
/*
THIS WORKS
*/
result = PQexec(conn, "DEALLOCATE MyQuery");
return 0;
}