Обсуждение: BUG #1178: PQexecPrepared - PostgreSQL 7.4.1
The following bug has been logged online:
Bug reference: 1178
Logged by: Theo Kramer
Email address: theo@flame.co.za
PostgreSQL version: 7.4
Operating system: Redhat Linux 9
Description: PQexecPrepared - PostgreSQL 7.4.1
Details:
I am having a problem with PQexecPrepared() as follows (derived from
testlibpq3.c)
PQexec(conn,
"PREPARE S0000123_000 (text) AS SELECT * from test1 WHERE t = $1");
When invoking PQexecPrepared() I get the following message from the backend
ERROR: prepared statement "S0000123_0000" does not exist
Yet if I use
PQexec(conn, "EXECUTE S0000123_0000 ('ho there')");
instead of PQexecPrepared() then all works perfectly.
Sounds like a bug to me...?
"PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes:
> PQexec(conn,
> "PREPARE S0000123_000 (text) AS SELECT * from test1 WHERE t = $1");
> When invoking PQexecPrepared() I get the following message from the backend
> ERROR: prepared statement "S0000123_0000" does not exist
Case sensitivity. PQexecPrepared takes its name argument literally,
but anything inside a SQL command will get downcased unless quoted.
So you actually prepared "s0000123_000".
regards, tom lane
On Tue, 2004-06-22 at 19:23, Tom Lane wrote: > "PostgreSQL Bugs List" <pgsql-bugs@postgresql.org> writes: > > PQexec(conn, > > "PREPARE S0000123_000 (text) AS SELECT * from test1 WHERE t = $1"); > > When invoking PQexecPrepared() I get the following message from the backend > > ERROR: prepared statement "S0000123_0000" does not exist > > Case sensitivity. PQexecPrepared takes its name argument literally, > but anything inside a SQL command will get downcased unless quoted. > So you actually prepared "s0000123_000". > Many thanks - perhaps a gotcha in the documentation for PQexecPrepared() would useful... Regards Theo