Hi,

I just saw that you committed the DESCRIBE patch.

Please, also add this small change that adds ecpg_raise()
calls to ECPGdescribe() to return the proper sqlca error
in error paths for:
- unsupported call for DESCRIBE INPUT
- no such connection name
- no such prepared statement

Thanks and best regards,
Zoltán Böszörményi

-- 
Bible has answers for everything. Proof:
"But let your communication be, Yea, yea; Nay, nay: for whatsoever is more
than these cometh of evil." (Matthew 5:37) - basics of digital technology.
"May your kingdom come" - superficial description of plate tectonics

----------------------------------
Zoltán Böszörményi
Cybertec Schönig & Schönig GmbH
http://www.postgresql.at/

*** /home/zozo/cvs/pgsql/pgsql/src/interfaces/ecpg/ecpglib/descriptor.c	2010-01-15 12:55:24.000000000 +0100
--- pgsql.3/src/interfaces/ecpg/ecpglib/descriptor.c	2010-01-15 13:14:35.000000000 +0100
***************
*** 739,752 ****
  
  	/* DESCRIBE INPUT is not yet supported */
  	if (input)
  		return ret;
  
  	con = ecpg_get_connection(connection_name);
  	if (!con)
! 		return false;
  	prep = ecpg_find_prepared_statement(stmt_name, con, NULL);
  	if (!prep)
  		return ret;
  
  	va_start(args, stmt_name);
  
--- 739,762 ----
  
  	/* DESCRIBE INPUT is not yet supported */
  	if (input)
+ 	{
+ 		ecpg_raise(line, ECPG_UNSUPPORTED, ECPG_SQLSTATE_ECPG_INTERNAL_ERROR, "DESCRIBE INPUT");
  		return ret;
+ 	}
  
  	con = ecpg_get_connection(connection_name);
  	if (!con)
! 	{
! 		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);
  	if (!prep)
+ 	{
+ 		ecpg_raise(line, ECPG_INVALID_STMT, ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME, stmt_name);
  		return ret;
+ 	}
  
  	va_start(args, stmt_name);
  
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to