diff -Nacr a/connection.c b/connection.c
*** a/connection.c	2016-01-10 22:25:14.000000000 +0900
--- b/connection.c	2016-03-29 09:24:39.000000000 +0900
***************
*** 1474,1488 ****
  	CONNLOCK_RELEASE(conn);
  }
  
- void	CC_on_abort_partial(ConnectionClass *conn)
- {
- mylog("CC_on_abort_partial in\n");
- 	ProcessRollback(conn, TRUE, TRUE);
- 	CONNLOCK_ACQUIRE(conn);
- 	CC_discard_marked_objects(conn);
- 	CONNLOCK_RELEASE(conn);
- }
- 
  static BOOL
  is_setting_search_path(const char *query)
  {
--- 1474,1479 ----
diff -Nacr a/connection.h b/connection.h
*** a/connection.h	2016-01-10 22:25:14.000000000 +0900
--- b/connection.h	2016-03-29 09:24:47.000000000 +0900
***************
*** 473,479 ****
  int			CC_send_cancel_request(const ConnectionClass *conn);
  void		CC_on_commit(ConnectionClass *conn);
  void		CC_on_abort(ConnectionClass *conn, UDWORD opt);
- void		CC_on_abort_partial(ConnectionClass *conn);
  void		ProcessRollback(ConnectionClass *conn, BOOL undo, BOOL partial);
  const char	*CC_get_current_schema(ConnectionClass *conn);
  int             CC_mark_a_object_to_discard(ConnectionClass *conn, int type, const char *plan);
--- 473,478 ----
diff -Nacr a/dlg_specific.c b/dlg_specific.c
*** a/dlg_specific.c	2016-01-10 22:25:14.000000000 +0900
--- b/dlg_specific.c	2016-03-28 17:05:17.000000000 +0900
***************
*** 1086,1100 ****
  	sprintf(tmp, "%d", comval->unique_index);
  	if (!SQLWritePrivateProfileString(sectionName, INI_UNIQUEINDEX, tmp, fileName))
  		errc--;
- 	/*
- 	 * Never update the onlyread from this module.
- 	 */
- 	if (stricmp(ODBCINST_INI, fileName) == 0)
- 	{
- 		sprintf(tmp, "%d", comval->onlyread);
- 		SQLWritePrivateProfileString(sectionName, INI_READONLY, tmp,
- 									 fileName);
- 	}
  
  	sprintf(tmp, "%d", comval->use_declarefetch);
  	if (!SQLWritePrivateProfileString(sectionName, INI_USEDECLAREFETCH, tmp, fileName))
--- 1086,1091 ----
diff -Nacr a/execute.c b/execute.c
*** a/execute.c	2016-01-10 22:25:14.000000000 +0900
--- b/execute.c	2016-03-29 09:35:33.000000000 +0900
***************
*** 193,199 ****
  
  	mylog("%s: calling PGAPI_Execute...\n", func);
  
- 	flag = SC_is_with_hold(stmt) ? PODBC_WITH_HOLD : 0;
  	result = PGAPI_Execute(hstmt, flag);
  
  	mylog("%s: returned %hd from PGAPI_Execute\n", func, result);
--- 193,198 ----
diff -Nacr a/info.c b/info.c
*** a/info.c	2016-01-10 22:25:14.000000000 +0900
--- b/info.c	2016-03-29 09:28:33.000000000 +0900
***************
*** 817,830 ****
  			value = SQL_BS_SELECT_EXPLICIT | SQL_BS_ROW_COUNT_EXPLICIT;
  			break;
  		case SQL_CATALOG_NAME:
- 			len = 0;
  			if (CurrCat(conn))
  				p = "Y";
  			else
  				p = "N";
  			break;
  		case SQL_COLLATION_SEQ:
- 			len = 0;
  			p = "";
  			break;
  		case SQL_CREATE_ASSERTION:
--- 817,828 ----
***************
*** 872,878 ****
  			value = SQL_DI_CREATE_INDEX | SQL_DI_DROP_INDEX;
  			break;
  		case SQL_DESCRIBE_PARAMETER:
- 			len = 0;
  			p = "N";
  			break;
  		case SQL_DROP_ASSERTION:
--- 870,875 ----
***************
*** 928,934 ****
  				value = NAMEDATALEN_V73 - 1;
  			break;
  		case SQL_MAX_ROW_SIZE_INCLUDES_LONG:
- 			len = 0;
  			p = "Y";
  			break;
  		case SQL_PARAM_ARRAY_ROW_COUNTS:
--- 925,930 ----
diff -Nacr a/pgapifunc.h b/pgapifunc.h
*** a/pgapifunc.h	2016-01-10 22:25:14.000000000 +0900
--- b/pgapifunc.h	2016-03-29 09:36:24.000000000 +0900
***************
*** 22,28 ****
  #define	PODBC_INHERIT_CONNECT_OPTIONS	(1L << 1)
  /*	Internal flags for PGAPI_Exec... functions */
  #define	PODBC_WITH_HOLD			1L
- #define	PODBC_PER_STATEMENT_ROLLBACK	(1L << 1)
  /*	Flags for the error handling */
  #define	PODBC_ALLOW_PARTIAL_EXTRACT	1L
  #define	PODBC_ERROR_CLEAR		(1L << 1)
--- 22,27 ----
diff -Nacr a/statement.h b/statement.h
*** a/statement.h	2016-01-10 22:25:14.000000000 +0900
--- b/statement.h	2016-03-28 17:20:17.000000000 +0900
***************
*** 325,331 ****
  #define	SC_get_errornumber(a) (a->__error_number)
  #define	SC_set_errornumber(a, n) (a->__error_number = n)
  #define	SC_get_errormsg(a) (a->__error_message)
- #define	SC_get_errormsg(a) (a->__error_message)
  #define	SC_is_prepare_statement(a) (0 != (a->prepare & PREPARE_STATEMENT))
  #define	SC_get_prepare_method(a) (a->prepare & (~PREPARE_STATEMENT))
  
--- 325,330 ----
