From f496eb31b27856570eb62c16c00b0717fb0b63e7 Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Mon, 12 May 2008 16:30:17 +0000 Subject: Check for non-existant connection in prepare statement handling. Do not close files that weren't opened. --- src/interfaces/ecpg/ecpglib/prepare.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/interfaces/ecpg/ecpglib/prepare.c') diff --git a/src/interfaces/ecpg/ecpglib/prepare.c b/src/interfaces/ecpg/ecpglib/prepare.c index 6c0268bdb1d..d5e25a77299 100644 --- a/src/interfaces/ecpg/ecpglib/prepare.c +++ b/src/interfaces/ecpg/ecpglib/prepare.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.26 2008/02/07 11:09:13 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/prepare.c,v 1.26.2.1 2008/05/12 16:30:17 meskes Exp $ */ #define POSTGRES_ECPG_INTERNAL #include "postgres_fe.h" @@ -120,10 +120,11 @@ ECPGprepare(int lineno, const char *connection_name, const int questionmarks, co struct sqlca_t *sqlca = ECPGget_sqlca(); PGresult *query; - ecpg_init_sqlca(sqlca); - con = ecpg_get_connection(connection_name); + if (!ecpg_init(con, connection_name, lineno)) + return false; + /* check if we already have prepared this statement */ this = find_prepared_statement(name, con, &prev); if (this && !deallocate_one(lineno, ECPG_COMPAT_PGSQL, con, prev, this)) @@ -256,6 +257,9 @@ ECPGdeallocate(int lineno, int c, const char *connection_name, const char *name) con = ecpg_get_connection(connection_name); + if (!ecpg_init(con, connection_name, lineno)) + return false; + this = find_prepared_statement(name, con, &prev); if (this) return deallocate_one(lineno, c, con, prev, this); -- cgit v1.2.3