diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-10-18 22:00:42 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-10-18 22:00:42 +0000 |
commit | 9d9cfb1ad75b60f4e9258078d7f483ea123dc7b2 (patch) | |
tree | 9d908c4439d2025f1e424dfe599c7eb53dc74a41 /src/interfaces/libpq/fe-protocol3.c | |
parent | b3fe6bcafe8f54ca354495a01eeff1b0a5353892 (diff) | |
download | postgresql-9d9cfb1ad75b60f4e9258078d7f483ea123dc7b2.tar.gz postgresql-9d9cfb1ad75b60f4e9258078d7f483ea123dc7b2.zip |
Add PQprepare/PQsendPrepared functions to libpq to support preparing
statements without necessarily specifying the datatypes of their parameters.
Abhijit Menon-Sen with some help from Tom Lane.
Diffstat (limited to 'src/interfaces/libpq/fe-protocol3.c')
-rw-r--r-- | src/interfaces/libpq/fe-protocol3.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/interfaces/libpq/fe-protocol3.c b/src/interfaces/libpq/fe-protocol3.c index cec7a672058..af88ddc8f43 100644 --- a/src/interfaces/libpq/fe-protocol3.c +++ b/src/interfaces/libpq/fe-protocol3.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.18 2004/10/16 22:52:54 tgl Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-protocol3.c,v 1.19 2004/10/18 22:00:42 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -220,6 +220,15 @@ pqParseInput3(PGconn *conn) conn->asyncStatus = PGASYNC_READY; break; case '1': /* Parse Complete */ + /* If we're doing PQprepare, we're done; else ignore */ + if (conn->queryclass == PGQUERY_PREPARE) + { + if (conn->result == NULL) + conn->result = PQmakeEmptyPGresult(conn, + PGRES_COMMAND_OK); + conn->asyncStatus = PGASYNC_READY; + } + break; case '2': /* Bind Complete */ case '3': /* Close Complete */ /* Nothing to do for these message types */ @@ -1118,7 +1127,7 @@ pqEndcopy3(PGconn *conn) * If we sent the COPY command in extended-query mode, we must * issue a Sync as well. */ - if (conn->ext_query) + if (conn->queryclass != PGQUERY_SIMPLE) { if (pqPutMsgStart('S', false, conn) < 0 || pqPutMsgEnd(conn) < 0) |