Added correct error handling in DESCRIBE statement processing by Boszormenyi Zoltan <zb@cybertec.at>.

This commit is contained in:
Michael Meskes 2010-01-15 13:19:12 +00:00
parent d3be71a208
commit eb730cf556

View File

@ -1,6 +1,6 @@
/* dynamic SQL support routines /* dynamic SQL support routines
* *
* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.34 2010/01/15 10:44:34 meskes Exp $ * $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.35 2010/01/15 13:19:12 meskes Exp $
*/ */
#define POSTGRES_ECPG_INTERNAL #define POSTGRES_ECPG_INTERNAL
@ -739,14 +739,24 @@ ECPGdescribe(int line, int compat, bool input, const char *connection_name, cons
/* DESCRIBE INPUT is not yet supported */ /* DESCRIBE INPUT is not yet supported */
if (input) if (input)
{
ecpg_raise(line, ECPG_UNSUPPORTED, ECPG_SQLSTATE_ECPG_INTERNAL_ERROR, "DESCRIBE INPUT");
return ret; return ret;
}
con = ecpg_get_connection(connection_name); con = ecpg_get_connection(connection_name);
if (!con) if (!con)
return false; {
ecpg_raise(line, ECPG_NO_CONN, ECPG_SQLSTATE_CONNECTION_DOES_NOT_EXIST,
connection_name ? connection_name : ecpg_gettext("NULL"));
return ret;
}
prep = ecpg_find_prepared_statement(stmt_name, con, NULL); prep = ecpg_find_prepared_statement(stmt_name, con, NULL);
if (!prep) if (!prep)
{
ecpg_raise(line, ECPG_INVALID_STMT, ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME, stmt_name);
return ret; return ret;
}
va_start(args, stmt_name); va_start(args, stmt_name);