diff --git a/src/interfaces/odbc/bind.c b/src/interfaces/odbc/bind.c
index ce25c4a1c3a26e1b5f27a94024817bad3da264fd..5589db97374e50352b59b9d149787cc016c3535c 100644
--- a/src/interfaces/odbc/bind.c
+++ b/src/interfaces/odbc/bind.c
@@ -1,14 +1,14 @@
-/* Module:          bind.c
+/* Module:			bind.c
  *
- * Description:     This module contains routines related to binding 
- *                  columns and parameters.
+ * Description:		This module contains routines related to binding
+ *					columns and parameters.
  *
- * Classes:         BindInfoClass, ParameterInfoClass
+ * Classes:			BindInfoClass, ParameterInfoClass
  *
- * API functions:   SQLBindParameter, SQLBindCol, SQLDescribeParam, SQLNumParams,
- *                  SQLParamOptions(NI)
+ * API functions:	SQLBindParameter, SQLBindCol, SQLDescribeParam, SQLNumParams,
+ *					SQLParamOptions(NI)
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -33,39 +33,44 @@
 #include "sqlext.h"
 #endif
 
-/*      Bind parameters on a statement handle */
-
-RETCODE SQL_API SQLBindParameter(
-        HSTMT      hstmt,
-        UWORD      ipar,
-        SWORD      fParamType,
-        SWORD      fCType,
-        SWORD      fSqlType,
-        UDWORD     cbColDef,
-        SWORD      ibScale,
-        PTR        rgbValue,
-        SDWORD     cbValueMax,
-        SDWORD FAR *pcbValue)
+/*		Bind parameters on a statement handle */
+
+RETCODE SQL_API
+SQLBindParameter(
+				 HSTMT hstmt,
+				 UWORD ipar,
+				 SWORD fParamType,
+				 SWORD fCType,
+				 SWORD fSqlType,
+				 UDWORD cbColDef,
+				 SWORD ibScale,
+				 PTR rgbValue,
+				 SDWORD cbValueMax,
+				 SDWORD FAR * pcbValue)
 {
-StatementClass *stmt = (StatementClass *) hstmt;
-static char *func="SQLBindParameter";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	static char *func = "SQLBindParameter";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	if(stmt->parameters_allocated < ipar) {
+	if (stmt->parameters_allocated < ipar)
+	{
 		ParameterInfoClass *old_parameters;
-		int i, old_parameters_allocated;
+		int			i,
+					old_parameters_allocated;
 
 		old_parameters = stmt->parameters;
 		old_parameters_allocated = stmt->parameters_allocated;
 
-		stmt->parameters = (ParameterInfoClass *) malloc(sizeof(ParameterInfoClass)*(ipar));
-		if ( ! stmt->parameters) {
+		stmt->parameters = (ParameterInfoClass *) malloc(sizeof(ParameterInfoClass) * (ipar));
+		if (!stmt->parameters)
+		{
 			stmt->errornumber = STMT_NO_MEMORY_ERROR;
 			stmt->errormsg = "Could not allocate memory for statement parameters";
 			SC_log_error(func, "", stmt);
@@ -75,18 +80,23 @@ static char *func="SQLBindParameter";
 		stmt->parameters_allocated = ipar;
 
 		/* copy the old parameters over */
-		for(i = 0; i < old_parameters_allocated; i++) {
+		for (i = 0; i < old_parameters_allocated; i++)
+		{
 			/* a structure copy should work */
 			stmt->parameters[i] = old_parameters[i];
 		}
 
 		/* get rid of the old parameters, if there were any */
-		if(old_parameters)
+		if (old_parameters)
 			free(old_parameters);
 
-		/* zero out the newly allocated parameters (in case they skipped some, */
+		/*
+		 * zero out the newly allocated parameters (in case they skipped
+		 * some,
+		 */
 		/* so we don't accidentally try to use them later) */
-		for(; i < stmt->parameters_allocated; i++) {
+		for (; i < stmt->parameters_allocated; i++)
+		{
 			stmt->parameters[i].buflen = 0;
 			stmt->parameters[i].buffer = 0;
 			stmt->parameters[i].used = 0;
@@ -102,7 +112,8 @@ static char *func="SQLBindParameter";
 		}
 	}
 
-	ipar--;		/* use zero based column numbers for the below part */
+	ipar--;						/* use zero based column numbers for the
+								 * below part */
 
 	/* store the given info */
 	stmt->parameters[ipar].buflen = cbValueMax;
@@ -114,74 +125,84 @@ static char *func="SQLBindParameter";
 	stmt->parameters[ipar].precision = cbColDef;
 	stmt->parameters[ipar].scale = ibScale;
 
-	/*	If rebinding a parameter that had data-at-exec stuff in it,
-		then free that stuff
-	*/
-	if (stmt->parameters[ipar].EXEC_used) {
+	/*
+	 * If rebinding a parameter that had data-at-exec stuff in it, then
+	 * free that stuff
+	 */
+	if (stmt->parameters[ipar].EXEC_used)
+	{
 		free(stmt->parameters[ipar].EXEC_used);
 		stmt->parameters[ipar].EXEC_used = NULL;
 	}
 
-	if (stmt->parameters[ipar].EXEC_buffer) {
+	if (stmt->parameters[ipar].EXEC_buffer)
+	{
 		if (stmt->parameters[ipar].SQLType != SQL_LONGVARBINARY)
 			free(stmt->parameters[ipar].EXEC_buffer);
 		stmt->parameters[ipar].EXEC_buffer = NULL;
 	}
 
-	/*	Data at exec macro only valid for C char/binary data */
+	/* Data at exec macro only valid for C char/binary data */
 	if ((fSqlType == SQL_LONGVARBINARY || fSqlType == SQL_LONGVARCHAR) && pcbValue && *pcbValue <= SQL_LEN_DATA_AT_EXEC_OFFSET)
 		stmt->parameters[ipar].data_at_exec = TRUE;
 	else
 		stmt->parameters[ipar].data_at_exec = FALSE;
 
-	mylog("SQLBindParamater: ipar=%d, paramType=%d, fCType=%d, fSqlType=%d, cbColDef=%d, ibScale=%d, rgbValue=%d, *pcbValue = %d, data_at_exec = %d\n", ipar, fParamType, fCType, fSqlType, cbColDef, ibScale, rgbValue, pcbValue ? *pcbValue: -777, stmt->parameters[ipar].data_at_exec);
+	mylog("SQLBindParamater: ipar=%d, paramType=%d, fCType=%d, fSqlType=%d, cbColDef=%d, ibScale=%d, rgbValue=%d, *pcbValue = %d, data_at_exec = %d\n", ipar, fParamType, fCType, fSqlType, cbColDef, ibScale, rgbValue, pcbValue ? *pcbValue : -777, stmt->parameters[ipar].data_at_exec);
 
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
-
-/*      Associate a user-supplied buffer with a database column. */
-RETCODE SQL_API SQLBindCol(
-        HSTMT      hstmt,
-        UWORD      icol,
-        SWORD      fCType,
-        PTR        rgbValue,
-        SDWORD     cbValueMax,
-        SDWORD FAR *pcbValue)
+/*		-		-		-		-		-		-		-		-		- */
+
+/*		Associate a user-supplied buffer with a database column. */
+RETCODE SQL_API
+SQLBindCol(
+		   HSTMT hstmt,
+		   UWORD icol,
+		   SWORD fCType,
+		   PTR rgbValue,
+		   SDWORD cbValueMax,
+		   SDWORD FAR * pcbValue)
 {
-StatementClass *stmt = (StatementClass *) hstmt;
-static char *func="SQLBindCol";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	static char *func = "SQLBindCol";
+
+	mylog("%s: entering...\n", func);
 
-	mylog( "%s: entering...\n", func);
-    
-mylog("**** SQLBindCol: stmt = %u, icol = %d\n", stmt, icol);
+	mylog("**** SQLBindCol: stmt = %u, icol = %d\n", stmt, icol);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 
 	SC_clear_error(stmt);
-    
-	if( stmt->status == STMT_EXECUTING) {
+
+	if (stmt->status == STMT_EXECUTING)
+	{
 		stmt->errormsg = "Can't bind columns while statement is still executing.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	/*	If the bookmark column is being bound, then just save it */
-	if (icol == 0) {
+	/* If the bookmark column is being bound, then just save it */
+	if (icol == 0)
+	{
 
-		if (rgbValue == NULL) {
+		if (rgbValue == NULL)
+		{
 			stmt->bookmark.buffer = NULL;
 			stmt->bookmark.used = NULL;
 		}
-		else {
-			/*	Make sure it is the bookmark data type */
-			if ( fCType != SQL_C_BOOKMARK) {
+		else
+		{
+			/* Make sure it is the bookmark data type */
+			if (fCType != SQL_C_BOOKMARK)
+			{
 				stmt->errormsg = "Column 0 is not of type SQL_C_BOOKMARK";
 				stmt->errornumber = STMT_PROGRAM_TYPE_OUT_OF_RANGE;
 				SC_log_error(func, "", stmt);
@@ -194,37 +215,42 @@ mylog("**** SQLBindCol: stmt = %u, icol = %d\n", stmt, icol);
 		return SQL_SUCCESS;
 	}
 
-	/*	allocate enough bindings if not already done */
-	/*	Most likely, execution of a statement would have setup the  */
-	/*	necessary bindings. But some apps call BindCol before any */
-	/*	statement is executed. */
-	if ( icol > stmt->bindings_allocated)
+	/* allocate enough bindings if not already done */
+	/* Most likely, execution of a statement would have setup the  */
+	/* necessary bindings. But some apps call BindCol before any */
+	/* statement is executed. */
+	if (icol > stmt->bindings_allocated)
 		extend_bindings(stmt, icol);
 
-	/*	check to see if the bindings were allocated */
-	if ( ! stmt->bindings) {
+	/* check to see if the bindings were allocated */
+	if (!stmt->bindings)
+	{
 		stmt->errormsg = "Could not allocate memory for bindings.";
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	icol--;		/* use zero based col numbers from here out */
+	icol--;						/* use zero based col numbers from here
+								 * out */
 
-	/*	Reset for SQLGetData */
+	/* Reset for SQLGetData */
 	stmt->bindings[icol].data_left = -1;
 
-	if (rgbValue == NULL) {
+	if (rgbValue == NULL)
+	{
 		/* we have to unbind the column */
 		stmt->bindings[icol].buflen = 0;
 		stmt->bindings[icol].buffer = NULL;
-		stmt->bindings[icol].used =   NULL;
+		stmt->bindings[icol].used = NULL;
 		stmt->bindings[icol].returntype = SQL_C_CHAR;
-	} else {
+	}
+	else
+	{
 		/* ok, bind that column */
-		stmt->bindings[icol].buflen     = cbValueMax;
-		stmt->bindings[icol].buffer     = rgbValue;
-		stmt->bindings[icol].used       = pcbValue;
+		stmt->bindings[icol].buflen = cbValueMax;
+		stmt->bindings[icol].buffer = rgbValue;
+		stmt->bindings[icol].used = pcbValue;
 		stmt->bindings[icol].returntype = fCType;
 
 		mylog("       bound buffer[%d] = %u\n", icol, stmt->bindings[icol].buffer);
@@ -233,34 +259,37 @@ mylog("**** SQLBindCol: stmt = %u, icol = %d\n", stmt, icol);
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-/*  Returns the description of a parameter marker. */
+/*	Returns the description of a parameter marker. */
 /*	This function is listed as not being supported by SQLGetFunctions() because it is  */
 /*	used to describe "parameter markers" (not bound parameters), in which case,  */
 /*	the dbms should return info on the markers.  Since Postgres doesn't support that, */
 /*	it is best to say this function is not supported and let the application assume a  */
 /*	data type (most likely varchar). */
 
-RETCODE SQL_API SQLDescribeParam(
-        HSTMT      hstmt,
-        UWORD      ipar,
-        SWORD  FAR *pfSqlType,
-        UDWORD FAR *pcbColDef,
-        SWORD  FAR *pibScale,
-        SWORD  FAR *pfNullable)
+RETCODE SQL_API
+SQLDescribeParam(
+				 HSTMT hstmt,
+				 UWORD ipar,
+				 SWORD FAR * pfSqlType,
+				 UDWORD FAR * pcbColDef,
+				 SWORD FAR * pibScale,
+				 SWORD FAR * pfNullable)
 {
-StatementClass *stmt = (StatementClass *) hstmt;
-static char *func = "SQLDescribeParam";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	static char *func = "SQLDescribeParam";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	if( (ipar < 1) || (ipar > stmt->parameters_allocated) ) {
+	if ((ipar < 1) || (ipar > stmt->parameters_allocated))
+	{
 		stmt->errormsg = "Invalid parameter number for SQLDescribeParam.";
 		stmt->errornumber = STMT_BAD_PARAMETER_NUMBER_ERROR;
 		SC_log_error(func, "", stmt);
@@ -269,41 +298,45 @@ static char *func = "SQLDescribeParam";
 
 	ipar--;
 
-	/*	This implementation is not very good, since it is supposed to describe */
-	/*	parameter markers, not bound parameters.  */
-	if(pfSqlType)
+	/*
+	 * This implementation is not very good, since it is supposed to
+	 * describe
+	 */
+	/* parameter markers, not bound parameters.  */
+	if (pfSqlType)
 		*pfSqlType = stmt->parameters[ipar].SQLType;
 
-	if(pcbColDef)
+	if (pcbColDef)
 		*pcbColDef = stmt->parameters[ipar].precision;
 
-	if(pibScale)
+	if (pibScale)
 		*pibScale = stmt->parameters[ipar].scale;
 
-	if(pfNullable)
+	if (pfNullable)
 		*pfNullable = pgtype_nullable(stmt, stmt->parameters[ipar].paramType);
 
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-/*      Sets multiple values (arrays) for the set of parameter markers. */
+/*		Sets multiple values (arrays) for the set of parameter markers. */
 
-RETCODE SQL_API SQLParamOptions(
-        HSTMT      hstmt,
-        UDWORD     crow,
-        UDWORD FAR *pirow)
+RETCODE SQL_API
+SQLParamOptions(
+				HSTMT hstmt,
+				UDWORD crow,
+				UDWORD FAR * pirow)
 {
-static char *func = "SQLParamOptions";
+	static char *func = "SQLParamOptions";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
 	SC_log_error(func, "Function not implemented", (StatementClass *) hstmt);
 	return SQL_ERROR;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
 /*	This function should really talk to the dbms to determine the number of  */
 /*	"parameter markers" (not bound parameters) in the statement.  But, since */
@@ -312,43 +345,51 @@ static char *func = "SQLParamOptions";
 /*	like it does for SQLDescribeParam is that some applications don't care and try  */
 /*	to call it anyway. */
 /*	If the statement does not have parameters, it should just return 0. */
-RETCODE SQL_API SQLNumParams(
-        HSTMT      hstmt,
-        SWORD  FAR *pcpar)
+RETCODE SQL_API
+SQLNumParams(
+			 HSTMT hstmt,
+			 SWORD FAR * pcpar)
 {
-StatementClass *stmt = (StatementClass *) hstmt;
-char in_quote = FALSE;
-unsigned int i;
-static char *func = "SQLNumParams";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	char		in_quote = FALSE;
+	unsigned int i;
+	static char *func = "SQLNumParams";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if(!stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 	if (pcpar)
 		*pcpar = 0;
-	else {
+	else
+	{
 		SC_log_error(func, "pcpar was null", stmt);
 		return SQL_ERROR;
 	}
 
 
-	if(!stmt->statement) {
+	if (!stmt->statement)
+	{
 		/* no statement has been allocated */
 		stmt->errormsg = "SQLNumParams called with no statement ready.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
-	} else {
+	}
+	else
+	{
 
-		for(i=0; i < strlen(stmt->statement); i++) {
+		for (i = 0; i < strlen(stmt->statement); i++)
+		{
 
-			if(stmt->statement[i] == '?' && !in_quote)
+			if (stmt->statement[i] == '?' && !in_quote)
 				(*pcpar)++;
-			else {
+			else
+			{
 				if (stmt->statement[i] == '\'')
 					in_quote = (in_quote ? FALSE : TRUE);
 			}
@@ -359,20 +400,20 @@ static char *func = "SQLNumParams";
 }
 
 /********************************************************************
- *   Bindings Implementation
+ *	 Bindings Implementation
  */
 BindInfoClass *
 create_empty_bindings(int num_columns)
 {
-BindInfoClass *new_bindings;
-int i;
+	BindInfoClass *new_bindings;
+	int			i;
 
-	new_bindings = (BindInfoClass *)malloc(num_columns * sizeof(BindInfoClass));
-	if(!new_bindings) {
+	new_bindings = (BindInfoClass *) malloc(num_columns * sizeof(BindInfoClass));
+	if (!new_bindings)
 		return 0;
-	}
 
-	for(i=0; i < num_columns; i++) {
+	for (i = 0; i < num_columns; i++)
+	{
 		new_bindings[i].buflen = 0;
 		new_bindings[i].buffer = NULL;
 		new_bindings[i].used = NULL;
@@ -383,23 +424,26 @@ int i;
 }
 
 void
-extend_bindings(StatementClass *stmt, int num_columns)
+extend_bindings(StatementClass * stmt, int num_columns)
 {
-static char *func="extend_bindings";
-BindInfoClass *new_bindings;
-int i;
+	static char *func = "extend_bindings";
+	BindInfoClass *new_bindings;
+	int			i;
 
-mylog("%s: entering ... stmt=%u, bindings_allocated=%d, num_columns=%d\n", func, stmt, stmt->bindings_allocated, num_columns);
+	mylog("%s: entering ... stmt=%u, bindings_allocated=%d, num_columns=%d\n", func, stmt, stmt->bindings_allocated, num_columns);
 
 	/* if we have too few, allocate room for more, and copy the old */
 	/* entries into the new structure */
-	if(stmt->bindings_allocated < num_columns) {
+	if (stmt->bindings_allocated < num_columns)
+	{
 
 		new_bindings = create_empty_bindings(num_columns);
-		if ( ! new_bindings) {
-           mylog("%s: unable to create %d new bindings from %d old bindings\n", func, num_columns, stmt->bindings_allocated);
+		if (!new_bindings)
+		{
+			mylog("%s: unable to create %d new bindings from %d old bindings\n", func, num_columns, stmt->bindings_allocated);
 
-			if (stmt->bindings) {
+			if (stmt->bindings)
+			{
 				free(stmt->bindings);
 				stmt->bindings = NULL;
 			}
@@ -407,8 +451,9 @@ mylog("%s: entering ... stmt=%u, bindings_allocated=%d, num_columns=%d\n", func,
 			return;
 		}
 
-		if(stmt->bindings) {
-			for(i=0; i<stmt->bindings_allocated; i++)
+		if (stmt->bindings)
+		{
+			for (i = 0; i < stmt->bindings_allocated; i++)
 				new_bindings[i] = stmt->bindings[i];
 
 			free(stmt->bindings);
@@ -417,14 +462,14 @@ mylog("%s: entering ... stmt=%u, bindings_allocated=%d, num_columns=%d\n", func,
 		stmt->bindings = new_bindings;
 		stmt->bindings_allocated = num_columns;
 
-    } 
-	/*	There is no reason to zero out extra bindings if there are */
-	/*	more than needed.  If an app has allocated extra bindings,  */
-	/*	let it worry about it by unbinding those columns. */
+	}
+	/* There is no reason to zero out extra bindings if there are */
+	/* more than needed.  If an app has allocated extra bindings,  */
+	/* let it worry about it by unbinding those columns. */
 
-	/*	SQLBindCol(1..) ... SQLBindCol(10...)	# got 10 bindings */
-	/*	SQLExecDirect(...)  # returns 5 cols */
-	/*	SQLExecDirect(...)	# returns 10 cols  (now OK) */
+	/* SQLBindCol(1..) ... SQLBindCol(10...)   # got 10 bindings */
+	/* SQLExecDirect(...)  # returns 5 cols */
+	/* SQLExecDirect(...)  # returns 10 cols  (now OK) */
 
 	mylog("exit extend_bindings\n");
 }
diff --git a/src/interfaces/odbc/bind.h b/src/interfaces/odbc/bind.h
index 39e594f34601c286b0d92123541b99e682f286d9..11ac37a0af5617b42eade3df7947451e06b76fc3 100644
--- a/src/interfaces/odbc/bind.h
+++ b/src/interfaces/odbc/bind.h
@@ -1,9 +1,9 @@
 
-/* File:            bind.h
+/* File:			bind.h
  *
- * Description:     See "bind.c"
+ * Description:		See "bind.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -15,33 +15,40 @@
 /*
  * BindInfoClass -- stores information about a bound column
  */
-struct BindInfoClass_ {
-	Int4 buflen;		/* size of buffer */
-	Int4 data_left;		/* amount of data left to read (SQLGetData) */
-	char *buffer;		/* pointer to the buffer */
-	Int4 *used;			/* used space in the buffer (for strings not counting the '\0') */
-	Int2 returntype;	/* kind of conversion to be applied when returning (SQL_C_DEFAULT, SQL_C_CHAR...) */
+struct BindInfoClass_
+{
+	Int4		buflen;			/* size of buffer */
+	Int4		data_left;		/* amount of data left to read
+								 * (SQLGetData) */
+	char	   *buffer;			/* pointer to the buffer */
+	Int4	   *used;			/* used space in the buffer (for strings
+								 * not counting the '\0') */
+	Int2		returntype;		/* kind of conversion to be applied when
+								 * returning (SQL_C_DEFAULT,
+								 * SQL_C_CHAR...) */
 };
 
 /*
  * ParameterInfoClass -- stores information about a bound parameter
  */
-struct ParameterInfoClass_ {
-	Int4 buflen;
-	char *buffer;
-	Int4 *used;
-	Int2 paramType;
-	Int2 CType;
-	Int2 SQLType;
-	UInt4 precision;
-	Int2 scale;
-	Oid  lobj_oid;
-	Int4 *EXEC_used;		/* amount of data OR the oid of the large object */
-	char *EXEC_buffer;		/* the data or the FD of the large object */
-	char data_at_exec;
+struct ParameterInfoClass_
+{
+	Int4		buflen;
+	char	   *buffer;
+	Int4	   *used;
+	Int2		paramType;
+	Int2		CType;
+	Int2		SQLType;
+	UInt4		precision;
+	Int2		scale;
+	Oid			lobj_oid;
+	Int4	   *EXEC_used;		/* amount of data OR the oid of the large
+								 * object */
+	char	   *EXEC_buffer;	/* the data or the FD of the large object */
+	char		data_at_exec;
 };
 
 BindInfoClass *create_empty_bindings(int num_columns);
-void extend_bindings(StatementClass *stmt, int num_columns);
+void		extend_bindings(StatementClass * stmt, int num_columns);
 
 #endif
diff --git a/src/interfaces/odbc/columninfo.c b/src/interfaces/odbc/columninfo.c
index 75fdd9f4f6884a84ad420dbf494a51b8723a75e1..4969846e14b0d6263990ecac5b9dd10af2fde9b4 100644
--- a/src/interfaces/odbc/columninfo.c
+++ b/src/interfaces/odbc/columninfo.c
@@ -1,13 +1,13 @@
-/* Module:          columninfo.c
+/* Module:			columninfo.c
  *
- * Description:     This module contains routines related to 
- *                  reading and storing the field information from a query.
+ * Description:		This module contains routines related to
+ *					reading and storing the field information from a query.
  *
- * Classes:         ColumnInfoClass (Functions prefix: "CI_")
+ * Classes:			ColumnInfoClass (Functions prefix: "CI_")
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -20,11 +20,12 @@
 ColumnInfoClass *
 CI_Constructor()
 {
-ColumnInfoClass *rv;
+	ColumnInfoClass *rv;
 
 	rv = (ColumnInfoClass *) malloc(sizeof(ColumnInfoClass));
 
-	if (rv) {
+	if (rv)
+	{
 		rv->num_fields = 0;
 		rv->name = NULL;
 		rv->adtid = NULL;
@@ -37,28 +38,28 @@ ColumnInfoClass *rv;
 }
 
 void
-CI_Destructor(ColumnInfoClass *self)
+CI_Destructor(ColumnInfoClass * self)
 {
 	CI_free_memory(self);
 
 	free(self);
 }
 
-/*  Read in field descriptions.
-    If self is not null, then also store the information.
+/*	Read in field descriptions.
+	If self is not null, then also store the information.
 	If self is null, then just read, don't store.
 */
 char
-CI_read_fields(ColumnInfoClass *self, ConnectionClass *conn)
+CI_read_fields(ColumnInfoClass * self, ConnectionClass * conn)
 {
-Int2 lf;
-int new_num_fields;
-Oid new_adtid;
-Int2 new_adtsize;
-Int4 new_atttypmod = -1;
-char new_field_name[MAX_MESSAGE_LEN+1];
-SocketClass *sock;
-ConnInfo *ci;
+	Int2		lf;
+	int			new_num_fields;
+	Oid			new_adtid;
+	Int2		new_adtsize;
+	Int4		new_atttypmod = -1;
+	char		new_field_name[MAX_MESSAGE_LEN + 1];
+	SocketClass *sock;
+	ConnInfo   *ci;
 
 	sock = CC_get_socket(conn);
 	ci = &conn->connInfo;
@@ -68,24 +69,27 @@ ConnInfo *ci;
 
 	mylog("num_fields = %d\n", new_num_fields);
 
-	if (self) { 	/* according to that allocate memory */
+	if (self)
+	{							/* according to that allocate memory */
 		CI_set_num_fields(self, new_num_fields);
 	}
 
 	/* now read in the descriptions */
-	for(lf = 0; lf < new_num_fields; lf++) {
+	for (lf = 0; lf < new_num_fields; lf++)
+	{
 
 		SOCK_get_string(sock, new_field_name, MAX_MESSAGE_LEN);
 		new_adtid = (Oid) SOCK_get_int(sock, 4);
 		new_adtsize = (Int2) SOCK_get_int(sock, 2);
 
-		/*	If 6.4 protocol, then read the atttypmod field */
-		if (PG_VERSION_GE(conn, 6.4)) {
+		/* If 6.4 protocol, then read the atttypmod field */
+		if (PG_VERSION_GE(conn, 6.4))
+		{
 
 			mylog("READING ATTTYPMOD\n");
 			new_atttypmod = (Int4) SOCK_get_int(sock, 4);
 
-			/*	Subtract the header length */
+			/* Subtract the header length */
 			new_atttypmod -= 4;
 			if (new_atttypmod < 0)
 				new_atttypmod = -1;
@@ -104,17 +108,18 @@ ConnInfo *ci;
 
 
 void
-CI_free_memory(ColumnInfoClass *self)
+CI_free_memory(ColumnInfoClass * self)
 {
-register Int2 lf;
-int num_fields = self->num_fields;
+	register Int2 lf;
+	int			num_fields = self->num_fields;
 
-	for (lf = 0; lf < num_fields; lf++) {
-		if( self->name[lf])
-			free (self->name[lf]);
+	for (lf = 0; lf < num_fields; lf++)
+	{
+		if (self->name[lf])
+			free(self->name[lf]);
 	}
 
-	/*	Safe to call even if null */
+	/* Safe to call even if null */
 	free(self->name);
 	free(self->adtid);
 	free(self->adtsize);
@@ -124,35 +129,33 @@ int num_fields = self->num_fields;
 }
 
 void
-CI_set_num_fields(ColumnInfoClass *self, int new_num_fields)
+CI_set_num_fields(ColumnInfoClass * self, int new_num_fields)
 {
-	CI_free_memory(self);	/* always safe to call */
+	CI_free_memory(self);		/* always safe to call */
 
 	self->num_fields = new_num_fields;
 
-	self->name = (char **) malloc (sizeof(char *) * self->num_fields);
-	self->adtid = (Oid *) malloc (sizeof(Oid) * self->num_fields);
-	self->adtsize = (Int2 *) malloc (sizeof(Int2) * self->num_fields);
+	self->name = (char **) malloc(sizeof(char *) * self->num_fields);
+	self->adtid = (Oid *) malloc(sizeof(Oid) * self->num_fields);
+	self->adtsize = (Int2 *) malloc(sizeof(Int2) * self->num_fields);
 	self->display_size = (Int2 *) malloc(sizeof(Int2) * self->num_fields);
 	self->atttypmod = (Int4 *) malloc(sizeof(Int4) * self->num_fields);
 }
 
 void
-CI_set_field_info(ColumnInfoClass *self, int field_num, char *new_name, 
-                                      Oid new_adtid, Int2 new_adtsize, Int4 new_atttypmod)
+CI_set_field_info(ColumnInfoClass * self, int field_num, char *new_name,
+				  Oid new_adtid, Int2 new_adtsize, Int4 new_atttypmod)
 {
-    
+
 	/* check bounds */
-	if((field_num < 0) || (field_num >= self->num_fields)) {
+	if ((field_num < 0) || (field_num >= self->num_fields))
 		return;
-	}
 
 	/* store the info */
-	self->name[field_num] = strdup(new_name);  
+	self->name[field_num] = strdup(new_name);
 	self->adtid[field_num] = new_adtid;
 	self->adtsize[field_num] = new_adtsize;
 	self->atttypmod[field_num] = new_atttypmod;
 
 	self->display_size[field_num] = 0;
 }
-
diff --git a/src/interfaces/odbc/columninfo.h b/src/interfaces/odbc/columninfo.h
index 3ec1cc92d50e3edee351f108a9dfed30f65f091c..43b21473b7004183adad604b1b9ca1e659f7d261 100644
--- a/src/interfaces/odbc/columninfo.h
+++ b/src/interfaces/odbc/columninfo.h
@@ -1,9 +1,9 @@
 
-/* File:            columninfo.h
+/* File:			columninfo.h
  *
- * Description:     See "columninfo.c"
+ * Description:		See "columninfo.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -12,13 +12,14 @@
 
 #include "psqlodbc.h"
 
-struct ColumnInfoClass_ {
-	Int2	num_fields;
-	char	**name;				/* list of type names */
-	Oid		*adtid;				/* list of type ids */
-	Int2	*adtsize;			/* list type sizes */
-	Int2	*display_size;		/* the display size (longest row) */
-	Int4	*atttypmod;			/* the length of bpchar/varchar */
+struct ColumnInfoClass_
+{
+	Int2		num_fields;
+	char	  **name;			/* list of type names */
+	Oid		   *adtid;			/* list of type ids */
+	Int2	   *adtsize;		/* list type sizes */
+	Int2	   *display_size;	/* the display size (longest row) */
+	Int4	   *atttypmod;		/* the length of bpchar/varchar */
 };
 
 #define CI_get_num_fields(self)			(self->num_fields)
@@ -29,15 +30,15 @@ struct ColumnInfoClass_ {
 #define CI_get_atttypmod(self, col)		(self->atttypmod[col])
 
 ColumnInfoClass *CI_Constructor(void);
-void CI_Destructor(ColumnInfoClass *self);
-void CI_free_memory(ColumnInfoClass *self);
-char CI_read_fields(ColumnInfoClass *self, ConnectionClass *conn);
+void		CI_Destructor(ColumnInfoClass * self);
+void		CI_free_memory(ColumnInfoClass * self);
+char		CI_read_fields(ColumnInfoClass * self, ConnectionClass * conn);
 
 /* functions for setting up the fields from within the program, */
 /* without reading from a socket */
-void CI_set_num_fields(ColumnInfoClass *self, int new_num_fields);
-void CI_set_field_info(ColumnInfoClass *self, int field_num, char *new_name, 
-                       Oid new_adtid, Int2 new_adtsize, Int4 atttypmod);
+void		CI_set_num_fields(ColumnInfoClass * self, int new_num_fields);
+void CI_set_field_info(ColumnInfoClass * self, int field_num, char *new_name,
+				  Oid new_adtid, Int2 new_adtsize, Int4 atttypmod);
 
 
 #endif
diff --git a/src/interfaces/odbc/connection.c b/src/interfaces/odbc/connection.c
index cc09c4aa2fdcf798d5db41793fe37c53debc0b99..aa283f48820220d87e1565566ebfe10ff308825d 100644
--- a/src/interfaces/odbc/connection.c
+++ b/src/interfaces/odbc/connection.c
@@ -1,14 +1,14 @@
-/* Module:          connection.c
+/* Module:			connection.c
  *
- * Description:     This module contains routines related to 
- *                  connecting to and disconnecting from the Postgres DBMS.
+ * Description:		This module contains routines related to
+ *					connecting to and disconnecting from the Postgres DBMS.
  *
- * Classes:         ConnectionClass (Functions prefix: "CC_")
+ * Classes:			ConnectionClass (Functions prefix: "CC_")
  *
- * API functions:   SQLAllocConnect, SQLConnect, SQLDisconnect, SQLFreeConnect,
- *                  SQLBrowseConnect(NI)
+ * API functions:	SQLAllocConnect, SQLConnect, SQLDisconnect, SQLFreeConnect,
+ *					SQLBrowseConnect(NI)
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -26,67 +26,73 @@
 #include <odbcinst.h>
 #endif
 
-#define STMT_INCREMENT 16  /* how many statement holders to allocate at a time */
+#define STMT_INCREMENT 16		/* how many statement holders to allocate
+								 * at a time */
 
 #define PRN_NULLCHECK
 
 extern GLOBAL_VALUES globals;
 
 
-RETCODE SQL_API SQLAllocConnect(
-                                HENV     henv,
-                                HDBC FAR *phdbc)
+RETCODE SQL_API
+SQLAllocConnect(
+				HENV henv,
+				HDBC FAR * phdbc)
 {
-EnvironmentClass *env = (EnvironmentClass *)henv;
-ConnectionClass *conn;
-static char *func="SQLAllocConnect";
+	EnvironmentClass *env = (EnvironmentClass *) henv;
+	ConnectionClass *conn;
+	static char *func = "SQLAllocConnect";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
 	conn = CC_Constructor();
 	mylog("**** %s: henv = %u, conn = %u\n", func, henv, conn);
 
-    if( ! conn) {
-        env->errormsg = "Couldn't allocate memory for Connection object.";
-        env->errornumber = ENV_ALLOC_ERROR;
+	if (!conn)
+	{
+		env->errormsg = "Couldn't allocate memory for Connection object.";
+		env->errornumber = ENV_ALLOC_ERROR;
 		*phdbc = SQL_NULL_HDBC;
 		EN_log_error(func, "", env);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    if ( ! EN_add_connection(env, conn)) {
-        env->errormsg = "Maximum number of connections exceeded.";
-        env->errornumber = ENV_ALLOC_ERROR;
-        CC_Destructor(conn);
+	if (!EN_add_connection(env, conn))
+	{
+		env->errormsg = "Maximum number of connections exceeded.";
+		env->errornumber = ENV_ALLOC_ERROR;
+		CC_Destructor(conn);
 		*phdbc = SQL_NULL_HDBC;
 		EN_log_error(func, "", env);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
 	*phdbc = (HDBC) conn;
 
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLConnect(
-                           HDBC      hdbc,
-                           UCHAR FAR *szDSN,
-                           SWORD     cbDSN,
-                           UCHAR FAR *szUID,
-                           SWORD     cbUID,
-                           UCHAR FAR *szAuthStr,
-                           SWORD     cbAuthStr)
+RETCODE SQL_API
+SQLConnect(
+		   HDBC hdbc,
+		   UCHAR FAR * szDSN,
+		   SWORD cbDSN,
+		   UCHAR FAR * szUID,
+		   SWORD cbUID,
+		   UCHAR FAR * szAuthStr,
+		   SWORD cbAuthStr)
 {
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-ConnInfo *ci;
-static char *func = "SQLConnect";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	ConnInfo   *ci;
+	static char *func = "SQLConnect";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if ( ! conn) {
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -95,14 +101,15 @@ static char *func = "SQLConnect";
 
 	make_string(szDSN, cbDSN, ci->dsn);
 
-	/*	get the values for the DSN from the registry */
+	/* get the values for the DSN from the registry */
 	getDSNinfo(ci, CONN_OVERWRITE);
-	/*	initialize pg_version from connInfo.protocol	*/
-	CC_initialize_pg_version(conn); 
-	
-	/*	override values from DSN info with UID and authStr(pwd) 
-		This only occurs if the values are actually there.
-	*/
+	/* initialize pg_version from connInfo.protocol    */
+	CC_initialize_pg_version(conn);
+
+	/*
+	 * override values from DSN info with UID and authStr(pwd) This only
+	 * occurs if the values are actually there.
+	 */
 	make_string(szUID, cbUID, ci->username);
 	make_string(szAuthStr, cbAuthStr, ci->password);
 
@@ -111,54 +118,59 @@ static char *func = "SQLConnect";
 
 	qlog("conn = %u, %s(DSN='%s', UID='%s', PWD='%s')\n", conn, func, ci->dsn, ci->username, ci->password);
 
-	if ( CC_connect(conn, FALSE) <= 0) {
-		/*	Error messages are filled in */
+	if (CC_connect(conn, FALSE) <= 0)
+	{
+		/* Error messages are filled in */
 		CC_log_error(func, "Error on CC_connect", conn);
 		return SQL_ERROR;
 	}
 
-	mylog( "%s: returning...\n", func);
+	mylog("%s: returning...\n", func);
 
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLBrowseConnect(
-        HDBC      hdbc,
-        UCHAR FAR *szConnStrIn,
-        SWORD     cbConnStrIn,
-        UCHAR FAR *szConnStrOut,
-        SWORD     cbConnStrOutMax,
-        SWORD FAR *pcbConnStrOut)
+RETCODE SQL_API
+SQLBrowseConnect(
+				 HDBC hdbc,
+				 UCHAR FAR * szConnStrIn,
+				 SWORD cbConnStrIn,
+				 UCHAR FAR * szConnStrOut,
+				 SWORD cbConnStrOutMax,
+				 SWORD FAR * pcbConnStrOut)
 {
-static char *func="SQLBrowseConnect";
+	static char *func = "SQLBrowseConnect";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
 /* Drop any hstmts open on hdbc and disconnect from database */
-RETCODE SQL_API SQLDisconnect(
-        HDBC      hdbc)
+RETCODE SQL_API
+SQLDisconnect(
+			  HDBC hdbc)
 {
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-static char *func = "SQLDisconnect";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	static char *func = "SQLDisconnect";
 
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if ( ! conn) {
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 	qlog("conn=%u, %s\n", conn, func);
 
-	if (conn->status == CONN_EXECUTING) {
+	if (conn->status == CONN_EXECUTING)
+	{
 		conn->errornumber = CONN_IN_USE;
 		conn->errormsg = "A transaction is currently being executed";
 		CC_log_error(func, "", conn);
@@ -167,7 +179,7 @@ static char *func = "SQLDisconnect";
 
 	mylog("%s: about to CC_cleanup\n", func);
 
-	/*  Close the connection and free statements */
+	/* Close the connection and free statements */
 	CC_cleanup(conn);
 
 	mylog("%s: done CC_cleanup\n", func);
@@ -177,24 +189,27 @@ static char *func = "SQLDisconnect";
 }
 
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLFreeConnect(
-        HDBC      hdbc)
+RETCODE SQL_API
+SQLFreeConnect(
+			   HDBC hdbc)
 {
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-static char *func = "SQLFreeConnect";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	static char *func = "SQLFreeConnect";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 	mylog("**** in %s: hdbc=%u\n", func, hdbc);
 
-	if ( ! conn) {
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	/*  Remove the connection from the environment */
-	if ( ! EN_remove_connection(conn->henv, conn)) {
+	/* Remove the connection from the environment */
+	if (!EN_remove_connection(conn->henv, conn))
+	{
 		conn->errornumber = CONN_IN_USE;
 		conn->errormsg = "A transaction is currently being executed";
 		CC_log_error(func, "", conn);
@@ -211,35 +226,37 @@ static char *func = "SQLFreeConnect";
 
 /*
 *
-*       IMPLEMENTATION CONNECTION CLASS
+*		IMPLEMENTATION CONNECTION CLASS
 *
 */
 
-ConnectionClass *CC_Constructor()
+ConnectionClass *
+CC_Constructor()
 {
-ConnectionClass *rv;
+	ConnectionClass *rv;
 
-    rv = (ConnectionClass *)malloc(sizeof(ConnectionClass));
+	rv = (ConnectionClass *) malloc(sizeof(ConnectionClass));
 
-    if (rv != NULL) {
+	if (rv != NULL)
+	{
 
-		rv->henv = NULL; /* not yet associated with an environment */
+		rv->henv = NULL;		/* not yet associated with an environment */
 
-        rv->errormsg = NULL;
-        rv->errornumber = 0;
+		rv->errormsg = NULL;
+		rv->errornumber = 0;
 		rv->errormsg_created = FALSE;
 
-        rv->status = CONN_NOT_CONNECTED;
-        rv->transact_status = CONN_IN_AUTOCOMMIT; /* autocommit by default */
+		rv->status = CONN_NOT_CONNECTED;
+		rv->transact_status = CONN_IN_AUTOCOMMIT;		/* autocommit by default */
 
 		memset(&rv->connInfo, 0, sizeof(ConnInfo));
 
 		rv->sock = SOCK_Constructor();
-		if ( ! rv->sock)
+		if (!rv->sock)
 			return NULL;
 
-		rv->stmts = (StatementClass **) malloc( sizeof(StatementClass *) * STMT_INCREMENT);
-		if ( ! rv->stmts)
+		rv->stmts = (StatementClass **) malloc(sizeof(StatementClass *) * STMT_INCREMENT);
+		if (!rv->stmts)
 			return NULL;
 		memset(rv->stmts, 0, sizeof(StatementClass *) * STMT_INCREMENT);
 
@@ -259,18 +276,18 @@ ConnectionClass *rv;
 		rv->pg_version_major = 0;
 		rv->pg_version_minor = 0;
 
-		/*	Initialize statement options to defaults */
-		/*	Statements under this conn will inherit these options */
+		/* Initialize statement options to defaults */
+		/* Statements under this conn will inherit these options */
 
 		InitializeStatementOptions(&rv->stmtOptions);
 
-    } 
-    return rv;
+	}
+	return rv;
 }
 
 
 char
-CC_Destructor(ConnectionClass *self)
+CC_Destructor(ConnectionClass * self)
 {
 
 	mylog("enter CC_Destructor, self=%u\n", self);
@@ -278,22 +295,27 @@ CC_Destructor(ConnectionClass *self)
 	if (self->status == CONN_EXECUTING)
 		return 0;
 
-	CC_cleanup(self);   /* cleanup socket and statements */
+	CC_cleanup(self);			/* cleanup socket and statements */
 
 	mylog("after CC_Cleanup\n");
 
-	/*  Free up statement holders */
-	if (self->stmts) {
+	/* Free up statement holders */
+	if (self->stmts)
+	{
 		free(self->stmts);
 		self->stmts = NULL;
 	}
 	mylog("after free statement holders\n");
 
-	/*	Free cached table info */
-	if (self->col_info) {
-		int i;
-		for (i = 0; i < self->ntables; i++) {
-			if (self->col_info[i]->result)		/*	Free the SQLColumns result structure */
+	/* Free cached table info */
+	if (self->col_info)
+	{
+		int			i;
+
+		for (i = 0; i < self->ntables; i++)
+		{
+			if (self->col_info[i]->result)		/* Free the SQLColumns
+												 * result structure */
 				QR_Destructor(self->col_info[i]->result);
 
 			free(self->col_info[i]);
@@ -310,14 +332,16 @@ CC_Destructor(ConnectionClass *self)
 
 /*	Return how many cursors are opened on this connection */
 int
-CC_cursor_count(ConnectionClass *self)
+CC_cursor_count(ConnectionClass * self)
 {
-StatementClass *stmt;
-int i, count = 0;
+	StatementClass *stmt;
+	int			i,
+				count = 0;
 
 	mylog("CC_cursor_count: self=%u, num_stmts=%d\n", self, self->num_stmts);
 
-	for (i = 0; i < self->num_stmts; i++) {
+	for (i = 0; i < self->num_stmts; i++)
+	{
 		stmt = self->stmts[i];
 		if (stmt && stmt->result && stmt->result->cursor)
 			count++;
@@ -328,22 +352,23 @@ int i, count = 0;
 	return count;
 }
 
-void 
-CC_clear_error(ConnectionClass *self)
+void
+CC_clear_error(ConnectionClass * self)
 {
-	self->errornumber = 0; 
-	self->errormsg = NULL; 
+	self->errornumber = 0;
+	self->errormsg = NULL;
 	self->errormsg_created = FALSE;
 }
 
 /*	Used to cancel a transaction */
 /*	We are almost always in the middle of a transaction. */
 char
-CC_abort(ConnectionClass *self)
+CC_abort(ConnectionClass * self)
 {
-QResultClass *res;
+	QResultClass *res;
 
-	if ( CC_is_in_trans(self)) {
+	if (CC_is_in_trans(self))
+	{
 		res = NULL;
 
 		mylog("CC_abort:  sending ABORT!\n");
@@ -363,10 +388,10 @@ QResultClass *res;
 
 /* This is called by SQLDisconnect also */
 char
-CC_cleanup(ConnectionClass *self)
+CC_cleanup(ConnectionClass * self)
 {
-int i;
-StatementClass *stmt;
+	int			i;
+	StatementClass *stmt;
 
 	if (self->status == CONN_EXECUTING)
 		return FALSE;
@@ -381,28 +406,32 @@ StatementClass *stmt;
 
 	mylog("after CC_abort\n");
 
-	/*  This actually closes the connection to the dbase */
-	if (self->sock) {
-	    SOCK_Destructor(self->sock);
+	/* This actually closes the connection to the dbase */
+	if (self->sock)
+	{
+		SOCK_Destructor(self->sock);
 		self->sock = NULL;
 	}
 
 	mylog("after SOCK destructor\n");
 
-	/*  Free all the stmts on this connection */
-	for (i = 0; i < self->num_stmts; i++) {
+	/* Free all the stmts on this connection */
+	for (i = 0; i < self->num_stmts; i++)
+	{
 		stmt = self->stmts[i];
-		if (stmt) {
+		if (stmt)
+		{
 			stmt->hdbc = NULL;	/* prevent any more dbase interactions */
 			SC_Destructor(stmt);
 			self->stmts[i] = NULL;
 		}
 	}
 
-	/*	Check for translation dll */
+	/* Check for translation dll */
 #ifdef WIN32
-	if ( self->translation_handle) {
-		FreeLibrary (self->translation_handle);
+	if (self->translation_handle)
+	{
+		FreeLibrary(self->translation_handle);
 		self->translation_handle = NULL;
 	}
 #endif
@@ -412,37 +441,40 @@ StatementClass *stmt;
 }
 
 int
-CC_set_translation (ConnectionClass *self)
+CC_set_translation(ConnectionClass * self)
 {
 
 #ifdef WIN32
 
-	if (self->translation_handle != NULL) {
-		FreeLibrary (self->translation_handle);
+	if (self->translation_handle != NULL)
+	{
+		FreeLibrary(self->translation_handle);
 		self->translation_handle = NULL;
 	}
 
 	if (self->connInfo.translation_dll[0] == 0)
 		return TRUE;
 
-	self->translation_option = atoi (self->connInfo.translation_option);
-	self->translation_handle = LoadLibrary (self->connInfo.translation_dll);
+	self->translation_option = atoi(self->connInfo.translation_option);
+	self->translation_handle = LoadLibrary(self->connInfo.translation_dll);
 
-	if (self->translation_handle == NULL) {
+	if (self->translation_handle == NULL)
+	{
 		self->errornumber = CONN_UNABLE_TO_LOAD_DLL;
 		self->errormsg = "Could not load the translation DLL.";
 		return FALSE;
 	}
 
 	self->DataSourceToDriver
-	 = (DataSourceToDriverProc) GetProcAddress (self->translation_handle,
+		= (DataSourceToDriverProc) GetProcAddress(self->translation_handle,
 												"SQLDataSourceToDriver");
 
 	self->DriverToDataSource
-	 = (DriverToDataSourceProc) GetProcAddress (self->translation_handle,
+		= (DriverToDataSourceProc) GetProcAddress(self->translation_handle,
 												"SQLDriverToDataSource");
 
-	if (self->DataSourceToDriver == NULL || self->DriverToDataSource == NULL) {
+	if (self->DataSourceToDriver == NULL || self->DriverToDataSource == NULL)
+	{
 		self->errornumber = CONN_UNABLE_TO_LOAD_DLL;
 		self->errormsg = "Could not find translation DLL functions.";
 		return FALSE;
@@ -451,54 +483,57 @@ CC_set_translation (ConnectionClass *self)
 	return TRUE;
 }
 
-char 
-CC_connect(ConnectionClass *self, char do_password)
+char
+CC_connect(ConnectionClass * self, char do_password)
 {
-StartupPacket sp;
-QResultClass *res;
-SocketClass *sock;
-ConnInfo *ci = &(self->connInfo);
-int areq = -1;
-int beresp;
-char msgbuffer[ERROR_MSG_LENGTH]; 
-char salt[2];
-static char *func="CC_connect";
+	StartupPacket sp;
+	QResultClass *res;
+	SocketClass *sock;
+	ConnInfo   *ci = &(self->connInfo);
+	int			areq = -1;
+	int			beresp;
+	char		msgbuffer[ERROR_MSG_LENGTH];
+	char		salt[2];
+	static char *func = "CC_connect";
 
 	mylog("%s: entering...\n", func);
 
-	if ( do_password)
+	if (do_password)
 
 		sock = self->sock;		/* already connected, just authenticate */
 
-	else {
+	else
+	{
 
 		qlog("Global Options: Version='%s', fetch=%d, socket=%d, unknown_sizes=%d, max_varchar_size=%d, max_longvarchar_size=%d\n",
-			POSTGRESDRIVERVERSION,
-			globals.fetch_max, 
-			globals.socket_buffersize, 
-			globals.unknown_sizes, 
-			globals.max_varchar_size, 
-			globals.max_longvarchar_size);
+			 POSTGRESDRIVERVERSION,
+			 globals.fetch_max,
+			 globals.socket_buffersize,
+			 globals.unknown_sizes,
+			 globals.max_varchar_size,
+			 globals.max_longvarchar_size);
 		qlog("                disable_optimizer=%d, ksqo=%d, unique_index=%d, use_declarefetch=%d\n",
-			globals.disable_optimizer,
-			globals.ksqo,
-			globals.unique_index,
-			globals.use_declarefetch);
+			 globals.disable_optimizer,
+			 globals.ksqo,
+			 globals.unique_index,
+			 globals.use_declarefetch);
 		qlog("                text_as_longvarchar=%d, unknowns_as_longvarchar=%d, bools_as_char=%d\n",
-			globals.text_as_longvarchar, 
-			globals.unknowns_as_longvarchar, 
-			globals.bools_as_char);
+			 globals.text_as_longvarchar,
+			 globals.unknowns_as_longvarchar,
+			 globals.bools_as_char);
 		qlog("                extra_systable_prefixes='%s', conn_settings='%s'\n",
-			globals.extra_systable_prefixes, 
-			globals.conn_settings);
+			 globals.extra_systable_prefixes,
+			 globals.conn_settings);
 
-		if (self->status != CONN_NOT_CONNECTED) {
+		if (self->status != CONN_NOT_CONNECTED)
+		{
 			self->errormsg = "Already connected.";
 			self->errornumber = CONN_OPENDB_ERROR;
 			return 0;
 		}
 
-		if ( ci->server[0] == '\0' || ci->port[0] == '\0' || ci->database[0] == '\0') {
+		if (ci->server[0] == '\0' || ci->port[0] == '\0' || ci->database[0] == '\0')
+		{
 			self->errornumber = CONN_INIREAD_ERROR;
 			self->errormsg = "Missing server name, port, or database name in call to CC_connect.";
 			return 0;
@@ -506,15 +541,18 @@ static char *func="CC_connect";
 
 		mylog("CC_connect(): DSN = '%s', server = '%s', port = '%s', database = '%s', username = '%s', password='%s'\n", ci->dsn, ci->server, ci->port, ci->database, ci->username, ci->password);
 
-		/* If the socket was closed for some reason (like a SQLDisconnect, but no SQLFreeConnect
-			then create a socket now.
-		*/
-		if ( ! self->sock) {
+		/*
+		 * If the socket was closed for some reason (like a SQLDisconnect,
+		 * but no SQLFreeConnect then create a socket now.
+		 */
+		if (!self->sock)
+		{
 			self->sock = SOCK_Constructor();
-			if ( ! self->sock) {
-				 self->errornumber = CONNECTION_SERVER_NOT_REACHED;
-				 self->errormsg = "Could not open a socket to the server";
-				 return 0;
+			if (!self->sock)
+			{
+				self->errornumber = CONNECTION_SERVER_NOT_REACHED;
+				self->errormsg = "Could not open a socket to the server";
+				return 0;
 			}
 		}
 
@@ -523,7 +561,8 @@ static char *func="CC_connect";
 		mylog("connecting to the server socket...\n");
 
 		SOCK_connect_to(sock, (short) atoi(ci->port), ci->server);
-		if (SOCK_get_errcode(sock) != 0) {
+		if (SOCK_get_errcode(sock) != 0)
+		{
 			mylog("connection to the server socket failed.\n");
 			self->errornumber = CONNECTION_SERVER_NOT_REACHED;
 			self->errormsg = "Could not connect to the server";
@@ -536,7 +575,7 @@ static char *func="CC_connect";
 		mylog("sizeof startup packet = %d\n", sizeof(StartupPacket));
 
 		/* Send length of Authentication Block */
-		SOCK_put_int(sock, 4+sizeof(StartupPacket), 4); 
+		SOCK_put_int(sock, 4 + sizeof(StartupPacket), 4);
 
 		sp.protoVersion = (ProtocolVersion) htonl(PG_PROTOCOL_LATEST);
 
@@ -548,7 +587,8 @@ static char *func="CC_connect";
 
 		mylog("sent the authentication block.\n");
 
-		if (sock->errornumber != 0) {
+		if (sock->errornumber != 0)
+		{
 			mylog("couldn't send the authentication block properly.\n");
 			self->errornumber = CONN_INVALID_AUTHENTICATION;
 			self->errormsg = "Sending the authentication packet failed";
@@ -561,100 +601,107 @@ static char *func="CC_connect";
 
 
 	/* *************************************************** */
-	/*	Now get the authentication request from backend */
+	/* Now get the authentication request from backend */
 	/* *************************************************** */
 
-	do {
+	do
+	{
 
 		if (do_password)
 			beresp = 'R';
 		else
 			beresp = SOCK_get_char(sock);
 
-		switch(beresp) {
-		case 'E':
-			mylog("auth got 'E'\n");
+		switch (beresp)
+		{
+			case 'E':
+				mylog("auth got 'E'\n");
 
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
-			self->errornumber = CONN_INVALID_AUTHENTICATION;
-			self->errormsg = msgbuffer;
-			qlog("ERROR from backend during authentication: '%s'\n", self->errormsg);
-			return 0;
-		case 'R':
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
+				self->errornumber = CONN_INVALID_AUTHENTICATION;
+				self->errormsg = msgbuffer;
+				qlog("ERROR from backend during authentication: '%s'\n", self->errormsg);
+				return 0;
+			case 'R':
 
-			if (do_password) {
-				mylog("in 'R' do_password\n");
-				areq = AUTH_REQ_PASSWORD;
-				do_password = FALSE;
-			}
-			else {
-				mylog("auth got 'R'\n");
+				if (do_password)
+				{
+					mylog("in 'R' do_password\n");
+					areq = AUTH_REQ_PASSWORD;
+					do_password = FALSE;
+				}
+				else
+				{
+					mylog("auth got 'R'\n");
 
-				areq = SOCK_get_int(sock, 4);
-				if (areq == AUTH_REQ_CRYPT)
-					SOCK_get_n_char(sock, salt, 2);
+					areq = SOCK_get_int(sock, 4);
+					if (areq == AUTH_REQ_CRYPT)
+						SOCK_get_n_char(sock, salt, 2);
 
-				mylog("areq = %d\n", areq);
-			}
-			switch(areq) {
-			case AUTH_REQ_OK:
-				break;
+					mylog("areq = %d\n", areq);
+				}
+				switch (areq)
+				{
+					case AUTH_REQ_OK:
+						break;
 
-			case AUTH_REQ_KRB4:
-				self->errormsg = "Kerberos 4 authentication not supported";
-				self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
-				return 0;
+					case AUTH_REQ_KRB4:
+						self->errormsg = "Kerberos 4 authentication not supported";
+						self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
+						return 0;
 
-			case AUTH_REQ_KRB5:
-				self->errormsg = "Kerberos 5 authentication not supported";
-				self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
-				return 0;
+					case AUTH_REQ_KRB5:
+						self->errormsg = "Kerberos 5 authentication not supported";
+						self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
+						return 0;
 
-			case AUTH_REQ_PASSWORD:
-				mylog("in AUTH_REQ_PASSWORD\n");
+					case AUTH_REQ_PASSWORD:
+						mylog("in AUTH_REQ_PASSWORD\n");
 
-				if (ci->password[0] == '\0') {
-					self->errornumber = CONNECTION_NEED_PASSWORD;
-					self->errormsg = "A password is required for this connection.";
-					return -1;	/* need password */
-				}
+						if (ci->password[0] == '\0')
+						{
+							self->errornumber = CONNECTION_NEED_PASSWORD;
+							self->errormsg = "A password is required for this connection.";
+							return -1;	/* need password */
+						}
 
-				mylog("past need password\n");
+						mylog("past need password\n");
 
-				SOCK_put_int(sock, 4+strlen(ci->password)+1, 4);
-				SOCK_put_n_char(sock, ci->password, strlen(ci->password) + 1);
-				SOCK_flush_output(sock);
+						SOCK_put_int(sock, 4 + strlen(ci->password) + 1, 4);
+						SOCK_put_n_char(sock, ci->password, strlen(ci->password) + 1);
+						SOCK_flush_output(sock);
 
-				mylog("past flush\n");
-				break;
+						mylog("past flush\n");
+						break;
 
-			case AUTH_REQ_CRYPT:
-				self->errormsg = "Password crypt authentication not supported";
-				self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
-				return 0;
+					case AUTH_REQ_CRYPT:
+						self->errormsg = "Password crypt authentication not supported";
+						self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
+						return 0;
 
+					default:
+						self->errormsg = "Unknown authentication type";
+						self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
+						return 0;
+				}
+				break;
 			default:
-				self->errormsg = "Unknown authentication type";
-				self->errornumber = CONN_AUTH_TYPE_UNSUPPORTED;
+				self->errormsg = "Unexpected protocol character during authentication";
+				self->errornumber = CONN_INVALID_AUTHENTICATION;
 				return 0;
-			}
-			break;
-		default:
-			self->errormsg = "Unexpected protocol character during authentication";
-			self->errornumber = CONN_INVALID_AUTHENTICATION;
-			return 0;
 		}
 
-	} while (areq != AUTH_REQ_OK);		
+	} while (areq != AUTH_REQ_OK);
 
-	CC_clear_error(self);	/* clear any password error */
+	CC_clear_error(self);		/* clear any password error */
 
 	/* send an empty query in order to find out whether the specified */
 	/* database really exists on the server machine */
 	mylog("sending an empty query...\n");
 
 	res = CC_send_query(self, " ", NULL);
-	if ( res == NULL || QR_get_status(res) != PGRES_EMPTY_QUERY) {
+	if (res == NULL || QR_get_status(res) != PGRES_EMPTY_QUERY)
+	{
 		mylog("got no result from the empty query.  (probably database does not exist)\n");
 		self->errornumber = CONNECTION_NO_SUCH_DATABASE;
 		self->errormsg = "The database does not exist on the server\nor user authentication failed.";
@@ -667,21 +714,25 @@ static char *func="CC_connect";
 
 	mylog("empty query seems to be OK.\n");
 
-	CC_set_translation (self);
+	CC_set_translation(self);
 
 	/**********************************************/
 	/*******   Send any initial settings  *********/
 	/**********************************************/
 
-	/*	Since these functions allocate statements, and since the connection is not
-		established yet, it would violate odbc state transition rules.  Therefore,
-		these functions call the corresponding local function instead.
-	*/
+	/*
+	 * Since these functions allocate statements, and since the connection
+	 * is not established yet, it would violate odbc state transition
+	 * rules.  Therefore, these functions call the corresponding local
+	 * function instead.
+	 */
 	CC_send_settings(self);
-	CC_lookup_lo(self);		/* a hack to get the oid of our large object oid type */
-	CC_lookup_pg_version(self);	/* Get PostgreSQL version for SQLGetInfo use */
+	CC_lookup_lo(self);			/* a hack to get the oid of our large
+								 * object oid type */
+	CC_lookup_pg_version(self); /* Get PostgreSQL version for SQLGetInfo
+								 * use */
 
-	CC_clear_error(self);	/* clear any initial command errors */
+	CC_clear_error(self);		/* clear any initial command errors */
 	self->status = CONN_CONNECTED;
 
 	mylog("%s: returning...\n", func);
@@ -691,14 +742,16 @@ static char *func="CC_connect";
 }
 
 char
-CC_add_statement(ConnectionClass *self, StatementClass *stmt)
+CC_add_statement(ConnectionClass * self, StatementClass * stmt)
 {
-int i;
+	int			i;
 
 	mylog("CC_add_statement: self=%u, stmt=%u\n", self, stmt);
 
-	for (i = 0; i < self->num_stmts; i++) {
-		if ( ! self->stmts[i]) {
+	for (i = 0; i < self->num_stmts; i++)
+	{
+		if (!self->stmts[i])
+		{
 			stmt->hdbc = self;
 			self->stmts[i] = stmt;
 			return TRUE;
@@ -706,8 +759,8 @@ int i;
 	}
 
 	/* no more room -- allocate more memory */
-	self->stmts = (StatementClass **) realloc( self->stmts, sizeof(StatementClass *) * (STMT_INCREMENT + self->num_stmts));
-	if ( ! self->stmts)
+	self->stmts = (StatementClass **) realloc(self->stmts, sizeof(StatementClass *) * (STMT_INCREMENT + self->num_stmts));
+	if (!self->stmts)
 		return FALSE;
 
 	memset(&self->stmts[self->num_stmts], 0, sizeof(StatementClass *) * STMT_INCREMENT);
@@ -720,13 +773,15 @@ int i;
 	return TRUE;
 }
 
-char 
-CC_remove_statement(ConnectionClass *self, StatementClass *stmt)
+char
+CC_remove_statement(ConnectionClass * self, StatementClass * stmt)
 {
-int i;
+	int			i;
 
-	for (i = 0; i < self->num_stmts; i++) {
-		if (self->stmts[i] == stmt && stmt->status != STMT_EXECUTING) {
+	for (i = 0; i < self->num_stmts; i++)
+	{
+		if (self->stmts[i] == stmt && stmt->status != STMT_EXECUTING)
+		{
 			self->stmts[i] = NULL;
 			return TRUE;
 		}
@@ -739,11 +794,11 @@ int i;
 	error message with its socket error message.
 */
 char *
-CC_create_errormsg(ConnectionClass *self)
+CC_create_errormsg(ConnectionClass * self)
 {
-SocketClass *sock = self->sock;
-int pos;
-static char msg[4096];
+	SocketClass *sock = self->sock;
+	int			pos;
+	static char msg[4096];
 
 	mylog("enter CC_create_errormsg\n");
 
@@ -754,7 +809,8 @@ static char msg[4096];
 
 	mylog("msg = '%s'\n", msg);
 
-	if (sock && sock->errormsg && sock->errormsg[0] != '\0') {
+	if (sock && sock->errormsg && sock->errormsg[0] != '\0')
+	{
 		pos = strlen(msg);
 		sprintf(&msg[pos], ";\n%s", sock->errormsg);
 	}
@@ -764,20 +820,22 @@ static char msg[4096];
 }
 
 
-char 
-CC_get_error(ConnectionClass *self, int *number, char **message)
+char
+CC_get_error(ConnectionClass * self, int *number, char **message)
 {
-int rv;
+	int			rv;
 
 	mylog("enter CC_get_error\n");
 
-	/*	Create a very informative errormsg if it hasn't been done yet. */
-	if ( ! self->errormsg_created) {
+	/* Create a very informative errormsg if it hasn't been done yet. */
+	if (!self->errormsg_created)
+	{
 		self->errormsg = CC_create_errormsg(self);
 		self->errormsg_created = TRUE;
 	}
 
-	if (self->errornumber) {
+	if (self->errornumber)
+	{
 		*number = self->errornumber;
 		*message = self->errormsg;
 	}
@@ -796,25 +854,29 @@ int rv;
 	needs to be re-filled).
 
 	The "cursor" is used by SQLExecute to associate a statement handle as the cursor name
-	(i.e., C3326857) for SQL select statements.  This cursor is then used in future 
+	(i.e., C3326857) for SQL select statements.  This cursor is then used in future
 	'declare cursor C3326857 for ...' and 'fetch 100 in C3326857' statements.
 */
 QResultClass *
-CC_send_query(ConnectionClass *self, char *query, QueryInfo *qi)
+CC_send_query(ConnectionClass * self, char *query, QueryInfo * qi)
 {
-QResultClass *result_in, *res = NULL;
-char swallow;
-int id;
-SocketClass *sock = self->sock;
-static char msgbuffer[MAX_MESSAGE_LEN+1];
-char cmdbuffer[MAX_MESSAGE_LEN+1];	/* QR_set_command() dups this string so dont need static */
+	QResultClass *result_in,
+			   *res = NULL;
+	char		swallow;
+	int			id;
+	SocketClass *sock = self->sock;
+	static char msgbuffer[MAX_MESSAGE_LEN + 1];
+	char		cmdbuffer[MAX_MESSAGE_LEN + 1]; /* QR_set_command() dups
+												 * this string so dont
+												 * need static */
 
 
 	mylog("send_query(): conn=%u, query='%s'\n", self, query);
 	qlog("conn=%u, query='%s'\n", self, query);
 
 	/* Indicate that we are sending a query to the backend */
-	if(strlen(query) > MAX_MESSAGE_LEN-2) {
+	if (strlen(query) > MAX_MESSAGE_LEN - 2)
+	{
 		self->errornumber = CONNECTION_MSG_TOO_LONG;
 		self->errormsg = "Query string is too long";
 		return NULL;
@@ -823,7 +885,8 @@ char cmdbuffer[MAX_MESSAGE_LEN+1];	/* QR_set_command() dups this string so dont
 	if ((NULL == query) || (query[0] == '\0'))
 		return NULL;
 
-	if (SOCK_get_errcode(sock) != 0) {
+	if (SOCK_get_errcode(sock) != 0)
+	{
 		self->errornumber = CONNECTION_COULD_NOT_SEND;
 		self->errormsg = "Could not send Query to backend";
 		CC_set_no_trans(self);
@@ -831,7 +894,8 @@ char cmdbuffer[MAX_MESSAGE_LEN+1];	/* QR_set_command() dups this string so dont
 	}
 
 	SOCK_put_char(sock, 'Q');
-	if (SOCK_get_errcode(sock) != 0) {
+	if (SOCK_get_errcode(sock) != 0)
+	{
 		self->errornumber = CONNECTION_COULD_NOT_SEND;
 		self->errormsg = "Could not send Query to backend";
 		CC_set_no_trans(self);
@@ -841,7 +905,8 @@ char cmdbuffer[MAX_MESSAGE_LEN+1];	/* QR_set_command() dups this string so dont
 	SOCK_put_string(sock, query);
 	SOCK_flush_output(sock);
 
-	if (SOCK_get_errcode(sock) != 0) {
+	if (SOCK_get_errcode(sock) != 0)
+	{
 		self->errornumber = CONNECTION_COULD_NOT_SEND;
 		self->errormsg = "Could not send Query to backend";
 		CC_set_no_trans(self);
@@ -850,11 +915,13 @@ char cmdbuffer[MAX_MESSAGE_LEN+1];	/* QR_set_command() dups this string so dont
 
 	mylog("send_query: done sending query\n");
 
-	while(1) {
+	while (1)
+	{
 		/* what type of message is coming now ? */
 		id = SOCK_get_char(sock);
 
-		if ((SOCK_get_errcode(sock) != 0) || (id == EOF)) {
+		if ((SOCK_get_errcode(sock) != 0) || (id == EOF))
+		{
 			self->errornumber = CONNECTION_NO_RESPONSE;
 			self->errormsg = "No response from the backend";
 			if (res)
@@ -867,211 +934,237 @@ char cmdbuffer[MAX_MESSAGE_LEN+1];	/* QR_set_command() dups this string so dont
 
 		mylog("send_query: got id = '%c'\n", id);
 
-		switch (id) {
-		case 'A' : /* Asynchronous Messages are ignored */
-			(void)SOCK_get_int(sock, 4); /* id of notification */
-			SOCK_get_string(sock, msgbuffer, MAX_MESSAGE_LEN);
-			/* name of the relation the message comes from */
-			break;
-		case 'C' : /* portal query command, no tuples returned */
-			/* read in the return message from the backend */
-			SOCK_get_string(sock, cmdbuffer, MAX_MESSAGE_LEN);
-			if (SOCK_get_errcode(sock) != 0) {
-				self->errornumber = CONNECTION_NO_RESPONSE;
-				self->errormsg = "No response from backend while receiving a portal query command";
-				mylog("send_query: 'C' - %s\n", self->errormsg);
-				CC_set_no_trans(self);
-				return NULL;
-			} else {
-
-				char clear = 0;
-
-				mylog("send_query: ok - 'C' - %s\n", cmdbuffer);
-
-				if (res == NULL)	/* allow for "show" style notices */
-					res = QR_Constructor();
-
-				mylog("send_query: setting cmdbuffer = '%s'\n", cmdbuffer);
-
-				/*	Only save the first command */
-				QR_set_status(res, PGRES_COMMAND_OK);
-				QR_set_command(res, cmdbuffer);
-
-				/* (Quotation from the original comments)
-					since backend may produce more than one result for some commands
-					we need to poll until clear
-					so we send an empty query, and keep reading out of the pipe
-					until an 'I' is received
-				*/
-
-				SOCK_put_string(sock, "Q ");
-				SOCK_flush_output(sock);
-
-				while( ! clear) {
-					id = SOCK_get_char(sock);
-					switch(id) {
-					case 'I':
-						(void) SOCK_get_char(sock);
-						clear = TRUE;
-						break;
-					case 'Z':
-						break;
-					case 'C':
-						SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
-						qlog("Command response: '%s'\n", cmdbuffer);
-						break;
-					case 'N':
-						SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
-						qlog("NOTICE from backend during clear: '%s'\n", cmdbuffer);
-						break;
-					case 'E':
-						SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
-						qlog("ERROR from backend during clear: '%s'\n", cmdbuffer);
-						/* We must report this type of error as well
-						   (practically for reference integrity violation
-						   error reporting, from PostgreSQL 7.0).
-						   (Zoltan Kovacs, 04/26/2000)
-						*/
-						self->errormsg = cmdbuffer;
-						if ( ! strncmp(self->errormsg, "FATAL", 5)) {
-						    self->errornumber = CONNECTION_SERVER_REPORTED_ERROR;
-						    CC_set_no_trans(self);
-						    }
-						else 
-						    self->errornumber = CONNECTION_SERVER_REPORTED_WARNING;
-						QR_set_status(res, PGRES_NONFATAL_ERROR);
-						break;
+		switch (id)
+		{
+			case 'A':			/* Asynchronous Messages are ignored */
+				(void) SOCK_get_int(sock, 4);	/* id of notification */
+				SOCK_get_string(sock, msgbuffer, MAX_MESSAGE_LEN);
+				/* name of the relation the message comes from */
+				break;
+			case 'C':			/* portal query command, no tuples
+								 * returned */
+				/* read in the return message from the backend */
+				SOCK_get_string(sock, cmdbuffer, MAX_MESSAGE_LEN);
+				if (SOCK_get_errcode(sock) != 0)
+				{
+					self->errornumber = CONNECTION_NO_RESPONSE;
+					self->errormsg = "No response from backend while receiving a portal query command";
+					mylog("send_query: 'C' - %s\n", self->errormsg);
+					CC_set_no_trans(self);
+					return NULL;
+				}
+				else
+				{
+
+					char		clear = 0;
+
+					mylog("send_query: ok - 'C' - %s\n", cmdbuffer);
+
+					if (res == NULL)	/* allow for "show" style notices */
+						res = QR_Constructor();
+
+					mylog("send_query: setting cmdbuffer = '%s'\n", cmdbuffer);
+
+					/* Only save the first command */
+					QR_set_status(res, PGRES_COMMAND_OK);
+					QR_set_command(res, cmdbuffer);
+
+					/*
+					 * (Quotation from the original comments) since
+					 * backend may produce more than one result for some
+					 * commands we need to poll until clear so we send an
+					 * empty query, and keep reading out of the pipe until
+					 * an 'I' is received
+					 */
+
+					SOCK_put_string(sock, "Q ");
+					SOCK_flush_output(sock);
+
+					while (!clear)
+					{
+						id = SOCK_get_char(sock);
+						switch (id)
+						{
+							case 'I':
+								(void) SOCK_get_char(sock);
+								clear = TRUE;
+								break;
+							case 'Z':
+								break;
+							case 'C':
+								SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
+								qlog("Command response: '%s'\n", cmdbuffer);
+								break;
+							case 'N':
+								SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
+								qlog("NOTICE from backend during clear: '%s'\n", cmdbuffer);
+								break;
+							case 'E':
+								SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
+								qlog("ERROR from backend during clear: '%s'\n", cmdbuffer);
+
+								/*
+								 * We must report this type of error as
+								 * well (practically for reference
+								 * integrity violation error reporting,
+								 * from PostgreSQL 7.0). (Zoltan Kovacs,
+								 * 04/26/2000)
+								 */
+								self->errormsg = cmdbuffer;
+								if (!strncmp(self->errormsg, "FATAL", 5))
+								{
+									self->errornumber = CONNECTION_SERVER_REPORTED_ERROR;
+									CC_set_no_trans(self);
+								}
+								else
+									self->errornumber = CONNECTION_SERVER_REPORTED_WARNING;
+								QR_set_status(res, PGRES_NONFATAL_ERROR);
+								break;
+						}
 					}
+
+					mylog("send_query: returning res = %u\n", res);
+					return res;
 				}
-				
-				mylog("send_query: returning res = %u\n", res);
-				return res;
-			}
-		case 'K':	/* Secret key (6.4 protocol) */
-			(void)SOCK_get_int(sock, 4); /* pid */
-			(void)SOCK_get_int(sock, 4); /* key */
+			case 'K':			/* Secret key (6.4 protocol) */
+				(void) SOCK_get_int(sock, 4);	/* pid */
+				(void) SOCK_get_int(sock, 4);	/* key */
 
-			break;
-		case 'Z':	/* Backend is ready for new query (6.4) */
-			break;
-		case 'N' : /* NOTICE: */
-			SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
+				break;
+			case 'Z':			/* Backend is ready for new query (6.4) */
+				break;
+			case 'N':			/* NOTICE: */
+				SOCK_get_string(sock, cmdbuffer, ERROR_MSG_LENGTH);
 
-			res = QR_Constructor();
-			QR_set_status(res, PGRES_NONFATAL_ERROR);
-			QR_set_notice(res, cmdbuffer);	/* will dup this string */
+				res = QR_Constructor();
+				QR_set_status(res, PGRES_NONFATAL_ERROR);
+				QR_set_notice(res, cmdbuffer);	/* will dup this string */
 
-			mylog("~~~ NOTICE: '%s'\n", cmdbuffer);
-			qlog("NOTICE from backend during send_query: '%s'\n", cmdbuffer);
+				mylog("~~~ NOTICE: '%s'\n", cmdbuffer);
+				qlog("NOTICE from backend during send_query: '%s'\n", cmdbuffer);
 
-			continue;		/* dont return a result -- continue reading */
+				continue;		/* dont return a result -- continue
+								 * reading */
 
-		case 'I' : /* The server sends an empty query */
+			case 'I':			/* The server sends an empty query */
 				/* There is a closing '\0' following the 'I', so we eat it */
-			swallow = SOCK_get_char(sock);
-			if ((swallow != '\0') || SOCK_get_errcode(sock) != 0) {
-				self->errornumber = CONNECTION_BACKEND_CRAZY;
-				self->errormsg = "Unexpected protocol character from backend (send_query - I)";
-				res = QR_Constructor();
-				QR_set_status(res, PGRES_FATAL_ERROR);
-				return res;
-			} else {
-				/* We return the empty query */
-				res = QR_Constructor();
-				QR_set_status(res, PGRES_EMPTY_QUERY);
-				return res;
-			}
-			break;
-		case 'E' : 
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
-
-			/*	Remove a newline */
-			if (msgbuffer[0] != '\0' && msgbuffer[strlen(msgbuffer)-1] == '\n')
-				msgbuffer[strlen(msgbuffer)-1] = '\0';
+				swallow = SOCK_get_char(sock);
+				if ((swallow != '\0') || SOCK_get_errcode(sock) != 0)
+				{
+					self->errornumber = CONNECTION_BACKEND_CRAZY;
+					self->errormsg = "Unexpected protocol character from backend (send_query - I)";
+					res = QR_Constructor();
+					QR_set_status(res, PGRES_FATAL_ERROR);
+					return res;
+				}
+				else
+				{
+					/* We return the empty query */
+					res = QR_Constructor();
+					QR_set_status(res, PGRES_EMPTY_QUERY);
+					return res;
+				}
+				break;
+			case 'E':
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
 
-			self->errormsg = msgbuffer;
+				/* Remove a newline */
+				if (msgbuffer[0] != '\0' && msgbuffer[strlen(msgbuffer) - 1] == '\n')
+					msgbuffer[strlen(msgbuffer) - 1] = '\0';
 
-			mylog("send_query: 'E' - %s\n", self->errormsg);
-			qlog("ERROR from backend during send_query: '%s'\n", self->errormsg);
+				self->errormsg = msgbuffer;
 
-			/* We should report that an error occured. Zoltan */
-			res = QR_Constructor();
+				mylog("send_query: 'E' - %s\n", self->errormsg);
+				qlog("ERROR from backend during send_query: '%s'\n", self->errormsg);
 
-			if ( ! strncmp(self->errormsg, "FATAL", 5)) {
-				self->errornumber = CONNECTION_SERVER_REPORTED_ERROR;
-				CC_set_no_trans(self);
-				QR_set_status(res, PGRES_FATAL_ERROR);
-			}
-			else {
-				self->errornumber = CONNECTION_SERVER_REPORTED_WARNING;
-				QR_set_status(res, PGRES_NONFATAL_ERROR);
-			}
+				/* We should report that an error occured. Zoltan */
+				res = QR_Constructor();
 
-			return res; /* instead of NULL. Zoltan */
+				if (!strncmp(self->errormsg, "FATAL", 5))
+				{
+					self->errornumber = CONNECTION_SERVER_REPORTED_ERROR;
+					CC_set_no_trans(self);
+					QR_set_status(res, PGRES_FATAL_ERROR);
+				}
+				else
+				{
+					self->errornumber = CONNECTION_SERVER_REPORTED_WARNING;
+					QR_set_status(res, PGRES_NONFATAL_ERROR);
+				}
 
-		case 'P' : /* get the Portal name */
-			SOCK_get_string(sock, msgbuffer, MAX_MESSAGE_LEN);
-			break;
-		case 'T': /* Tuple results start here */
-			result_in = qi ? qi->result_in : NULL;
+				return res;		/* instead of NULL. Zoltan */
 
-			if ( result_in == NULL) {
-				result_in = QR_Constructor();
-				mylog("send_query: 'T' no result_in: res = %u\n", result_in);
-				if ( ! result_in) {
-					self->errornumber = CONNECTION_COULD_NOT_RECEIVE;
-					self->errormsg = "Could not create result info in send_query.";
-					return NULL;
-				}
+			case 'P':			/* get the Portal name */
+				SOCK_get_string(sock, msgbuffer, MAX_MESSAGE_LEN);
+				break;
+			case 'T':			/* Tuple results start here */
+				result_in = qi ? qi->result_in : NULL;
+
+				if (result_in == NULL)
+				{
+					result_in = QR_Constructor();
+					mylog("send_query: 'T' no result_in: res = %u\n", result_in);
+					if (!result_in)
+					{
+						self->errornumber = CONNECTION_COULD_NOT_RECEIVE;
+						self->errormsg = "Could not create result info in send_query.";
+						return NULL;
+					}
 
-				if (qi)
-					QR_set_cache_size(result_in, qi->row_size);
+					if (qi)
+						QR_set_cache_size(result_in, qi->row_size);
 
-				if ( ! QR_fetch_tuples(result_in, self, qi ? qi->cursor : NULL)) {
-					self->errornumber = CONNECTION_COULD_NOT_RECEIVE;
-					self->errormsg = QR_get_message(result_in);
-					return NULL;
+					if (!QR_fetch_tuples(result_in, self, qi ? qi->cursor : NULL))
+					{
+						self->errornumber = CONNECTION_COULD_NOT_RECEIVE;
+						self->errormsg = QR_get_message(result_in);
+						return NULL;
+					}
 				}
-			}
-			else {  /* next fetch, so reuse an existing result */
-				if ( ! QR_fetch_tuples(result_in, NULL, NULL)) {
-					self->errornumber = CONNECTION_COULD_NOT_RECEIVE;
-					self->errormsg = QR_get_message(result_in);
-					return NULL;
+				else
+				{				/* next fetch, so reuse an existing result */
+					if (!QR_fetch_tuples(result_in, NULL, NULL))
+					{
+						self->errornumber = CONNECTION_COULD_NOT_RECEIVE;
+						self->errormsg = QR_get_message(result_in);
+						return NULL;
+					}
 				}
-			}
 
-			return result_in;
-		case 'D': /* Copy in command began successfully */
-			res = QR_Constructor();
-			QR_set_status(res, PGRES_COPY_IN);
-			return res;
-		case 'B': /* Copy out command began successfully */
-			res = QR_Constructor();
-			QR_set_status(res, PGRES_COPY_OUT);
-			return res;
-		default:
-			self->errornumber = CONNECTION_BACKEND_CRAZY;
-			self->errormsg = "Unexpected protocol character from backend (send_query)";
-			CC_set_no_trans(self);
+				return result_in;
+			case 'D':			/* Copy in command began successfully */
+				res = QR_Constructor();
+				QR_set_status(res, PGRES_COPY_IN);
+				return res;
+			case 'B':			/* Copy out command began successfully */
+				res = QR_Constructor();
+				QR_set_status(res, PGRES_COPY_OUT);
+				return res;
+			default:
+				self->errornumber = CONNECTION_BACKEND_CRAZY;
+				self->errormsg = "Unexpected protocol character from backend (send_query)";
+				CC_set_no_trans(self);
 
-			mylog("send_query: error - %s\n", self->errormsg);
-			return NULL;
+				mylog("send_query: error - %s\n", self->errormsg);
+				return NULL;
 		}
 	}
 }
 
 int
-CC_send_function(ConnectionClass *self, int fnid, void *result_buf, int *actual_result_len, int result_is_int, LO_ARG *args, int nargs)
+CC_send_function(ConnectionClass * self, int fnid, void *result_buf, int *actual_result_len, int result_is_int, LO_ARG * args, int nargs)
 {
-char id, c, done;
-SocketClass *sock = self->sock;
-static char msgbuffer[MAX_MESSAGE_LEN+1];
-int i;
+	char		id,
+				c,
+				done;
+	SocketClass *sock = self->sock;
+	static char msgbuffer[MAX_MESSAGE_LEN + 1];
+	int			i;
 
 	mylog("send_function(): conn=%u, fnid=%d, result_is_int=%d, nargs=%d\n", self, fnid, result_is_int, nargs);
 
-	if (SOCK_get_errcode(sock) != 0) {
+	if (SOCK_get_errcode(sock) != 0)
+	{
 		self->errornumber = CONNECTION_COULD_NOT_SEND;
 		self->errormsg = "Could not send function to backend";
 		CC_set_no_trans(self);
@@ -1079,24 +1172,26 @@ int i;
 	}
 
 	SOCK_put_string(sock, "F ");
-	if (SOCK_get_errcode(sock) != 0) {
+	if (SOCK_get_errcode(sock) != 0)
+	{
 		self->errornumber = CONNECTION_COULD_NOT_SEND;
 		self->errormsg = "Could not send function to backend";
 		CC_set_no_trans(self);
 		return FALSE;
 	}
 
-	SOCK_put_int(sock, fnid, 4); 
-	SOCK_put_int(sock, nargs, 4); 
+	SOCK_put_int(sock, fnid, 4);
+	SOCK_put_int(sock, nargs, 4);
 
 	mylog("send_function: done sending function\n");
 
-	for (i = 0; i < nargs; ++i) {
+	for (i = 0; i < nargs; ++i)
+	{
 
 		mylog("  arg[%d]: len = %d, isint = %d, integer = %d, ptr = %u\n", i, args[i].len, args[i].isint, args[i].u.integer, args[i].u.ptr);
 
 		SOCK_put_int(sock, args[i].len, 4);
-		if (args[i].isint) 
+		if (args[i].isint)
 			SOCK_put_int(sock, args[i].u.integer, 4);
 		else
 			SOCK_put_n_char(sock, (char *) args[i].u.ptr, args[i].len);
@@ -1108,159 +1203,169 @@ int i;
 	mylog("  after flush output\n");
 
 	done = FALSE;
-	while ( ! done) {
+	while (!done)
+	{
 		id = SOCK_get_char(sock);
 		mylog("   got id = %c\n", id);
 
-		switch(id) {
-		case 'V':
-			done = TRUE;
-			break;		/* ok */
+		switch (id)
+		{
+			case 'V':
+				done = TRUE;
+				break;			/* ok */
 
-		case 'N':
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
-			mylog("send_function(V): 'N' - %s\n", msgbuffer);
-			/*	continue reading */
-			break;
+			case 'N':
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
+				mylog("send_function(V): 'N' - %s\n", msgbuffer);
+				/* continue reading */
+				break;
 
-		case 'E':
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
-			self->errormsg = msgbuffer;
+			case 'E':
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
+				self->errormsg = msgbuffer;
 
-			mylog("send_function(V): 'E' - %s\n", self->errormsg);
-			qlog("ERROR from backend during send_function: '%s'\n", self->errormsg);
+				mylog("send_function(V): 'E' - %s\n", self->errormsg);
+				qlog("ERROR from backend during send_function: '%s'\n", self->errormsg);
 
-			return FALSE;
+				return FALSE;
 
-		case 'Z':
-			break;
+			case 'Z':
+				break;
 
-		default:
-			self->errornumber = CONNECTION_BACKEND_CRAZY;
-			self->errormsg = "Unexpected protocol character from backend (send_function, args)";
-			CC_set_no_trans(self);
+			default:
+				self->errornumber = CONNECTION_BACKEND_CRAZY;
+				self->errormsg = "Unexpected protocol character from backend (send_function, args)";
+				CC_set_no_trans(self);
 
-			mylog("send_function: error - %s\n", self->errormsg);
-			return FALSE;
+				mylog("send_function: error - %s\n", self->errormsg);
+				return FALSE;
 		}
 	}
 
 	id = SOCK_get_char(sock);
-	for (;;) {
-		switch (id) {
-		case 'G':	/* function returned properly */
-			mylog("  got G!\n");
+	for (;;)
+	{
+		switch (id)
+		{
+			case 'G':			/* function returned properly */
+				mylog("  got G!\n");
 
-			*actual_result_len = SOCK_get_int(sock, 4);
-			mylog("  actual_result_len = %d\n", *actual_result_len);
+				*actual_result_len = SOCK_get_int(sock, 4);
+				mylog("  actual_result_len = %d\n", *actual_result_len);
 
-			if (result_is_int)
-				*((int *) result_buf) = SOCK_get_int(sock, 4);
-			else
-				SOCK_get_n_char(sock, (char *) result_buf, *actual_result_len);
+				if (result_is_int)
+					*((int *) result_buf) = SOCK_get_int(sock, 4);
+				else
+					SOCK_get_n_char(sock, (char *) result_buf, *actual_result_len);
 
-			mylog("  after get result\n");
+				mylog("  after get result\n");
 
-			c = SOCK_get_char(sock);	/* get the last '0' */
+				c = SOCK_get_char(sock);		/* get the last '0' */
 
-			mylog("   after get 0\n");
+				mylog("   after get 0\n");
 
-			return TRUE;
+				return TRUE;
 
-		case 'E':
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
-			self->errormsg = msgbuffer;
+			case 'E':
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
+				self->errormsg = msgbuffer;
 
-			mylog("send_function(G): 'E' - %s\n", self->errormsg);
-			qlog("ERROR from backend during send_function: '%s'\n", self->errormsg);
+				mylog("send_function(G): 'E' - %s\n", self->errormsg);
+				qlog("ERROR from backend during send_function: '%s'\n", self->errormsg);
 
-			return FALSE;
+				return FALSE;
 
-		case 'N':
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
+			case 'N':
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
 
-			mylog("send_function(G): 'N' - %s\n", msgbuffer);
-			qlog("NOTICE from backend during send_function: '%s'\n", msgbuffer);
+				mylog("send_function(G): 'N' - %s\n", msgbuffer);
+				qlog("NOTICE from backend during send_function: '%s'\n", msgbuffer);
 
-			continue;		/* dont return a result -- continue reading */
+				continue;		/* dont return a result -- continue
+								 * reading */
 
-		case '0':	/* empty result */
-			return TRUE;
+			case '0':			/* empty result */
+				return TRUE;
 
-		default:
-			self->errornumber = CONNECTION_BACKEND_CRAZY;
-			self->errormsg = "Unexpected protocol character from backend (send_function, result)";
-			CC_set_no_trans(self);
+			default:
+				self->errornumber = CONNECTION_BACKEND_CRAZY;
+				self->errormsg = "Unexpected protocol character from backend (send_function, result)";
+				CC_set_no_trans(self);
 
-			mylog("send_function: error - %s\n", self->errormsg);
-			return FALSE;
+				mylog("send_function: error - %s\n", self->errormsg);
+				return FALSE;
 		}
 	}
 }
 
 
 char
-CC_send_settings(ConnectionClass *self)
+CC_send_settings(ConnectionClass * self)
 {
-  /* char ini_query[MAX_MESSAGE_LEN]; */
-ConnInfo *ci = &(self->connInfo);
+	/* char ini_query[MAX_MESSAGE_LEN]; */
+	ConnInfo   *ci = &(self->connInfo);
+
 /* QResultClass *res; */
-HSTMT hstmt;
-StatementClass *stmt;
-RETCODE result;
-char status = TRUE;
-char *cs, *ptr;
-static char *func="CC_send_settings";
+	HSTMT		hstmt;
+	StatementClass *stmt;
+	RETCODE		result;
+	char		status = TRUE;
+	char	   *cs,
+			   *ptr;
+	static char *func = "CC_send_settings";
 
 
 	mylog("%s: entering...\n", func);
 
-/*	This function must use the local odbc API functions since the odbc state 
+/*	This function must use the local odbc API functions since the odbc state
 	has not transitioned to "connected" yet.
 */
 
-	result = SQLAllocStmt( self, &hstmt);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(self, &hstmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 		return FALSE;
-	}
 	stmt = (StatementClass *) hstmt;
 
-	stmt->internal = TRUE;	/* ensure no BEGIN/COMMIT/ABORT stuff */
+	stmt->internal = TRUE;		/* ensure no BEGIN/COMMIT/ABORT stuff */
 
-	/*	Set the Datestyle to the format the driver expects it to be in */
+	/* Set the Datestyle to the format the driver expects it to be in */
 	result = SQLExecDirect(hstmt, "set DateStyle to 'ISO'", SQL_NTS);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 		status = FALSE;
 
 	mylog("%s: result %d, status %d from set DateStyle\n", func, result, status);
 
-	/*	Disable genetic optimizer based on global flag */
-	if (globals.disable_optimizer) {
+	/* Disable genetic optimizer based on global flag */
+	if (globals.disable_optimizer)
+	{
 		result = SQLExecDirect(hstmt, "set geqo to 'OFF'", SQL_NTS);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 			status = FALSE;
 
 		mylog("%s: result %d, status %d from set geqo\n", func, result, status);
-	
+
 	}
 
-	/*	KSQO */
-	if (globals.ksqo) {
+	/* KSQO */
+	if (globals.ksqo)
+	{
 		result = SQLExecDirect(hstmt, "set ksqo to 'ON'", SQL_NTS);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 			status = FALSE;
 
 		mylog("%s: result %d, status %d from set ksqo\n", func, result, status);
-	
+
 	}
 
-	/*	Global settings */
-	if (globals.conn_settings[0] != '\0') {
+	/* Global settings */
+	if (globals.conn_settings[0] != '\0')
+	{
 		cs = strdup(globals.conn_settings);
 		ptr = strtok(cs, ";");
-		while (ptr) {
+		while (ptr)
+		{
 			result = SQLExecDirect(hstmt, ptr, SQL_NTS);
-			if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+			if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 				status = FALSE;
 
 			mylog("%s: result %d, status %d from '%s'\n", func, result, status, ptr);
@@ -1270,14 +1375,16 @@ static char *func="CC_send_settings";
 
 		free(cs);
 	}
-	
-	/*	Per Datasource settings */
-	if (ci->conn_settings[0] != '\0') {
+
+	/* Per Datasource settings */
+	if (ci->conn_settings[0] != '\0')
+	{
 		cs = strdup(ci->conn_settings);
 		ptr = strtok(cs, ";");
-		while (ptr) {
+		while (ptr)
+		{
 			result = SQLExecDirect(hstmt, ptr, SQL_NTS);
-			if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+			if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 				status = FALSE;
 
 			mylog("%s: result %d, status %d from '%s'\n", func, result, status, ptr);
@@ -1299,38 +1406,40 @@ static char *func="CC_send_settings";
 	will go away and the define 'PG_TYPE_LO' will be updated.
 */
 void
-CC_lookup_lo(ConnectionClass *self) 
+CC_lookup_lo(ConnectionClass * self)
 {
-HSTMT hstmt;
-StatementClass *stmt;
-RETCODE result;
-static char *func = "CC_lookup_lo";
+	HSTMT		hstmt;
+	StatementClass *stmt;
+	RETCODE		result;
+	static char *func = "CC_lookup_lo";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-/*	This function must use the local odbc API functions since the odbc state 
+/*	This function must use the local odbc API functions since the odbc state
 	has not transitioned to "connected" yet.
 */
-	result = SQLAllocStmt( self, &hstmt);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(self, &hstmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 		return;
-	}
 	stmt = (StatementClass *) hstmt;
 
 	result = SQLExecDirect(hstmt, "select oid from pg_type where typname='" PG_TYPE_LO_NAME "'", SQL_NTS);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		SQLFreeStmt(hstmt, SQL_DROP);
 		return;
 	}
 
 	result = SQLFetch(hstmt);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		SQLFreeStmt(hstmt, SQL_DROP);
 		return;
 	}
 
 	result = SQLGetData(hstmt, 1, SQL_C_SLONG, &self->lobj_type, sizeof(self->lobj_type), NULL);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		SQLFreeStmt(hstmt, SQL_DROP);
 		return;
 	}
@@ -1346,53 +1455,57 @@ static char *func = "CC_lookup_lo";
 	h-inoue 01-2-2001
 */
 void
-CC_initialize_pg_version(ConnectionClass *self) 
+CC_initialize_pg_version(ConnectionClass * self)
 {
-	strcpy(self->pg_version, self->connInfo.protocol); 
+	strcpy(self->pg_version, self->connInfo.protocol);
 	self->pg_version_number = (float) 6.4;
 	self->pg_version_major = 6;
 	self->pg_version_minor = 4;
 }
+
 /*	This function gets the version of PostgreSQL that we're connected to.
-    This is used to return the correct info in SQLGetInfo
+	This is used to return the correct info in SQLGetInfo
 	DJP - 25-1-2001
 */
 void
-CC_lookup_pg_version(ConnectionClass *self) 
+CC_lookup_pg_version(ConnectionClass * self)
 {
-HSTMT hstmt;
-StatementClass *stmt;
-RETCODE result;
-char	szVersion[32];
-int	major, minor;
-static char *func = "CC_lookup_pg_version";
+	HSTMT		hstmt;
+	StatementClass *stmt;
+	RETCODE		result;
+	char		szVersion[32];
+	int			major,
+				minor;
+	static char *func = "CC_lookup_pg_version";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-/*	This function must use the local odbc API functions since the odbc state 
+/*	This function must use the local odbc API functions since the odbc state
 	has not transitioned to "connected" yet.
 */
-	result = SQLAllocStmt( self, &hstmt);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(self, &hstmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 		return;
-	}
 	stmt = (StatementClass *) hstmt;
 
-	/*	get the server's version if possible	*/
+	/* get the server's version if possible	 */
 	result = SQLExecDirect(hstmt, "select version()", SQL_NTS);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		SQLFreeStmt(hstmt, SQL_DROP);
 		return;
 	}
 
 	result = SQLFetch(hstmt);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		SQLFreeStmt(hstmt, SQL_DROP);
 		return;
 	}
 
 	result = SQLGetData(hstmt, 1, SQL_C_CHAR, self->pg_version, MAX_INFO_STRING, NULL);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		SQLFreeStmt(hstmt, SQL_DROP);
 		return;
 	}
@@ -1400,7 +1513,8 @@ static char *func = "CC_lookup_pg_version";
 	/* Extract the Major and Minor numbers from the string. */
 	/* This assumes the string starts 'Postgresql X.X' */
 	strcpy(szVersion, "0.0");
-	if (sscanf(self->pg_version, "%*s %d.%d", &major, &minor) >= 2) {
+	if (sscanf(self->pg_version, "%*s %d.%d", &major, &minor) >= 2)
+	{
 		sprintf(szVersion, "%d.%d", major, minor);
 		self->pg_version_major = major;
 		self->pg_version_minor = minor;
@@ -1416,29 +1530,31 @@ static char *func = "CC_lookup_pg_version";
 }
 
 void
-CC_log_error(char *func, char *desc, ConnectionClass *self)
+CC_log_error(char *func, char *desc, ConnectionClass * self)
 {
 #ifdef PRN_NULLCHECK
 #define nullcheck(a) (a ? a : "(NULL)")
 #endif
 
-	if (self) {
-		qlog("CONN ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, nullcheck (self->errormsg));
-		mylog("CONN ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, nullcheck (self->errormsg));
+	if (self)
+	{
+		qlog("CONN ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, nullcheck(self->errormsg));
+		mylog("CONN ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, nullcheck(self->errormsg));
 		qlog("            ------------------------------------------------------------\n");
 		qlog("            henv=%u, conn=%u, status=%u, num_stmts=%d\n", self->henv, self, self->status, self->num_stmts);
 		qlog("            sock=%u, stmts=%u, lobj_type=%d\n", self->sock, self->stmts, self->lobj_type);
 
 		qlog("            ---------------- Socket Info -------------------------------\n");
-		if (self->sock) {
-		SocketClass *sock = self->sock;
-		qlog("            socket=%d, reverse=%d, errornumber=%d, errormsg='%s'\n", sock->socket, sock->reverse, sock->errornumber, nullcheck(sock->errormsg));
-		qlog("            buffer_in=%u, buffer_out=%u\n", sock->buffer_in, sock->buffer_out);
-		qlog("            buffer_filled_in=%d, buffer_filled_out=%d, buffer_read_in=%d\n", sock->buffer_filled_in, sock->buffer_filled_out, sock->buffer_read_in);
+		if (self->sock)
+		{
+			SocketClass *sock = self->sock;
+
+			qlog("            socket=%d, reverse=%d, errornumber=%d, errormsg='%s'\n", sock->socket, sock->reverse, sock->errornumber, nullcheck(sock->errormsg));
+			qlog("            buffer_in=%u, buffer_out=%u\n", sock->buffer_in, sock->buffer_out);
+			qlog("            buffer_filled_in=%d, buffer_filled_out=%d, buffer_read_in=%d\n", sock->buffer_filled_in, sock->buffer_filled_out, sock->buffer_read_in);
 		}
 	}
 	else
 		qlog("INVALID CONNECTION HANDLE ERROR: func=%s, desc='%s'\n", func, desc);
 #undef PRN_NULLCHECK
 }
-
diff --git a/src/interfaces/odbc/connection.h b/src/interfaces/odbc/connection.h
index 9169583e457272426207023dfcabc8563ff89cdf..7bd22f00677714768c212642f7b1677dd64889ea 100644
--- a/src/interfaces/odbc/connection.h
+++ b/src/interfaces/odbc/connection.h
@@ -1,9 +1,9 @@
 
-/* File:            connection.h
+/* File:			connection.h
  *
- * Description:     See "connection.c"
+ * Description:		See "connection.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -27,12 +27,15 @@
 #endif
 
 
-typedef enum {
-    CONN_NOT_CONNECTED,      /* Connection has not been established */
-    CONN_CONNECTED,      /* Connection is up and has been established */
-    CONN_DOWN,            /* Connection is broken */
-    CONN_EXECUTING     /* the connection is currently executing a statement */
-} CONN_Status;
+typedef enum
+{
+	CONN_NOT_CONNECTED,			/* Connection has not been established */
+	CONN_CONNECTED,				/* Connection is up and has been
+								 * established */
+	CONN_DOWN,					/* Connection is broken */
+	CONN_EXECUTING				/* the connection is currently executing a
+								 * statement */
+}			CONN_Status;
 
 /*	These errors have general sql error state */
 #define CONNECTION_SERVER_NOT_REACHED 101
@@ -50,7 +53,7 @@ typedef enum {
 #define CONN_INIREAD_ERROR 201
 #define CONN_OPENDB_ERROR 202
 #define CONN_STMT_ALLOC_ERROR 203
-#define CONN_IN_USE 204 
+#define CONN_IN_USE 204
 #define CONN_UNSUPPORTED_OPTION 205
 /* Used by SetConnectoption to indicate unsupported options */
 #define CONN_INVALID_ARGUMENT_NO 206
@@ -110,38 +113,39 @@ typedef unsigned int ProtocolVersion;
 /*	This startup packet is to support latest Postgres protocol */
 typedef struct _StartupPacket
 {
-	ProtocolVersion	protoVersion;
-	char			database[SM_DATABASE];
-	char			user[SM_USER];
-	char			options[SM_OPTIONS];
-	char			unused[SM_UNUSED];
-	char			tty[SM_TTY];
+	ProtocolVersion protoVersion;
+	char		database[SM_DATABASE];
+	char		user[SM_USER];
+	char		options[SM_OPTIONS];
+	char		unused[SM_UNUSED];
+	char		tty[SM_TTY];
 } StartupPacket;
 
 
 /*	Structure to hold all the connection attributes for a specific
 	connection (used for both registry and file, DSN and DRIVER)
 */
-typedef struct {
-	char	dsn[MEDIUM_REGISTRY_LEN];
-	char	desc[MEDIUM_REGISTRY_LEN];
-	char	driver[MEDIUM_REGISTRY_LEN];
-	char	server[MEDIUM_REGISTRY_LEN];
-	char	database[MEDIUM_REGISTRY_LEN];
-	char	username[MEDIUM_REGISTRY_LEN];
-	char	password[MEDIUM_REGISTRY_LEN];
-	char	conn_settings[LARGE_REGISTRY_LEN];
-	char	protocol[SMALL_REGISTRY_LEN];
-	char	port[SMALL_REGISTRY_LEN];
-	char	onlyread[SMALL_REGISTRY_LEN];	
-	char	fake_oid_index[SMALL_REGISTRY_LEN];
-	char	show_oid_column[SMALL_REGISTRY_LEN];
-	char	row_versioning[SMALL_REGISTRY_LEN];
-	char	show_system_tables[SMALL_REGISTRY_LEN];
-	char    translation_dll[MEDIUM_REGISTRY_LEN];
-	char    translation_option[SMALL_REGISTRY_LEN];
-	char	focus_password;
-} ConnInfo;
+typedef struct
+{
+	char		dsn[MEDIUM_REGISTRY_LEN];
+	char		desc[MEDIUM_REGISTRY_LEN];
+	char		driver[MEDIUM_REGISTRY_LEN];
+	char		server[MEDIUM_REGISTRY_LEN];
+	char		database[MEDIUM_REGISTRY_LEN];
+	char		username[MEDIUM_REGISTRY_LEN];
+	char		password[MEDIUM_REGISTRY_LEN];
+	char		conn_settings[LARGE_REGISTRY_LEN];
+	char		protocol[SMALL_REGISTRY_LEN];
+	char		port[SMALL_REGISTRY_LEN];
+	char		onlyread[SMALL_REGISTRY_LEN];
+	char		fake_oid_index[SMALL_REGISTRY_LEN];
+	char		show_oid_column[SMALL_REGISTRY_LEN];
+	char		row_versioning[SMALL_REGISTRY_LEN];
+	char		show_system_tables[SMALL_REGISTRY_LEN];
+	char		translation_dll[MEDIUM_REGISTRY_LEN];
+	char		translation_option[SMALL_REGISTRY_LEN];
+	char		focus_password;
+}			ConnInfo;
 
 /*
  *	Macros to compare the server's version with a specified version
@@ -160,15 +164,15 @@ typedef struct {
 #define SERVER_VERSION_LE(conn, major, minor) (! SERVER_VERSION_GT(conn, major, minor))
 #define SERVER_VERSION_LT(conn, major, minor) (! SERVER_VERSION_GE(conn, major, minor))
 /*#if ! defined(HAVE_CONFIG_H) || defined(HAVE_STRINGIZE)*/
-#define	STRING_AFTER_DOT(string)	(strchr(#string, '.') + 1)
+#define STRING_AFTER_DOT(string)	(strchr(#string, '.') + 1)
 /*#else
-#define	STRING_AFTER_DOT(str)	(strchr("str", '.') + 1)
+#define STRING_AFTER_DOT(str)	(strchr("str", '.') + 1)
 #endif*/
 /*
  *	Simplified macros to compare the server's version with a
  *		specified version
  *	Note: Never pass a variable as the second parameter.
- *	      It must be a decimal constant of the form %d.%d . 
+ *		  It must be a decimal constant of the form %d.%d .
  */
 #define PG_VERSION_GT(conn, ver) \
  (SERVER_VERSION_GT(conn, (int) ver, atoi(STRING_AFTER_DOT(ver))))
@@ -180,9 +184,10 @@ typedef struct {
 #define PG_VERSION_LT(conn, ver) (! PG_VERSION_GE(conn, ver))
 
 /*	This is used to store cached table information in the connection */
-struct col_info {
-	QResultClass	*result;
-	char			name[MAX_TABLE_LEN+1];
+struct col_info
+{
+	QResultClass *result;
+	char		name[MAX_TABLE_LEN + 1];
 };
 
  /* Translation DLL entry points */
@@ -194,52 +199,58 @@ struct col_info {
 #define HINSTANCE void *
 #endif
 
-typedef BOOL (FAR WINAPI *DataSourceToDriverProc) (UDWORD,
-					SWORD,
-					PTR,
-					SDWORD,
-					PTR,
-					SDWORD,
-					SDWORD FAR *,
-					UCHAR FAR *,
-					SWORD,
-					SWORD FAR *);
-
-typedef BOOL (FAR WINAPI *DriverToDataSourceProc) (UDWORD,
-					SWORD,
-					PTR,
-					SDWORD,
-					PTR,
-					SDWORD,
-					SDWORD FAR *,
-					UCHAR FAR *,
-					SWORD,
-					SWORD FAR *);
+typedef BOOL(FAR WINAPI * DataSourceToDriverProc) (UDWORD,
+										   SWORD,
+										   PTR,
+										   SDWORD,
+										   PTR,
+										   SDWORD,
+										   SDWORD FAR *,
+										   UCHAR FAR *,
+										   SWORD,
+										   SWORD FAR *);
+
+typedef BOOL(FAR WINAPI * DriverToDataSourceProc) (UDWORD,
+										   SWORD,
+										   PTR,
+										   SDWORD,
+										   PTR,
+										   SDWORD,
+										   SDWORD FAR *,
+										   UCHAR FAR *,
+										   SWORD,
+										   SWORD FAR *);
 
 /*******	The Connection handle	************/
-struct ConnectionClass_ {
-	HENV			henv;					/* environment this connection was created on */
+struct ConnectionClass_
+{
+	HENV		henv;			/* environment this connection was created
+								 * on */
 	StatementOptions stmtOptions;
-	char			*errormsg;
-	int				errornumber;
-	CONN_Status		status;
-	ConnInfo		connInfo;
-	StatementClass	**stmts;
-	int				num_stmts;
-	SocketClass		*sock;
-	int				lobj_type;
-	int				ntables;
-	COL_INFO		**col_info;
-	long            translation_option;
-	HINSTANCE       translation_handle;
-	DataSourceToDriverProc  DataSourceToDriver;
-	DriverToDataSourceProc  DriverToDataSource;
-	char			transact_status;		/* Is a transaction is currently in progress */
-	char			errormsg_created;		/* has an informative error msg been created?  */
-	char			pg_version[MAX_INFO_STRING];	/* Version of PostgreSQL we're connected to - DJP 25-1-2001 */
-	float			pg_version_number;
-	Int2			pg_version_major;
-	Int2			pg_version_minor;
+	char	   *errormsg;
+	int			errornumber;
+	CONN_Status status;
+	ConnInfo	connInfo;
+	StatementClass **stmts;
+	int			num_stmts;
+	SocketClass *sock;
+	int			lobj_type;
+	int			ntables;
+	COL_INFO  **col_info;
+	long		translation_option;
+	HINSTANCE	translation_handle;
+	DataSourceToDriverProc DataSourceToDriver;
+	DriverToDataSourceProc DriverToDataSource;
+	char		transact_status;/* Is a transaction is currently in
+								 * progress */
+	char		errormsg_created;		/* has an informative error msg
+										 * been created?  */
+	char		pg_version[MAX_INFO_STRING];	/* Version of PostgreSQL
+												 * we're connected to -
+												 * DJP 25-1-2001 */
+	float		pg_version_number;
+	Int2		pg_version_major;
+	Int2		pg_version_minor;
 };
 
 
@@ -252,31 +263,31 @@ struct ConnectionClass_ {
 #define CC_is_onlyread(x)	(x->connInfo.onlyread[0] == '1')
 
 
-/*  for CC_DSN_info */
+/*	for CC_DSN_info */
 #define CONN_DONT_OVERWRITE		0
-#define CONN_OVERWRITE			1 
+#define CONN_OVERWRITE			1
 
 
 /*	prototypes */
 ConnectionClass *CC_Constructor(void);
-char CC_Destructor(ConnectionClass *self);
-int CC_cursor_count(ConnectionClass *self);
-char CC_cleanup(ConnectionClass *self);
-char CC_abort(ConnectionClass *self);
-int CC_set_translation (ConnectionClass *self);
-char CC_connect(ConnectionClass *self, char do_password);
-char CC_add_statement(ConnectionClass *self, StatementClass *stmt);
-char CC_remove_statement(ConnectionClass *self, StatementClass *stmt);
-char CC_get_error(ConnectionClass *self, int *number, char **message);
-QResultClass *CC_send_query(ConnectionClass *self, char *query, QueryInfo *qi);
-void CC_clear_error(ConnectionClass *self);
-char *CC_create_errormsg(ConnectionClass *self);
-int CC_send_function(ConnectionClass *conn, int fnid, void *result_buf, int *actual_result_len, int result_is_int, LO_ARG *argv, int nargs);
-char CC_send_settings(ConnectionClass *self);
-void CC_lookup_lo(ConnectionClass *conn);
-void CC_lookup_pg_version(ConnectionClass *conn);
-void CC_initialize_pg_version(ConnectionClass *conn);
-void CC_log_error(char *func, char *desc, ConnectionClass *self);
+char		CC_Destructor(ConnectionClass * self);
+int			CC_cursor_count(ConnectionClass * self);
+char		CC_cleanup(ConnectionClass * self);
+char		CC_abort(ConnectionClass * self);
+int			CC_set_translation(ConnectionClass * self);
+char		CC_connect(ConnectionClass * self, char do_password);
+char		CC_add_statement(ConnectionClass * self, StatementClass * stmt);
+char		CC_remove_statement(ConnectionClass * self, StatementClass * stmt);
+char		CC_get_error(ConnectionClass * self, int *number, char **message);
+QResultClass *CC_send_query(ConnectionClass * self, char *query, QueryInfo * qi);
+void		CC_clear_error(ConnectionClass * self);
+char	   *CC_create_errormsg(ConnectionClass * self);
+int			CC_send_function(ConnectionClass * conn, int fnid, void *result_buf, int *actual_result_len, int result_is_int, LO_ARG * argv, int nargs);
+char		CC_send_settings(ConnectionClass * self);
+void		CC_lookup_lo(ConnectionClass * conn);
+void		CC_lookup_pg_version(ConnectionClass * conn);
+void		CC_initialize_pg_version(ConnectionClass * conn);
+void		CC_log_error(char *func, char *desc, ConnectionClass * self);
 
 
 #endif
diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c
index f033ce4b3ff86962fde8453f76fe026721085ed6..8542936d5c701b6321aa9a0b98ba8c5ea7335447 100644
--- a/src/interfaces/odbc/convert.c
+++ b/src/interfaces/odbc/convert.c
@@ -1,17 +1,17 @@
-/* Module:         convert.c
+/* Module:		   convert.c
  *
- * Description:	   This module contains routines related to 
- *                 converting parameters and columns into requested data types.
- *                 Parameters are converted from their SQL_C data types into
- *                 the appropriate postgres type.  Columns are converted from
- *                 their postgres type (SQL type) into the appropriate SQL_C 
- *                 data type.
+ * Description:    This module contains routines related to
+ *				   converting parameters and columns into requested data types.
+ *				   Parameters are converted from their SQL_C data types into
+ *				   the appropriate postgres type.  Columns are converted from
+ *				   their postgres type (SQL type) into the appropriate SQL_C
+ *				   data type.
  *
- * Classes:        n/a
+ * Classes:		   n/a
  *
  * API functions:  none
  *
- * Comments:       See "notice.txt" for copyright and license information.
+ * Comments:	   See "notice.txt" for copyright and license information.
  *
  */
 
@@ -52,6 +52,7 @@
 #endif
 #ifndef SCHAR
 typedef signed char SCHAR;
+
 #endif
 #endif
 
@@ -63,76 +64,76 @@ extern GLOBAL_VALUES globals;
  *	 http://www.merant.com/datadirect/download/docs/odbc16/Odbcref/rappc.htm
  * - thomas 2000-04-03
  */
-char *mapFuncs[][2] = {
-/*	{ "ASCII",       "ascii"      }, */
-	{ "CHAR",        "ichar"      },
-	{ "CONCAT",      "textcat"    },
+char	   *mapFuncs[][2] = {
+/*	{ "ASCII",		 "ascii"	  }, */
+	{"CHAR", "ichar"},
+	{"CONCAT", "textcat"},
 /*	{ "DIFFERENCE",  "difference" }, */
-/*	{ "INSERT",      "insert"     }, */
-	{ "LCASE",       "lower"      },
-	{ "LEFT",        "ltrunc"     },
-	{ "LOCATE",      "strpos"     },
-	{ "LENGTH",      "char_length"},
-/*	{ "LTRIM",       "ltrim"      }, */
-	{ "RIGHT",       "rtrunc"     },
-/*	{ "REPEAT",      "repeat"     }, */
-/*	{ "REPLACE",     "replace"    }, */
-/*	{ "RTRIM",       "rtrim"      }, */
-/*	{ "SOUNDEX",     "soundex"    }, */
-	{ "SUBSTRING",   "substr"     },
-	{ "UCASE",       "upper"      },
-
-/*	{ "ABS",         "abs"        }, */
-/*	{ "ACOS",        "acos"       }, */
-/*	{ "ASIN",        "asin"       }, */
-/*	{ "ATAN",        "atan"       }, */
-/*	{ "ATAN2",       "atan2"      }, */
-	{ "CEILING",     "ceil"       },
-/*	{ "COS",         "cos"        }, */
-/*	{ "COT",         "cot"        }, */
-/*	{ "DEGREES",     "degrees"    }, */
-/*	{ "EXP",         "exp"        }, */
-/*	{ "FLOOR",       "floor"      }, */
-	{ "LOG",         "ln"         },
-	{ "LOG10",       "log"        },
-/*	{ "MOD",         "mod"        }, */
-/*	{ "PI",          "pi"         }, */
-	{ "POWER",       "pow"        },
-/*	{ "RADIANS",     "radians"    }, */
-	{ "RAND",        "random"     },
-/*	{ "ROUND",       "round"      }, */
-/*	{ "SIGN",        "sign"       }, */
-/*	{ "SIN",         "sin"        }, */
-/*	{ "SQRT",        "sqrt"       }, */
-/*	{ "TAN",         "tan"        }, */
-	{ "TRUNCATE",    "trunc"      },
-
-/*	{ "CURDATE",     "curdate"    }, */
-/*	{ "CURTIME",     "curtime"    }, */
-/*	{ "DAYNAME",     "dayname"    }, */
+/*	{ "INSERT",		 "insert"	  }, */
+	{"LCASE", "lower"},
+	{"LEFT", "ltrunc"},
+	{"LOCATE", "strpos"},
+	{"LENGTH", "char_length"},
+/*	{ "LTRIM",		 "ltrim"	  }, */
+	{"RIGHT", "rtrunc"},
+/*	{ "REPEAT",		 "repeat"	  }, */
+/*	{ "REPLACE",	 "replace"	  }, */
+/*	{ "RTRIM",		 "rtrim"	  }, */
+/*	{ "SOUNDEX",	 "soundex"	  }, */
+	{"SUBSTRING", "substr"},
+	{"UCASE", "upper"},
+
+/*	{ "ABS",		 "abs"		  }, */
+/*	{ "ACOS",		 "acos"		  }, */
+/*	{ "ASIN",		 "asin"		  }, */
+/*	{ "ATAN",		 "atan"		  }, */
+/*	{ "ATAN2",		 "atan2"	  }, */
+	{"CEILING", "ceil"},
+/*	{ "COS",		 "cos"		  }, */
+/*	{ "COT",		 "cot"		  }, */
+/*	{ "DEGREES",	 "degrees"	  }, */
+/*	{ "EXP",		 "exp"		  }, */
+/*	{ "FLOOR",		 "floor"	  }, */
+	{"LOG", "ln"},
+	{"LOG10", "log"},
+/*	{ "MOD",		 "mod"		  }, */
+/*	{ "PI",			 "pi"		  }, */
+	{"POWER", "pow"},
+/*	{ "RADIANS",	 "radians"	  }, */
+	{"RAND", "random"},
+/*	{ "ROUND",		 "round"	  }, */
+/*	{ "SIGN",		 "sign"		  }, */
+/*	{ "SIN",		 "sin"		  }, */
+/*	{ "SQRT",		 "sqrt"		  }, */
+/*	{ "TAN",		 "tan"		  }, */
+	{"TRUNCATE", "trunc"},
+
+/*	{ "CURDATE",	 "curdate"	  }, */
+/*	{ "CURTIME",	 "curtime"	  }, */
+/*	{ "DAYNAME",	 "dayname"	  }, */
 /*	{ "DAYOFMONTH",  "dayofmonth" }, */
-/*	{ "DAYOFWEEK",   "dayofweek"  }, */
-/*	{ "DAYOFYEAR",   "dayofyear"  }, */
-/*	{ "HOUR",        "hour"       }, */
-/*	{ "MINUTE",      "minute"     }, */
-/*	{ "MONTH",       "month"      }, */
-/*	{ "MONTHNAME",   "monthname"  }, */
-/*	{ "NOW",         "now"        }, */
-/*	{ "QUARTER",     "quarter"    }, */
-/*	{ "SECOND",      "second"     }, */
-/*	{ "WEEK",        "week"       }, */
-/*	{ "YEAR",        "year"       }, */
-
-/*	{ "DATABASE",    "database"   }, */
-	{ "IFNULL",      "coalesce"   },
-	{ "USER",        "odbc_user"  },
-	{    0,             0         }
+/*	{ "DAYOFWEEK",	 "dayofweek"  }, */
+/*	{ "DAYOFYEAR",	 "dayofyear"  }, */
+/*	{ "HOUR",		 "hour"		  }, */
+/*	{ "MINUTE",		 "minute"	  }, */
+/*	{ "MONTH",		 "month"	  }, */
+/*	{ "MONTHNAME",	 "monthname"  }, */
+/*	{ "NOW",		 "now"		  }, */
+/*	{ "QUARTER",	 "quarter"	  }, */
+/*	{ "SECOND",		 "second"	  }, */
+/*	{ "WEEK",		 "week"		  }, */
+/*	{ "YEAR",		 "year"		  }, */
+
+/*	{ "DATABASE",	 "database"   }, */
+	{"IFNULL", "coalesce"},
+	{"USER", "odbc_user"},
+	{0, 0}
 };
 
-char *mapFunction(char *func);
+char	   *mapFunction(char *func);
 unsigned int conv_from_octal(unsigned char *s);
 unsigned int conv_from_hex(unsigned char *s);
-char *conv_to_octal(unsigned char val);
+char	   *conv_to_octal(unsigned char val);
 
 /********		A Guide for date/time/timestamp conversions    **************
 
@@ -144,47 +145,52 @@ char *conv_to_octal(unsigned char val);
 			PG_TYPE_TIME	SQL_C_DEFAULT		SQL_C_TIME
 			PG_TYPE_TIME	SQL_C_TIME			SQL_C_TIME
 			PG_TYPE_TIME	SQL_C_TIMESTAMP		SQL_C_TIMESTAMP		(date = current date)
-			PG_TYPE_ABSTIME	SQL_C_DEFAULT		SQL_C_TIMESTAMP
-			PG_TYPE_ABSTIME	SQL_C_DATE			SQL_C_DATE			(time is truncated)
-			PG_TYPE_ABSTIME	SQL_C_TIME			SQL_C_TIME			(date is truncated)
-			PG_TYPE_ABSTIME	SQL_C_TIMESTAMP		SQL_C_TIMESTAMP		
+			PG_TYPE_ABSTIME SQL_C_DEFAULT		SQL_C_TIMESTAMP
+			PG_TYPE_ABSTIME SQL_C_DATE			SQL_C_DATE			(time is truncated)
+			PG_TYPE_ABSTIME SQL_C_TIME			SQL_C_TIME			(date is truncated)
+			PG_TYPE_ABSTIME SQL_C_TIMESTAMP		SQL_C_TIMESTAMP
 ******************************************************************************/
 
 
 /*	This is called by SQLFetch() */
 int
-copy_and_convert_field_bindinfo(StatementClass *stmt, Int4 field_type, void *value, int col)
+copy_and_convert_field_bindinfo(StatementClass * stmt, Int4 field_type, void *value, int col)
 {
-BindInfoClass *bic = &(stmt->bindings[col]);
+	BindInfoClass *bic = &(stmt->bindings[col]);
 
-	return copy_and_convert_field(stmt, field_type, value, (Int2)bic->returntype, (PTR)bic->buffer,
-                                (SDWORD)bic->buflen, (SDWORD *)bic->used);
+	return copy_and_convert_field(stmt, field_type, value, (Int2) bic->returntype, (PTR) bic->buffer,
+							 (SDWORD) bic->buflen, (SDWORD *) bic->used);
 }
 
 /*	This is called by SQLGetData() */
 int
-copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2 fCType, 
-					   PTR rgbValue, SDWORD cbValueMax, SDWORD *pcbValue)
+copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 fCType,
+					   PTR rgbValue, SDWORD cbValueMax, SDWORD * pcbValue)
 {
-	Int4 len = 0, copy_len = 0;
+	Int4		len = 0,
+				copy_len = 0;
 	SIMPLE_TIME st;
-	time_t t = time(NULL);
-	struct tm *tim;
-	int pcbValueOffset, rgbValueOffset;
-	char *rgbValueBindRow, *ptr;
-	int bind_row = stmt->bind_row;
-	int bind_size = stmt->options.bind_size;
-	int result = COPY_OK;
-	char tempBuf[TEXT_FIELD_SIZE+5];
+	time_t		t = time(NULL);
+	struct tm  *tim;
+	int			pcbValueOffset,
+				rgbValueOffset;
+	char	   *rgbValueBindRow,
+			   *ptr;
+	int			bind_row = stmt->bind_row;
+	int			bind_size = stmt->options.bind_size;
+	int			result = COPY_OK;
+	char		tempBuf[TEXT_FIELD_SIZE + 5];
 
 /*	rgbValueOffset is *ONLY* for character and binary data */
 /*	pcbValueOffset is for computing any pcbValue location */
 
-	if (bind_size > 0) {
+	if (bind_size > 0)
+	{
 
 		pcbValueOffset = rgbValueOffset = (bind_size * bind_row);
 	}
-	else {
+	else
+	{
 
 		pcbValueOffset = bind_row * sizeof(SDWORD);
 		rgbValueOffset = bind_row * cbValueMax;
@@ -193,31 +199,33 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2
 
 	memset(&st, 0, sizeof(SIMPLE_TIME));
 
-	/*	Initialize current date */
+	/* Initialize current date */
 	tim = localtime(&t);
 	st.m = tim->tm_mon + 1;
 	st.d = tim->tm_mday;
 	st.y = tim->tm_year + 1900;
 
-	mylog("copy_and_convert: field_type = %d, fctype = %d, value = '%s', cbValueMax=%d\n", field_type, fCType,  (value==NULL)?"<NULL>":value, cbValueMax);
+	mylog("copy_and_convert: field_type = %d, fctype = %d, value = '%s', cbValueMax=%d\n", field_type, fCType, (value == NULL) ? "<NULL>" : value, cbValueMax);
 
-	if ( ! value) {
-        /* handle a null just by returning SQL_NULL_DATA in pcbValue, */
-        /* and doing nothing to the buffer.                           */
-        if(pcbValue) {
+	if (!value)
+	{
+		/* handle a null just by returning SQL_NULL_DATA in pcbValue, */
+		/* and doing nothing to the buffer.							  */
+		if (pcbValue)
 			*(SDWORD *) ((char *) pcbValue + pcbValueOffset) = SQL_NULL_DATA;
-        }
 		return COPY_OK;
 	}
 
 
-	if (stmt->hdbc->DataSourceToDriver != NULL) {
-		int length = strlen (value);
-		stmt->hdbc->DataSourceToDriver (stmt->hdbc->translation_option,
-										SQL_CHAR,
-										value, length,
-										value, length, NULL,
-										NULL, 0, NULL);
+	if (stmt->hdbc->DataSourceToDriver != NULL)
+	{
+		int			length = strlen(value);
+
+		stmt->hdbc->DataSourceToDriver(stmt->hdbc->translation_option,
+									   SQL_CHAR,
+									   value, length,
+									   value, length, NULL,
+									   NULL, 0, NULL);
 	}
 
 
@@ -225,108 +233,128 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2
 		First convert any specific postgres types into more
 		useable data.
 
-		NOTE: Conversions from PG char/varchar of a date/time/timestamp 
-		value to SQL_C_DATE,SQL_C_TIME, SQL_C_TIMESTAMP not supported 
+		NOTE: Conversions from PG char/varchar of a date/time/timestamp
+		value to SQL_C_DATE,SQL_C_TIME, SQL_C_TIMESTAMP not supported
 	*********************************************************************/
-	switch(field_type) {
-	/*  $$$ need to add parsing for date/time/timestamp strings in PG_TYPE_CHAR,VARCHAR $$$ */
-	case PG_TYPE_DATE:
-		sscanf(value, "%4d-%2d-%2d", &st.y, &st.m, &st.d);
-		break;
-
-	case PG_TYPE_TIME:
-		sscanf(value, "%2d:%2d:%2d", &st.hh, &st.mm, &st.ss);
-		break;
-
-	case PG_TYPE_ABSTIME:
-	case PG_TYPE_DATETIME:
-	case PG_TYPE_TIMESTAMP:
-		if (strnicmp(value, "invalid", 7) != 0) {
-			sscanf(value, "%4d-%2d-%2d %2d:%2d:%2d", &st.y, &st.m, &st.d, &st.hh, &st.mm, &st.ss);
-
-		} else {	/* The timestamp is invalid so set something conspicuous, like the epoch */
-			t = 0;
-			tim = localtime(&t);
-			st.m = tim->tm_mon + 1;
-			st.d = tim->tm_mday;
-			st.y = tim->tm_year + 1900;
-			st.hh = tim->tm_hour;
-			st.mm = tim->tm_min;
-			st.ss = tim->tm_sec;
-		}
-		break;
-
-	case PG_TYPE_BOOL: {		/* change T/F to 1/0 */
-		char *s = (char *) value;
-		if (s[0] == 'T' || s[0] == 't') 
-			s[0] = '1';
-		else 
-			s[0] = '0';
-		}
-		break;
-
-	/* This is for internal use by SQLStatistics() */
-	case PG_TYPE_INT2VECTOR: {
-		int nval, i;
-		char *vp;
-		/* this is an array of eight integers */
-		short *short_array = (short *) ( (char *) rgbValue + rgbValueOffset);
-
-		len = 16;
-		vp = value;
-		nval = 0;
-		for (i = 0; i < 8; i++)
-		{
-			if (sscanf(vp, "%hd", &short_array[i]) != 1)
-				break;
+	switch (field_type)
+	{
 
-			nval++;
+			/*
+			 * $$$ need to add parsing for date/time/timestamp strings in
+			 * PG_TYPE_CHAR,VARCHAR $$$
+			 */
+		case PG_TYPE_DATE:
+			sscanf(value, "%4d-%2d-%2d", &st.y, &st.m, &st.d);
+			break;
 
-			/* skip the current token */
-			while ((*vp != '\0') && (! isspace((unsigned char) *vp))) vp++;
-			/* and skip the space to the next token */
-			while ((*vp != '\0') && (isspace((unsigned char) *vp))) vp++;
-			if (*vp == '\0')
-				break;
-		}
+		case PG_TYPE_TIME:
+			sscanf(value, "%2d:%2d:%2d", &st.hh, &st.mm, &st.ss);
+			break;
 
-		for (i = nval; i < 8; i++)
-		{
-			short_array[i] = 0;
-		}
+		case PG_TYPE_ABSTIME:
+		case PG_TYPE_DATETIME:
+		case PG_TYPE_TIMESTAMP:
+			if (strnicmp(value, "invalid", 7) != 0)
+			{
+				sscanf(value, "%4d-%2d-%2d %2d:%2d:%2d", &st.y, &st.m, &st.d, &st.hh, &st.mm, &st.ss);
+
+			}
+			else
+			{					/* The timestamp is invalid so set
+								 * something conspicuous, like the epoch */
+				t = 0;
+				tim = localtime(&t);
+				st.m = tim->tm_mon + 1;
+				st.d = tim->tm_mday;
+				st.y = tim->tm_year + 1900;
+				st.hh = tim->tm_hour;
+				st.mm = tim->tm_min;
+				st.ss = tim->tm_sec;
+			}
+			break;
+
+		case PG_TYPE_BOOL:
+			{					/* change T/F to 1/0 */
+				char	   *s = (char *) value;
+
+				if (s[0] == 'T' || s[0] == 't')
+					s[0] = '1';
+				else
+					s[0] = '0';
+			}
+			break;
+
+			/* This is for internal use by SQLStatistics() */
+		case PG_TYPE_INT2VECTOR:
+			{
+				int			nval,
+							i;
+				char	   *vp;
+
+				/* this is an array of eight integers */
+				short	   *short_array = (short *) ((char *) rgbValue + rgbValueOffset);
+
+				len = 16;
+				vp = value;
+				nval = 0;
+				for (i = 0; i < 8; i++)
+				{
+					if (sscanf(vp, "%hd", &short_array[i]) != 1)
+						break;
+
+					nval++;
+
+					/* skip the current token */
+					while ((*vp != '\0') && (!isspace((unsigned char) *vp)))
+						vp++;
+					/* and skip the space to the next token */
+					while ((*vp != '\0') && (isspace((unsigned char) *vp)))
+						vp++;
+					if (*vp == '\0')
+						break;
+				}
+
+				for (i = nval; i < 8; i++)
+					short_array[i] = 0;
 
 #if 0
-		sscanf(value, "%hd %hd %hd %hd %hd %hd %hd %hd",
-			&short_array[0],
-			&short_array[1],
-			&short_array[2],
-			&short_array[3],
-			&short_array[4],
-			&short_array[5],
-			&short_array[6],
-			&short_array[7]);
+				sscanf(value, "%hd %hd %hd %hd %hd %hd %hd %hd",
+					   &short_array[0],
+					   &short_array[1],
+					   &short_array[2],
+					   &short_array[3],
+					   &short_array[4],
+					   &short_array[5],
+					   &short_array[6],
+					   &short_array[7]);
 #endif
 
-		/*  There is no corresponding fCType for this. */
-		if(pcbValue)
-			*(SDWORD *) ((char *) pcbValue + pcbValueOffset) = len;
+				/* There is no corresponding fCType for this. */
+				if (pcbValue)
+					*(SDWORD *) ((char *) pcbValue + pcbValueOffset) = len;
 
-		return COPY_OK;		/* dont go any further or the data will be trashed */
-	}
+				return COPY_OK; /* dont go any further or the data will be
+								 * trashed */
+			}
 
-	/* This is a large object OID, which is used to store LONGVARBINARY objects. */
-	case PG_TYPE_LO:
+			/*
+			 * This is a large object OID, which is used to store
+			 * LONGVARBINARY objects.
+			 */
+		case PG_TYPE_LO:
 
-		return convert_lo( stmt, value, fCType, ((char *) rgbValue + rgbValueOffset), cbValueMax, (SDWORD *) ((char *) pcbValue + pcbValueOffset));
+			return convert_lo(stmt, value, fCType, ((char *) rgbValue + rgbValueOffset), cbValueMax, (SDWORD *) ((char *) pcbValue + pcbValueOffset));
 
-	default:
+		default:
 
-		if (field_type == stmt->hdbc->lobj_type)	/* hack until permanent type available */
-			return convert_lo( stmt, value, fCType, ((char *) rgbValue + rgbValueOffset), cbValueMax, (SDWORD *) ((char *) pcbValue + pcbValueOffset));
+			if (field_type == stmt->hdbc->lobj_type)	/* hack until permanent
+														 * type available */
+				return convert_lo(stmt, value, fCType, ((char *) rgbValue + rgbValueOffset), cbValueMax, (SDWORD *) ((char *) pcbValue + pcbValueOffset));
 	}
 
-	/*  Change default into something useable */
-	if (fCType == SQL_C_DEFAULT) {
+	/* Change default into something useable */
+	if (fCType == SQL_C_DEFAULT)
+	{
 		fCType = pgtype_to_ctype(stmt, field_type);
 
 		mylog("copy_and_convert, SQL_C_DEFAULT: fCType = %d\n", fCType);
@@ -335,297 +363,318 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2
 
 	rgbValueBindRow = (char *) rgbValue + rgbValueOffset;
 
-    if(fCType == SQL_C_CHAR) {
+	if (fCType == SQL_C_CHAR)
+	{
 
 
-		/*	Special character formatting as required */
-		/*	These really should return error if cbValueMax is not big enough. */
-		switch(field_type) {
-		case PG_TYPE_DATE:
-		    len = 10;
-			if (cbValueMax > len)
-				sprintf(rgbValueBindRow, "%.4d-%.2d-%.2d", st.y, st.m, st.d);
-			break;
+		/* Special character formatting as required */
 
-		case PG_TYPE_TIME:
-			len = 8;
-			if (cbValueMax > len)
-				sprintf(rgbValueBindRow, "%.2d:%.2d:%.2d", st.hh, st.mm, st.ss);
-			break;
-
-		case PG_TYPE_ABSTIME:
-		case PG_TYPE_DATETIME:
-		case PG_TYPE_TIMESTAMP:
-			len = 19;
-			if (cbValueMax > len)
-				sprintf(rgbValueBindRow, "%.4d-%.2d-%.2d %.2d:%.2d:%.2d", 
-					st.y, st.m, st.d, st.hh, st.mm, st.ss);
-			break;
+		/*
+		 * These really should return error if cbValueMax is not big
+		 * enough.
+		 */
+		switch (field_type)
+		{
+			case PG_TYPE_DATE:
+				len = 10;
+				if (cbValueMax > len)
+					sprintf(rgbValueBindRow, "%.4d-%.2d-%.2d", st.y, st.m, st.d);
+				break;
 
-		case PG_TYPE_BOOL:
-			len = 1;
-			if (cbValueMax > len) {
-				strcpy(rgbValueBindRow, value);
-				mylog("PG_TYPE_BOOL: rgbValueBindRow = '%s'\n", rgbValueBindRow);
-			}
-			break;
+			case PG_TYPE_TIME:
+				len = 8;
+				if (cbValueMax > len)
+					sprintf(rgbValueBindRow, "%.2d:%.2d:%.2d", st.hh, st.mm, st.ss);
+				break;
 
-		/*	Currently, data is SILENTLY TRUNCATED for BYTEA and character data
-			types if there is not enough room in cbValueMax because the driver 
-			can't handle multiple calls to SQLGetData for these, yet.  Most likely,
-			the buffer passed in will be big enough to handle the maximum limit of 
-			postgres, anyway.
+			case PG_TYPE_ABSTIME:
+			case PG_TYPE_DATETIME:
+			case PG_TYPE_TIMESTAMP:
+				len = 19;
+				if (cbValueMax > len)
+					sprintf(rgbValueBindRow, "%.4d-%.2d-%.2d %.2d:%.2d:%.2d",
+							st.y, st.m, st.d, st.hh, st.mm, st.ss);
+				break;
 
-			LongVarBinary types are handled correctly above, observing truncation
-			and all that stuff since there is essentially no limit on the large
-			object used to store those.
-		*/
-		case PG_TYPE_BYTEA:		/* convert binary data to hex strings (i.e, 255 = "FF") */
-			len = convert_pgbinary_to_char(value, rgbValueBindRow, cbValueMax);
+			case PG_TYPE_BOOL:
+				len = 1;
+				if (cbValueMax > len)
+				{
+					strcpy(rgbValueBindRow, value);
+					mylog("PG_TYPE_BOOL: rgbValueBindRow = '%s'\n", rgbValueBindRow);
+				}
+				break;
 
-			/***** THIS IS NOT PROPERLY IMPLEMENTED *****/
-			break;
+				/*
+				 * Currently, data is SILENTLY TRUNCATED for BYTEA and
+				 * character data types if there is not enough room in
+				 * cbValueMax because the driver can't handle multiple
+				 * calls to SQLGetData for these, yet.	Most likely, the
+				 * buffer passed in will be big enough to handle the
+				 * maximum limit of postgres, anyway.
+				 *
+				 * LongVarBinary types are handled correctly above, observing
+				 * truncation and all that stuff since there is
+				 * essentially no limit on the large object used to store
+				 * those.
+				 */
+			case PG_TYPE_BYTEA:/* convert binary data to hex strings
+								 * (i.e, 255 = "FF") */
+				len = convert_pgbinary_to_char(value, rgbValueBindRow, cbValueMax);
+
+				/***** THIS IS NOT PROPERLY IMPLEMENTED *****/
+				break;
 
-		default:
-			/*	convert linefeeds to carriage-return/linefeed */
-			len = convert_linefeeds(value, tempBuf, sizeof(tempBuf));
-			ptr = tempBuf;
-
-			mylog("DEFAULT: len = %d, ptr = '%s'\n", len, ptr);
-
-			if (stmt->current_col >= 0) {
-				if (stmt->bindings[stmt->current_col].data_left == 0)
-					return COPY_NO_DATA_FOUND;
-				else if (stmt->bindings[stmt->current_col].data_left > 0) {
-					ptr += len - stmt->bindings[stmt->current_col].data_left;
-					len = stmt->bindings[stmt->current_col].data_left;
+			default:
+				/* convert linefeeds to carriage-return/linefeed */
+				len = convert_linefeeds(value, tempBuf, sizeof(tempBuf));
+				ptr = tempBuf;
+
+				mylog("DEFAULT: len = %d, ptr = '%s'\n", len, ptr);
+
+				if (stmt->current_col >= 0)
+				{
+					if (stmt->bindings[stmt->current_col].data_left == 0)
+						return COPY_NO_DATA_FOUND;
+					else if (stmt->bindings[stmt->current_col].data_left > 0)
+					{
+						ptr += len - stmt->bindings[stmt->current_col].data_left;
+						len = stmt->bindings[stmt->current_col].data_left;
+					}
+					else
+						stmt->bindings[stmt->current_col].data_left = strlen(ptr);
 				}
-				else
-					stmt->bindings[stmt->current_col].data_left = strlen(ptr);
-			}
 
-			if (cbValueMax > 0) {
-				
-				copy_len = (len >= cbValueMax) ? cbValueMax -1 : len;
+				if (cbValueMax > 0)
+				{
+
+					copy_len = (len >= cbValueMax) ? cbValueMax - 1 : len;
 
-				/*	Copy the data */
-				strncpy_null(rgbValueBindRow, ptr, copy_len + 1);
+					/* Copy the data */
+					strncpy_null(rgbValueBindRow, ptr, copy_len + 1);
 
-				/*	Adjust data_left for next time */
-				if (stmt->current_col >= 0) {
-					stmt->bindings[stmt->current_col].data_left -= copy_len;
+					/* Adjust data_left for next time */
+					if (stmt->current_col >= 0)
+						stmt->bindings[stmt->current_col].data_left -= copy_len;
 				}
-			}
 
-			/*	Finally, check for truncation so that proper status can be returned */
-			if ( len >= cbValueMax)
-				result = COPY_RESULT_TRUNCATED;
+				/*
+				 * Finally, check for truncation so that proper status can
+				 * be returned
+				 */
+				if (len >= cbValueMax)
+					result = COPY_RESULT_TRUNCATED;
 
 
-			mylog("    SQL_C_CHAR, default: len = %d, cbValueMax = %d, rgbValueBindRow = '%s'\n", len, cbValueMax, rgbValueBindRow);
-			break;
+				mylog("    SQL_C_CHAR, default: len = %d, cbValueMax = %d, rgbValueBindRow = '%s'\n", len, cbValueMax, rgbValueBindRow);
+				break;
 		}
 
 
-    } else {
+	}
+	else
+	{
 
-		/*	for SQL_C_CHAR, it's probably ok to leave currency symbols in.  But
-			to convert to numeric types, it is necessary to get rid of those.
-		*/
+		/*
+		 * for SQL_C_CHAR, it's probably ok to leave currency symbols in.
+		 * But to convert to numeric types, it is necessary to get rid of
+		 * those.
+		 */
 		if (field_type == PG_TYPE_MONEY)
 			convert_money(value);
 
-		switch(fCType) {
-		case SQL_C_DATE:
-			len = 6;
-			{
-			DATE_STRUCT *ds;
-			
-			if (bind_size > 0) {
-				ds = (DATE_STRUCT *) ((char *) rgbValue + (bind_row * bind_size));
-			} else {
-				ds = (DATE_STRUCT *) rgbValue + bind_row;
-			}
-			ds->year = st.y;
-			ds->month = st.m;
-			ds->day = st.d;
-			}
-			break;
+		switch (fCType)
+		{
+			case SQL_C_DATE:
+				len = 6;
+				{
+					DATE_STRUCT *ds;
+
+					if (bind_size > 0)
+						ds = (DATE_STRUCT *) ((char *) rgbValue + (bind_row * bind_size));
+					else
+						ds = (DATE_STRUCT *) rgbValue + bind_row;
+					ds->year = st.y;
+					ds->month = st.m;
+					ds->day = st.d;
+				}
+				break;
 
-		case SQL_C_TIME:
-			len = 6;
-			{
-			TIME_STRUCT *ts;
-			
-			if (bind_size > 0) {
-				ts = (TIME_STRUCT *) ((char *) rgbValue + (bind_row * bind_size));
-			} else {
-				ts = (TIME_STRUCT *) rgbValue + bind_row;
-			}
-			ts->hour = st.hh;
-			ts->minute = st.mm;
-			ts->second = st.ss;
-			}
-			break;
+			case SQL_C_TIME:
+				len = 6;
+				{
+					TIME_STRUCT *ts;
+
+					if (bind_size > 0)
+						ts = (TIME_STRUCT *) ((char *) rgbValue + (bind_row * bind_size));
+					else
+						ts = (TIME_STRUCT *) rgbValue + bind_row;
+					ts->hour = st.hh;
+					ts->minute = st.mm;
+					ts->second = st.ss;
+				}
+				break;
 
-		case SQL_C_TIMESTAMP:					
-			len = 16;
-			{
-			TIMESTAMP_STRUCT *ts;
-			if (bind_size > 0) {
-				ts = (TIMESTAMP_STRUCT *) ((char *) rgbValue + (bind_row * bind_size));
-			} else {
-				ts = (TIMESTAMP_STRUCT *) rgbValue + bind_row;
-			}
-			ts->year = st.y;
-			ts->month = st.m;
-			ts->day = st.d;
-			ts->hour = st.hh;
-			ts->minute = st.mm;
-			ts->second = st.ss;
-			ts->fraction = 0;
-			}
-			break;
+			case SQL_C_TIMESTAMP:
+				len = 16;
+				{
+					TIMESTAMP_STRUCT *ts;
+
+					if (bind_size > 0)
+						ts = (TIMESTAMP_STRUCT *) ((char *) rgbValue + (bind_row * bind_size));
+					else
+						ts = (TIMESTAMP_STRUCT *) rgbValue + bind_row;
+					ts->year = st.y;
+					ts->month = st.m;
+					ts->day = st.d;
+					ts->hour = st.hh;
+					ts->minute = st.mm;
+					ts->second = st.ss;
+					ts->fraction = 0;
+				}
+				break;
 
-		case SQL_C_BIT:
-			len = 1;
-			if (bind_size > 0) {
-				*(UCHAR *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
-			} else {
-				*((UCHAR *)rgbValue + bind_row) = atoi(value);
-			}
-			/* mylog("SQL_C_BIT: val = %d, cb = %d, rgb=%d\n", atoi(value), cbValueMax, *((UCHAR *)rgbValue)); */
-			break;
+			case SQL_C_BIT:
+				len = 1;
+				if (bind_size > 0)
+					*(UCHAR *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
+				else
+					*((UCHAR *) rgbValue + bind_row) = atoi(value);
 
-		case SQL_C_STINYINT:
-		case SQL_C_TINYINT:
-			len = 1;
-			if (bind_size > 0) {
-				*(SCHAR *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
-			} else {
-				*((SCHAR *) rgbValue + bind_row) = atoi(value);
-			}
-			break;
+				/*
+				 * mylog("SQL_C_BIT: val = %d, cb = %d, rgb=%d\n",
+				 * atoi(value), cbValueMax, *((UCHAR *)rgbValue));
+				 */
+				break;
 
-		case SQL_C_UTINYINT:
-			len = 1;
-			if (bind_size > 0) {
-				*(UCHAR *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
-			} else {
-				*((UCHAR *) rgbValue + bind_row) = atoi(value);
-			}
-			break;
+			case SQL_C_STINYINT:
+			case SQL_C_TINYINT:
+				len = 1;
+				if (bind_size > 0)
+					*(SCHAR *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
+				else
+					*((SCHAR *) rgbValue + bind_row) = atoi(value);
+				break;
 
-		case SQL_C_FLOAT:
-			len = 4;
-			if (bind_size > 0) {
-				*(SFLOAT *) ((char *) rgbValue + (bind_row * bind_size)) = (float) atof(value);
-			} else {
-				*((SFLOAT *)rgbValue + bind_row) = (float) atof(value);
-			}
-			break;
+			case SQL_C_UTINYINT:
+				len = 1;
+				if (bind_size > 0)
+					*(UCHAR *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
+				else
+					*((UCHAR *) rgbValue + bind_row) = atoi(value);
+				break;
 
-		case SQL_C_DOUBLE:
-			len = 8;
-			if (bind_size > 0) {
-				*(SDOUBLE *) ((char *) rgbValue + (bind_row * bind_size)) = atof(value);
-			} else {
-				*((SDOUBLE *)rgbValue + bind_row) = atof(value);
-			}
-			break;
+			case SQL_C_FLOAT:
+				len = 4;
+				if (bind_size > 0)
+					*(SFLOAT *) ((char *) rgbValue + (bind_row * bind_size)) = (float) atof(value);
+				else
+					*((SFLOAT *) rgbValue + bind_row) = (float) atof(value);
+				break;
 
-		case SQL_C_SSHORT:
-		case SQL_C_SHORT:
-			len = 2;
-			if (bind_size > 0) {
-				*(SWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
-			} else {
-				*((SWORD *)rgbValue + bind_row) = atoi(value);
-			}
-			break;
+			case SQL_C_DOUBLE:
+				len = 8;
+				if (bind_size > 0)
+					*(SDOUBLE *) ((char *) rgbValue + (bind_row * bind_size)) = atof(value);
+				else
+					*((SDOUBLE *) rgbValue + bind_row) = atof(value);
+				break;
 
-		case SQL_C_USHORT:
-			len = 2;
-			if (bind_size > 0) {
-				*(UWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
-			} else {
-				*((UWORD *)rgbValue + bind_row) = atoi(value);
-			}
-			break;
+			case SQL_C_SSHORT:
+			case SQL_C_SHORT:
+				len = 2;
+				if (bind_size > 0)
+					*(SWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
+				else
+					*((SWORD *) rgbValue + bind_row) = atoi(value);
+				break;
 
-		case SQL_C_SLONG:
-		case SQL_C_LONG:
-			len = 4;
-			if (bind_size > 0) {
-				*(SDWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atol(value);
-			} else {
-				*((SDWORD *)rgbValue + bind_row) = atol(value);
-			}
-			break;
+			case SQL_C_USHORT:
+				len = 2;
+				if (bind_size > 0)
+					*(UWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atoi(value);
+				else
+					*((UWORD *) rgbValue + bind_row) = atoi(value);
+				break;
 
-		case SQL_C_ULONG:
-			len = 4;
-			if (bind_size > 0) {
-				*(UDWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atol(value);
-			} else {
-				*((UDWORD *)rgbValue + bind_row) = atol(value);
-			}
-			break;
+			case SQL_C_SLONG:
+			case SQL_C_LONG:
+				len = 4;
+				if (bind_size > 0)
+					*(SDWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atol(value);
+				else
+					*((SDWORD *) rgbValue + bind_row) = atol(value);
+				break;
 
-		case SQL_C_BINARY:	
+			case SQL_C_ULONG:
+				len = 4;
+				if (bind_size > 0)
+					*(UDWORD *) ((char *) rgbValue + (bind_row * bind_size)) = atol(value);
+				else
+					*((UDWORD *) rgbValue + bind_row) = atol(value);
+				break;
 
-			/*	truncate if necessary */
-			/*	convert octal escapes to bytes */
+			case SQL_C_BINARY:
 
-			len = convert_from_pgbinary(value, tempBuf, sizeof(tempBuf));
-			ptr = tempBuf;
+				/* truncate if necessary */
+				/* convert octal escapes to bytes */
 
-			if (stmt->current_col >= 0) {
+				len = convert_from_pgbinary(value, tempBuf, sizeof(tempBuf));
+				ptr = tempBuf;
 
-				/*	No more data left for this column */
-				if (stmt->bindings[stmt->current_col].data_left == 0)
-					return COPY_NO_DATA_FOUND;
+				if (stmt->current_col >= 0)
+				{
 
-				/*	Second (or more) call to SQLGetData so move the pointer */
-				else if (stmt->bindings[stmt->current_col].data_left > 0) {
-					ptr += len - stmt->bindings[stmt->current_col].data_left;
-					len = stmt->bindings[stmt->current_col].data_left;
-				}
+					/* No more data left for this column */
+					if (stmt->bindings[stmt->current_col].data_left == 0)
+						return COPY_NO_DATA_FOUND;
 
-				/*	First call to SQLGetData so initialize data_left */
-				else	
-					stmt->bindings[stmt->current_col].data_left = len;
+					/*
+					 * Second (or more) call to SQLGetData so move the
+					 * pointer
+					 */
+					else if (stmt->bindings[stmt->current_col].data_left > 0)
+					{
+						ptr += len - stmt->bindings[stmt->current_col].data_left;
+						len = stmt->bindings[stmt->current_col].data_left;
+					}
 
-			}
+					/* First call to SQLGetData so initialize data_left */
+					else
+						stmt->bindings[stmt->current_col].data_left = len;
+
+				}
 
-			if (cbValueMax > 0) {
-				copy_len = (len > cbValueMax) ? cbValueMax : len;
+				if (cbValueMax > 0)
+				{
+					copy_len = (len > cbValueMax) ? cbValueMax : len;
 
-				/*	Copy the data */
-				memcpy(rgbValueBindRow, ptr, copy_len);
+					/* Copy the data */
+					memcpy(rgbValueBindRow, ptr, copy_len);
 
-				/*	Adjust data_left for next time */
-				if (stmt->current_col >= 0) {
-					stmt->bindings[stmt->current_col].data_left -= copy_len;
+					/* Adjust data_left for next time */
+					if (stmt->current_col >= 0)
+						stmt->bindings[stmt->current_col].data_left -= copy_len;
 				}
-			}
 
-			/*	Finally, check for truncation so that proper status can be returned */
-			if ( len > cbValueMax)
-				result = COPY_RESULT_TRUNCATED;
+				/*
+				 * Finally, check for truncation so that proper status can
+				 * be returned
+				 */
+				if (len > cbValueMax)
+					result = COPY_RESULT_TRUNCATED;
 
-			mylog("SQL_C_BINARY: len = %d, copy_len = %d\n", len, copy_len);
-			break;
-			
-		default:
-			return COPY_UNSUPPORTED_TYPE;
+				mylog("SQL_C_BINARY: len = %d, copy_len = %d\n", len, copy_len);
+				break;
+
+			default:
+				return COPY_UNSUPPORTED_TYPE;
 		}
 	}
 
-    /* store the length of what was copied, if there's a place for it */
-    if(pcbValue) {
-        *(SDWORD *) ((char *)pcbValue + pcbValueOffset) = len;
-	}
+	/* store the length of what was copied, if there's a place for it */
+	if (pcbValue)
+		*(SDWORD *) ((char *) pcbValue + pcbValueOffset) = len;
 
 	return result;
 
@@ -637,82 +686,98 @@ copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2
 	This function no longer does any dynamic memory allocation!
 */
 int
-copy_statement_with_parameters(StatementClass *stmt)
+copy_statement_with_parameters(StatementClass * stmt)
 {
-static char *func="copy_statement_with_parameters";
-unsigned int opos, npos, oldstmtlen;
-char param_string[128], tmp[256], cbuf[TEXT_FIELD_SIZE+5];
-int param_number;
-Int2 param_ctype, param_sqltype;
-char *old_statement = stmt->statement;
-char *new_statement = stmt->stmt_with_params;
-SIMPLE_TIME st;
-time_t t = time(NULL);
-struct tm *tim;
-SDWORD used;
-char *buffer, *buf;
-char in_quote = FALSE;
-Oid  lobj_oid;
-int lobj_fd, retval;
-
-
-	if ( ! old_statement) {
+	static char *func = "copy_statement_with_parameters";
+	unsigned int opos,
+				npos,
+				oldstmtlen;
+	char		param_string[128],
+				tmp[256],
+				cbuf[TEXT_FIELD_SIZE + 5];
+	int			param_number;
+	Int2		param_ctype,
+				param_sqltype;
+	char	   *old_statement = stmt->statement;
+	char	   *new_statement = stmt->stmt_with_params;
+	SIMPLE_TIME st;
+	time_t		t = time(NULL);
+	struct tm  *tim;
+	SDWORD		used;
+	char	   *buffer,
+			   *buf;
+	char		in_quote = FALSE;
+	Oid			lobj_oid;
+	int			lobj_fd,
+				retval;
+
+
+	if (!old_statement)
+	{
 		SC_log_error(func, "No statement string", stmt);
 		return SQL_ERROR;
 	}
 
 	memset(&st, 0, sizeof(SIMPLE_TIME));
 
-	/*	Initialize current date */
+	/* Initialize current date */
 	tim = localtime(&t);
 	st.m = tim->tm_mon + 1;
 	st.d = tim->tm_mday;
 	st.y = tim->tm_year + 1900;
 
-	/*	If the application hasn't set a cursor name, then generate one */
-	if ( stmt->cursor_name[0] == '\0')
+	/* If the application hasn't set a cursor name, then generate one */
+	if (stmt->cursor_name[0] == '\0')
 		sprintf(stmt->cursor_name, "SQL_CUR%p", stmt);
 
-	/*	For selects, prepend a declare cursor to the statement */
-	if (stmt->statement_type == STMT_TYPE_SELECT && globals.use_declarefetch) {
+	/* For selects, prepend a declare cursor to the statement */
+	if (stmt->statement_type == STMT_TYPE_SELECT && globals.use_declarefetch)
+	{
 		sprintf(new_statement, "declare %s cursor for ", stmt->cursor_name);
 		npos = strlen(new_statement);
 	}
-	else {
+	else
+	{
 		new_statement[0] = '0';
 		npos = 0;
 	}
 
-    param_number = -1;
+	param_number = -1;
 
 	oldstmtlen = strlen(old_statement);
 
-    for (opos = 0; opos < oldstmtlen; opos++) {
+	for (opos = 0; opos < oldstmtlen; opos++)
+	{
 
-		/*	Squeeze carriage-return/linefeed pairs to linefeed only */
-		if (old_statement[opos] == '\r' && opos+1 < oldstmtlen &&
-			old_statement[opos+1] == '\n') {
+		/* Squeeze carriage-return/linefeed pairs to linefeed only */
+		if (old_statement[opos] == '\r' && opos + 1 < oldstmtlen &&
+			old_statement[opos + 1] == '\n')
 			continue;
-		}
 
-		/*	Handle literals (date, time, timestamp) and ODBC scalar functions */
-		else if (old_statement[opos] == '{') {
-			char *esc;
-			char *begin = &old_statement[opos + 1];
-			char *end = strchr(begin, '}');
+		/*
+		 * Handle literals (date, time, timestamp) and ODBC scalar
+		 * functions
+		 */
+		else if (old_statement[opos] == '{')
+		{
+			char	   *esc;
+			char	   *begin = &old_statement[opos + 1];
+			char	   *end = strchr(begin, '}');
 
-			if ( ! end)
+			if (!end)
 				continue;
 
 			*end = '\0';
 
 			esc = convert_escape(begin);
-			if (esc) {
+			if (esc)
+			{
 				memcpy(&new_statement[npos], esc, strlen(esc));
 				npos += strlen(esc);
 			}
-			else {		/* it's not a valid literal so just copy */
-				*end = '}';	
+			else
+			{					/* it's not a valid literal so just copy */
+				*end = '}';
 				new_statement[npos++] = old_statement[opos];
 				continue;
 			}
@@ -724,12 +789,15 @@ int lobj_fd, retval;
 			continue;
 		}
 
-		/*	Can you have parameter markers inside of quotes?  I dont think so.
-			All the queries I've seen expect the driver to put quotes if needed.
-		*/
+		/*
+		 * Can you have parameter markers inside of quotes?  I dont think
+		 * so. All the queries I've seen expect the driver to put quotes
+		 * if needed.
+		 */
 		else if (old_statement[opos] == '?' && !in_quote)
-			;	/* ok */
-		else {
+			;					/* ok */
+		else
+		{
 			if (old_statement[opos] == '\'')
 				in_quote = (in_quote ? FALSE : TRUE);
 
@@ -740,363 +808,404 @@ int lobj_fd, retval;
 
 
 		/****************************************************/
-		/*       Its a '?' parameter alright                */
+		/* Its a '?' parameter alright				  */
 		/****************************************************/
 
 		param_number++;
 
-	    if (param_number >= stmt->parameters_allocated)
+		if (param_number >= stmt->parameters_allocated)
 			break;
 
-		/*	Assign correct buffers based on data at exec param or not */
-		if ( stmt->parameters[param_number].data_at_exec) {
+		/* Assign correct buffers based on data at exec param or not */
+		if (stmt->parameters[param_number].data_at_exec)
+		{
 			used = stmt->parameters[param_number].EXEC_used ? *stmt->parameters[param_number].EXEC_used : SQL_NTS;
 			buffer = stmt->parameters[param_number].EXEC_buffer;
 		}
-		else {
+		else
+		{
 			used = stmt->parameters[param_number].used ? *stmt->parameters[param_number].used : SQL_NTS;
 			buffer = stmt->parameters[param_number].buffer;
 		}
 
-		/*	Handle NULL parameter data */
-		if (used == SQL_NULL_DATA) {
+		/* Handle NULL parameter data */
+		if (used == SQL_NULL_DATA)
+		{
 			strcpy(&new_statement[npos], "NULL");
 			npos += 4;
 			continue;
 		}
 
-		/*	If no buffer, and it's not null, then what the hell is it? 
-			Just leave it alone then.
-		*/
-		if ( ! buffer) {
+		/*
+		 * If no buffer, and it's not null, then what the hell is it? Just
+		 * leave it alone then.
+		 */
+		if (!buffer)
+		{
 			new_statement[npos++] = '?';
 			continue;
 		}
 
 		param_ctype = stmt->parameters[param_number].CType;
 		param_sqltype = stmt->parameters[param_number].SQLType;
-		
+
 		mylog("copy_statement_with_params: from(fcType)=%d, to(fSqlType)=%d\n", param_ctype, param_sqltype);
-		
+
 		/* replace DEFAULT with something we can use */
-		if(param_ctype == SQL_C_DEFAULT)
+		if (param_ctype == SQL_C_DEFAULT)
 			param_ctype = sqltype_to_default_ctype(param_sqltype);
 
 		buf = NULL;
 		param_string[0] = '\0';
 		cbuf[0] = '\0';
 
-		
-		/*	Convert input C type to a neutral format */
-		switch(param_ctype) {
-		case SQL_C_BINARY:
-		case SQL_C_CHAR:
-			buf = buffer;
-			break;
 
-		case SQL_C_DOUBLE:
-			sprintf(param_string, "%f", 
-				 *((SDOUBLE *) buffer));
-			break;
+		/* Convert input C type to a neutral format */
+		switch (param_ctype)
+		{
+			case SQL_C_BINARY:
+			case SQL_C_CHAR:
+				buf = buffer;
+				break;
 
-		case SQL_C_FLOAT:
-			sprintf(param_string, "%f", 
-				 *((SFLOAT *) buffer));
-			break;
+			case SQL_C_DOUBLE:
+				sprintf(param_string, "%f",
+						*((SDOUBLE *) buffer));
+				break;
 
-		case SQL_C_SLONG:
-		case SQL_C_LONG:
-			sprintf(param_string, "%ld",
-				*((SDWORD *) buffer));
-			break;
+			case SQL_C_FLOAT:
+				sprintf(param_string, "%f",
+						*((SFLOAT *) buffer));
+				break;
 
-		case SQL_C_SSHORT:
-		case SQL_C_SHORT:
-			sprintf(param_string, "%d",
-				*((SWORD *) buffer));
-			break;
+			case SQL_C_SLONG:
+			case SQL_C_LONG:
+				sprintf(param_string, "%ld",
+						*((SDWORD *) buffer));
+				break;
 
-		case SQL_C_STINYINT:
-		case SQL_C_TINYINT:
-			sprintf(param_string, "%d",
-				*((SCHAR *) buffer));
-			break;
+			case SQL_C_SSHORT:
+			case SQL_C_SHORT:
+				sprintf(param_string, "%d",
+						*((SWORD *) buffer));
+				break;
 
-		case SQL_C_ULONG:
-			sprintf(param_string, "%lu",
-				*((UDWORD *) buffer));
-			break;
+			case SQL_C_STINYINT:
+			case SQL_C_TINYINT:
+				sprintf(param_string, "%d",
+						*((SCHAR *) buffer));
+				break;
 
-		case SQL_C_USHORT:
-			sprintf(param_string, "%u",
-				*((UWORD *) buffer));
-			break;
+			case SQL_C_ULONG:
+				sprintf(param_string, "%lu",
+						*((UDWORD *) buffer));
+				break;
 
-		case SQL_C_UTINYINT:
-			sprintf(param_string, "%u",
-				*((UCHAR *) buffer));
-			break;
+			case SQL_C_USHORT:
+				sprintf(param_string, "%u",
+						*((UWORD *) buffer));
+				break;
 
-		case SQL_C_BIT: {
-			int i = *((UCHAR *) buffer);
-			
-			sprintf(param_string, "%d", i ? 1 : 0);
-			break;
-						}
+			case SQL_C_UTINYINT:
+				sprintf(param_string, "%u",
+						*((UCHAR *) buffer));
+				break;
 
-		case SQL_C_DATE: {
-			DATE_STRUCT *ds = (DATE_STRUCT *) buffer;
-			st.m = ds->month;
-			st.d = ds->day;
-			st.y = ds->year;
+			case SQL_C_BIT:
+				{
+					int			i = *((UCHAR *) buffer);
 
-			break;
-						 }
+					sprintf(param_string, "%d", i ? 1 : 0);
+					break;
+				}
 
-		case SQL_C_TIME: {
-			TIME_STRUCT *ts = (TIME_STRUCT *) buffer;
-			st.hh = ts->hour;
-			st.mm = ts->minute;
-			st.ss = ts->second;
+			case SQL_C_DATE:
+				{
+					DATE_STRUCT *ds = (DATE_STRUCT *) buffer;
 
-			break;
-						 }
+					st.m = ds->month;
+					st.d = ds->day;
+					st.y = ds->year;
 
-		case SQL_C_TIMESTAMP: {
-			TIMESTAMP_STRUCT *tss = (TIMESTAMP_STRUCT *) buffer;
-			st.m = tss->month;
-			st.d = tss->day;
-			st.y = tss->year;
-			st.hh = tss->hour;
-			st.mm = tss->minute;
-			st.ss = tss->second;
+					break;
+				}
 
-			mylog("m=%d,d=%d,y=%d,hh=%d,mm=%d,ss=%d\n", st.m, st.d, st.y, st.hh, st.mm, st.ss);
+			case SQL_C_TIME:
+				{
+					TIME_STRUCT *ts = (TIME_STRUCT *) buffer;
 
-			break;
+					st.hh = ts->hour;
+					st.mm = ts->minute;
+					st.ss = ts->second;
 
-							  }
-		default:
-			/* error */
-			stmt->errormsg = "Unrecognized C_parameter type in copy_statement_with_parameters";
-			stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
-			new_statement[npos] = '\0';   /* just in case */
-			SC_log_error(func, "", stmt);
-			return SQL_ERROR;
-		}
+					break;
+				}
 
-		/*	Now that the input data is in a neutral format, convert it to
-			the desired output format (sqltype)
-		*/
+			case SQL_C_TIMESTAMP:
+				{
+					TIMESTAMP_STRUCT *tss = (TIMESTAMP_STRUCT *) buffer;
 
-		switch(param_sqltype) {
-		case SQL_CHAR:
-		case SQL_VARCHAR:
-		case SQL_LONGVARCHAR:
+					st.m = tss->month;
+					st.d = tss->day;
+					st.y = tss->year;
+					st.hh = tss->hour;
+					st.mm = tss->minute;
+					st.ss = tss->second;
 
-			new_statement[npos++] = '\'';	/*    Open Quote */
+					mylog("m=%d,d=%d,y=%d,hh=%d,mm=%d,ss=%d\n", st.m, st.d, st.y, st.hh, st.mm, st.ss);
 
-			/* it was a SQL_C_CHAR */
-			if (buf) {
-				convert_special_chars(buf, &new_statement[npos], used);
-				npos += strlen(&new_statement[npos]);
-			}
+					break;
 
-			/* it was a numeric type */
-			else if (param_string[0] != '\0') {	
-				strcpy(&new_statement[npos], param_string);
-				npos += strlen(param_string);
-			}
+				}
+			default:
+				/* error */
+				stmt->errormsg = "Unrecognized C_parameter type in copy_statement_with_parameters";
+				stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
+				new_statement[npos] = '\0';		/* just in case */
+				SC_log_error(func, "", stmt);
+				return SQL_ERROR;
+		}
 
-			/* it was date,time,timestamp -- use m,d,y,hh,mm,ss */
-			else {
-				sprintf(tmp, "%.4d-%.2d-%.2d %.2d:%.2d:%.2d",
-					st.y, st.m, st.d, st.hh, st.mm, st.ss);
+		/*
+		 * Now that the input data is in a neutral format, convert it to
+		 * the desired output format (sqltype)
+		 */
 
-				strcpy(&new_statement[npos], tmp);
-				npos += strlen(tmp);
-			}
+		switch (param_sqltype)
+		{
+			case SQL_CHAR:
+			case SQL_VARCHAR:
+			case SQL_LONGVARCHAR:
 
-			new_statement[npos++] = '\'';	/*    Close Quote */
+				new_statement[npos++] = '\'';	/* Open Quote */
 
-			break;
+				/* it was a SQL_C_CHAR */
+				if (buf)
+				{
+					convert_special_chars(buf, &new_statement[npos], used);
+					npos += strlen(&new_statement[npos]);
+				}
 
-		case SQL_DATE:
-			if (buf) {  /* copy char data to time */
-				my_strcpy(cbuf, sizeof(cbuf), buf, used);
-				parse_datetime(cbuf, &st);
-			}
+				/* it was a numeric type */
+				else if (param_string[0] != '\0')
+				{
+					strcpy(&new_statement[npos], param_string);
+					npos += strlen(param_string);
+				}
 
-			sprintf(tmp, "'%.4d-%.2d-%.2d'", st.y, st.m, st.d);
+				/* it was date,time,timestamp -- use m,d,y,hh,mm,ss */
+				else
+				{
+					sprintf(tmp, "%.4d-%.2d-%.2d %.2d:%.2d:%.2d",
+							st.y, st.m, st.d, st.hh, st.mm, st.ss);
 
-			strcpy(&new_statement[npos], tmp);
-			npos += strlen(tmp);
-			break;
+					strcpy(&new_statement[npos], tmp);
+					npos += strlen(tmp);
+				}
 
-		case SQL_TIME:
-			if (buf) {  /* copy char data to time */
-				my_strcpy(cbuf, sizeof(cbuf), buf, used);
-				parse_datetime(cbuf, &st);
-			}
+				new_statement[npos++] = '\'';	/* Close Quote */
 
-			sprintf(tmp, "'%.2d:%.2d:%.2d'", st.hh, st.mm, st.ss);
+				break;
 
-			strcpy(&new_statement[npos], tmp);
-			npos += strlen(tmp);
-			break;
+			case SQL_DATE:
+				if (buf)
+				{				/* copy char data to time */
+					my_strcpy(cbuf, sizeof(cbuf), buf, used);
+					parse_datetime(cbuf, &st);
+				}
 
-		case SQL_TIMESTAMP:
+				sprintf(tmp, "'%.4d-%.2d-%.2d'", st.y, st.m, st.d);
 
-			if (buf) {
-				my_strcpy(cbuf, sizeof(cbuf), buf, used);
-				parse_datetime(cbuf, &st);
-			}
+				strcpy(&new_statement[npos], tmp);
+				npos += strlen(tmp);
+				break;
 
-			sprintf(tmp, "'%.4d-%.2d-%.2d %.2d:%.2d:%.2d'",
-				st.y, st.m, st.d, st.hh, st.mm, st.ss);
+			case SQL_TIME:
+				if (buf)
+				{				/* copy char data to time */
+					my_strcpy(cbuf, sizeof(cbuf), buf, used);
+					parse_datetime(cbuf, &st);
+				}
 
-			strcpy(&new_statement[npos], tmp);
-			npos += strlen(tmp);
+				sprintf(tmp, "'%.2d:%.2d:%.2d'", st.hh, st.mm, st.ss);
 
-			break;
+				strcpy(&new_statement[npos], tmp);
+				npos += strlen(tmp);
+				break;
 
-		case SQL_BINARY:
-		case SQL_VARBINARY:			/* non-ascii characters should be converted to octal */
-			new_statement[npos++] = '\'';	/*    Open Quote */
+			case SQL_TIMESTAMP:
 
-			mylog("SQL_VARBINARY: about to call convert_to_pgbinary, used = %d\n", used);
+				if (buf)
+				{
+					my_strcpy(cbuf, sizeof(cbuf), buf, used);
+					parse_datetime(cbuf, &st);
+				}
 
-			npos += convert_to_pgbinary(buf, &new_statement[npos], used);
+				sprintf(tmp, "'%.4d-%.2d-%.2d %.2d:%.2d:%.2d'",
+						st.y, st.m, st.d, st.hh, st.mm, st.ss);
 
-			new_statement[npos++] = '\'';	/*    Close Quote */
-			
-			break;
+				strcpy(&new_statement[npos], tmp);
+				npos += strlen(tmp);
 
-		case SQL_LONGVARBINARY:		
+				break;
 
-			if ( stmt->parameters[param_number].data_at_exec) {
+			case SQL_BINARY:
+			case SQL_VARBINARY:/* non-ascii characters should be
+								 * converted to octal */
+				new_statement[npos++] = '\'';	/* Open Quote */
 
-				lobj_oid = stmt->parameters[param_number].lobj_oid;
+				mylog("SQL_VARBINARY: about to call convert_to_pgbinary, used = %d\n", used);
 
-			}
-			else {
-  
-				/* begin transaction if needed */
-				if(!CC_is_in_trans(stmt->hdbc)) {
-					QResultClass *res;
-					char ok;
-
-					res = CC_send_query(stmt->hdbc, "BEGIN", NULL);
-					if (!res) {
-						stmt->errormsg = "Could not begin (in-line) a transaction";
-						stmt->errornumber = STMT_EXEC_ERROR;
-						SC_log_error(func, "", stmt);
-						return SQL_ERROR;
-					}
-					ok = QR_command_successful(res);
-					QR_Destructor(res);
-					if (!ok) {
-						stmt->errormsg = "Could not begin (in-line) a transaction";
-						stmt->errornumber = STMT_EXEC_ERROR;
-						SC_log_error(func, "", stmt);
-						return SQL_ERROR;
-					}
+				npos += convert_to_pgbinary(buf, &new_statement[npos], used);
 
-					CC_set_in_trans(stmt->hdbc);
-				}
+				new_statement[npos++] = '\'';	/* Close Quote */
 
-				/*	store the oid */
-				lobj_oid = lo_creat(stmt->hdbc, INV_READ | INV_WRITE);
-				if (lobj_oid == 0) {
-					stmt->errornumber = STMT_EXEC_ERROR;
-					stmt->errormsg = "Couldnt create (in-line) large object.";
-					SC_log_error(func, "", stmt);
-					return SQL_ERROR;
-				}
+				break;
 
-				/*	store the fd */
-				lobj_fd = lo_open(stmt->hdbc, lobj_oid, INV_WRITE);
-				if ( lobj_fd < 0) {
-					stmt->errornumber = STMT_EXEC_ERROR;
-					stmt->errormsg = "Couldnt open (in-line) large object for writing.";
-					SC_log_error(func, "", stmt);
-					return SQL_ERROR;
-				}
+			case SQL_LONGVARBINARY:
 
-				retval = lo_write(stmt->hdbc, lobj_fd, buffer, used);
+				if (stmt->parameters[param_number].data_at_exec)
+				{
 
-				lo_close(stmt->hdbc, lobj_fd);
+					lobj_oid = stmt->parameters[param_number].lobj_oid;
 
-				/* commit transaction if needed */
-				if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc)) {
-					QResultClass *res;
-					char ok;
+				}
+				else
+				{
+
+					/* begin transaction if needed */
+					if (!CC_is_in_trans(stmt->hdbc))
+					{
+						QResultClass *res;
+						char		ok;
+
+						res = CC_send_query(stmt->hdbc, "BEGIN", NULL);
+						if (!res)
+						{
+							stmt->errormsg = "Could not begin (in-line) a transaction";
+							stmt->errornumber = STMT_EXEC_ERROR;
+							SC_log_error(func, "", stmt);
+							return SQL_ERROR;
+						}
+						ok = QR_command_successful(res);
+						QR_Destructor(res);
+						if (!ok)
+						{
+							stmt->errormsg = "Could not begin (in-line) a transaction";
+							stmt->errornumber = STMT_EXEC_ERROR;
+							SC_log_error(func, "", stmt);
+							return SQL_ERROR;
+						}
+
+						CC_set_in_trans(stmt->hdbc);
+					}
 
-					res = CC_send_query(stmt->hdbc, "COMMIT", NULL);
-					if (!res) {
-						stmt->errormsg = "Could not commit (in-line) a transaction";
+					/* store the oid */
+					lobj_oid = lo_creat(stmt->hdbc, INV_READ | INV_WRITE);
+					if (lobj_oid == 0)
+					{
 						stmt->errornumber = STMT_EXEC_ERROR;
+						stmt->errormsg = "Couldnt create (in-line) large object.";
 						SC_log_error(func, "", stmt);
 						return SQL_ERROR;
 					}
-					ok = QR_command_successful(res);
-					QR_Destructor(res);
-					if (!ok) {
-						stmt->errormsg = "Could not commit (in-line) a transaction";
+
+					/* store the fd */
+					lobj_fd = lo_open(stmt->hdbc, lobj_oid, INV_WRITE);
+					if (lobj_fd < 0)
+					{
 						stmt->errornumber = STMT_EXEC_ERROR;
+						stmt->errormsg = "Couldnt open (in-line) large object for writing.";
 						SC_log_error(func, "", stmt);
 						return SQL_ERROR;
 					}
 
-					CC_set_no_trans(stmt->hdbc);
-				}
-			}
+					retval = lo_write(stmt->hdbc, lobj_fd, buffer, used);
 
-			/*	the oid of the large object -- just put that in for the
-				parameter marker -- the data has already been sent to the large object
-			*/
-			sprintf(param_string, "'%d'", lobj_oid);
-			strcpy(&new_statement[npos], param_string);
-			npos += strlen(param_string);
+					lo_close(stmt->hdbc, lobj_fd);
 
-			break;
+					/* commit transaction if needed */
+					if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc))
+					{
+						QResultClass *res;
+						char		ok;
 
-			/*	because of no conversion operator for bool and int4, SQL_BIT */
-			/*	must be quoted (0 or 1 is ok to use inside the quotes) */
+						res = CC_send_query(stmt->hdbc, "COMMIT", NULL);
+						if (!res)
+						{
+							stmt->errormsg = "Could not commit (in-line) a transaction";
+							stmt->errornumber = STMT_EXEC_ERROR;
+							SC_log_error(func, "", stmt);
+							return SQL_ERROR;
+						}
+						ok = QR_command_successful(res);
+						QR_Destructor(res);
+						if (!ok)
+						{
+							stmt->errormsg = "Could not commit (in-line) a transaction";
+							stmt->errornumber = STMT_EXEC_ERROR;
+							SC_log_error(func, "", stmt);
+							return SQL_ERROR;
+						}
 
-		default:		/* a numeric type or SQL_BIT */
-			if (param_sqltype == SQL_BIT)
-				new_statement[npos++] = '\'';	/*    Open Quote */
+						CC_set_no_trans(stmt->hdbc);
+					}
+				}
 
-			if (buf) {
-				my_strcpy(&new_statement[npos], sizeof(stmt->stmt_with_params) - npos, buf, used);
-				npos += strlen(&new_statement[npos]);
-			}
-			else {
+				/*
+				 * the oid of the large object -- just put that in for the
+				 * parameter marker -- the data has already been sent to
+				 * the large object
+				 */
+				sprintf(param_string, "'%d'", lobj_oid);
 				strcpy(&new_statement[npos], param_string);
 				npos += strlen(param_string);
-			}
 
-			if (param_sqltype == SQL_BIT)
-				new_statement[npos++] = '\'';	/*    Close Quote */
+				break;
 
-			break;
+				/*
+				 * because of no conversion operator for bool and int4,
+				 * SQL_BIT
+				 */
+				/* must be quoted (0 or 1 is ok to use inside the quotes) */
+
+			default:			/* a numeric type or SQL_BIT */
+				if (param_sqltype == SQL_BIT)
+					new_statement[npos++] = '\'';		/* Open Quote */
+
+				if (buf)
+				{
+					my_strcpy(&new_statement[npos], sizeof(stmt->stmt_with_params) - npos, buf, used);
+					npos += strlen(&new_statement[npos]);
+				}
+				else
+				{
+					strcpy(&new_statement[npos], param_string);
+					npos += strlen(param_string);
+				}
+
+				if (param_sqltype == SQL_BIT)
+					new_statement[npos++] = '\'';		/* Close Quote */
+
+				break;
 
 		}
 
-	}	/* end, for */
+	}							/* end, for */
 
 	/* make sure new_statement is always null-terminated */
 	new_statement[npos] = '\0';
 
 
-	if(stmt->hdbc->DriverToDataSource != NULL) {
-		int length = strlen (new_statement);
-		stmt->hdbc->DriverToDataSource (stmt->hdbc->translation_option,
-										SQL_CHAR,
-										new_statement, length,
-										new_statement, length, NULL,
-										NULL, 0, NULL);
+	if (stmt->hdbc->DriverToDataSource != NULL)
+	{
+		int			length = strlen(new_statement);
+
+		stmt->hdbc->DriverToDataSource(stmt->hdbc->translation_option,
+									   SQL_CHAR,
+									   new_statement, length,
+									   new_statement, length, NULL,
+									   NULL, 0, NULL);
 	}
 
 
@@ -1106,10 +1215,10 @@ int lobj_fd, retval;
 char *
 mapFunction(char *func)
 {
-int i;
+	int			i;
 
 	for (i = 0; mapFuncs[i][0]; i++)
-		if ( ! stricmp(mapFuncs[i][0], func))
+		if (!stricmp(mapFuncs[i][0], func))
 			return mapFuncs[i][1];
 
 	return NULL;
@@ -1121,34 +1230,40 @@ int i;
 char *
 convert_escape(char *value)
 {
-static char escape[1024];
-char key[33];
+	static char escape[1024];
+	char		key[33];
 
 	/* Separate off the key, skipping leading and trailing whitespace */
-	while ((*value != '\0') && isspace((unsigned char) *value)) value++;
+	while ((*value != '\0') && isspace((unsigned char) *value))
+		value++;
 	sscanf(value, "%32s", key);
-	while ((*value != '\0') && (! isspace((unsigned char) *value))) value++;
-	while ((*value != '\0') && isspace((unsigned char) *value)) value++;
+	while ((*value != '\0') && (!isspace((unsigned char) *value)))
+		value++;
+	while ((*value != '\0') && isspace((unsigned char) *value))
+		value++;
 
 	mylog("convert_escape: key='%s', val='%s'\n", key, value);
 
-	if ( (strcmp(key, "d") == 0) ||
-		 (strcmp(key, "t") == 0) ||
-		 (strcmp(key, "ts") == 0)) {
+	if ((strcmp(key, "d") == 0) ||
+		(strcmp(key, "t") == 0) ||
+		(strcmp(key, "ts") == 0))
+	{
 		/* Literal; return the escape part as-is */
-		strncpy(escape, value, sizeof(escape)-1);
+		strncpy(escape, value, sizeof(escape) - 1);
 	}
-	else if (strcmp(key, "fn") == 0) {
-		/* Function invocation
-		 * Separate off the func name,
-		 * skipping trailing whitespace.
+	else if (strcmp(key, "fn") == 0)
+	{
+
+		/*
+		 * Function invocation Separate off the func name, skipping
+		 * trailing whitespace.
 		 */
-		char *funcEnd = value;
-		char svchar;
-		char *mapFunc;
+		char	   *funcEnd = value;
+		char		svchar;
+		char	   *mapFunc;
 
 		while ((*funcEnd != '\0') && (*funcEnd != '(') &&
-			   (! isspace((unsigned char) *funcEnd)))
+			   (!isspace((unsigned char) *funcEnd)))
 			funcEnd++;
 		svchar = *funcEnd;
 		*funcEnd = '\0';
@@ -1157,28 +1272,33 @@ char key[33];
 		while ((*funcEnd != '\0') && isspace((unsigned char) *funcEnd))
 			funcEnd++;
 
-		/* We expect left parenthesis here,
-		 * else return fn body as-is since it is
-		 * one of those "function constants".
+		/*
+		 * We expect left parenthesis here, else return fn body as-is
+		 * since it is one of those "function constants".
 		 */
-		if (*funcEnd != '(') {
-			strncpy(escape, value, sizeof(escape)-1);
+		if (*funcEnd != '(')
+		{
+			strncpy(escape, value, sizeof(escape) - 1);
 			return escape;
 		}
 		mapFunc = mapFunction(key);
-		/* We could have mapFunction() return key if not in table...
-		 * - thomas 2000-04-03
+
+		/*
+		 * We could have mapFunction() return key if not in table... -
+		 * thomas 2000-04-03
 		 */
-		if (mapFunc == NULL) {
+		if (mapFunc == NULL)
+		{
 			/* If unrecognized function name, return fn body as-is */
-			strncpy(escape, value, sizeof(escape)-1);
+			strncpy(escape, value, sizeof(escape) - 1);
 			return escape;
 		}
 		/* copy mapped name and remaining input string */
 		strcpy(escape, mapFunc);
-		strncat(escape, funcEnd, sizeof(escape)-1-strlen(mapFunc));
+		strncat(escape, funcEnd, sizeof(escape) - 1 - strlen(mapFunc));
 	}
-	else {
+	else
+	{
 		/* Bogus key, leave untranslated */
 		return NULL;
 	}
@@ -1191,11 +1311,13 @@ char key[33];
 char *
 convert_money(char *s)
 {
-size_t i = 0, out = 0;
+	size_t		i = 0,
+				out = 0;
 
-	for (i = 0; i < strlen(s); i++) {
+	for (i = 0; i < strlen(s); i++)
+	{
 		if (s[i] == '$' || s[i] == ',' || s[i] == ')')
-			; /* skip these characters */
+			;					/* skip these characters */
 		else if (s[i] == '(')
 			s[out++] = '-';
 		else
@@ -1210,19 +1332,25 @@ size_t i = 0, out = 0;
 /*	This function parses a character string for date/time info and fills in SIMPLE_TIME */
 /*	It does not zero out SIMPLE_TIME in case it is desired to initialize it with a value */
 char
-parse_datetime(char *buf, SIMPLE_TIME *st)
+parse_datetime(char *buf, SIMPLE_TIME * st)
 {
-int y,m,d,hh,mm,ss;
-int nf;
-	
+	int			y,
+				m,
+				d,
+				hh,
+				mm,
+				ss;
+	int			nf;
+
 	y = m = d = hh = mm = ss = 0;
 
-	if (buf[4] == '-')	/* year first */
-		nf = sscanf(buf, "%4d-%2d-%2d %2d:%2d:%2d", &y,&m,&d,&hh,&mm,&ss);
+	if (buf[4] == '-')			/* year first */
+		nf = sscanf(buf, "%4d-%2d-%2d %2d:%2d:%2d", &y, &m, &d, &hh, &mm, &ss);
 	else
-		nf = sscanf(buf, "%2d-%2d-%4d %2d:%2d:%2d", &m,&d,&y,&hh,&mm,&ss);
+		nf = sscanf(buf, "%2d-%2d-%4d %2d:%2d:%2d", &m, &d, &y, &hh, &mm, &ss);
 
-	if (nf == 5 || nf == 6) {
+	if (nf == 5 || nf == 6)
+	{
 		st->y = y;
 		st->m = m;
 		st->d = d;
@@ -1233,12 +1361,13 @@ int nf;
 		return TRUE;
 	}
 
-	if (buf[4] == '-')	/* year first */
+	if (buf[4] == '-')			/* year first */
 		nf = sscanf(buf, "%4d-%2d-%2d", &y, &m, &d);
 	else
 		nf = sscanf(buf, "%2d-%2d-%4d", &m, &d, &y);
 
-	if (nf == 3) {
+	if (nf == 3)
+	{
 		st->y = y;
 		st->m = m;
 		st->d = d;
@@ -1247,7 +1376,8 @@ int nf;
 	}
 
 	nf = sscanf(buf, "%2d:%2d:%2d", &hh, &mm, &ss);
-	if (nf == 2 || nf == 3) {
+	if (nf == 2 || nf == 3)
+	{
 		st->hh = hh;
 		st->mm = mm;
 		st->ss = ss;
@@ -1262,12 +1392,16 @@ int nf;
 int
 convert_linefeeds(char *si, char *dst, size_t max)
 {
-size_t i = 0, out = 0;
+	size_t		i = 0,
+				out = 0;
 
-	for (i = 0; i < strlen(si) && out < max - 1; i++) {
-		if (si[i] == '\n') {
-			/*	Only add the carriage-return if needed */
-			if (i > 0 && si[i-1] == '\r') {
+	for (i = 0; i < strlen(si) && out < max - 1; i++)
+	{
+		if (si[i] == '\n')
+		{
+			/* Only add the carriage-return if needed */
+			if (i > 0 && si[i - 1] == '\r')
+			{
 				dst[out++] = si[i];
 				continue;
 			}
@@ -1282,15 +1416,17 @@ size_t i = 0, out = 0;
 	return out;
 }
 
-/*	Change carriage-return/linefeed to just linefeed 
+/*	Change carriage-return/linefeed to just linefeed
 	Plus, escape any special characters.
 */
 char *
 convert_special_chars(char *si, char *dst, int used)
 {
-size_t i = 0, out = 0, max;
-static char sout[TEXT_FIELD_SIZE+5];
-char *p;
+	size_t		i = 0,
+				out = 0,
+				max;
+	static char sout[TEXT_FIELD_SIZE + 5];
+	char	   *p;
 
 	if (dst)
 		p = dst;
@@ -1304,8 +1440,9 @@ char *p;
 	else
 		max = used;
 
-	for (i = 0; i < max; i++) {
-		if (si[i] == '\r' && i+1 < strlen(si) && si[i+1] == '\n') 
+	for (i = 0; i < max; i++)
+	{
+		if (si[i] == '\r' && i + 1 < strlen(si) && si[i + 1] == '\n')
 			continue;
 		else if (si[i] == '\'' || si[i] == '\\')
 			p[out++] = '\\';
@@ -1329,11 +1466,11 @@ convert_pgbinary_to_char(char *value, char *rgbValue, int cbValueMax)
 unsigned int
 conv_from_octal(unsigned char *s)
 {
-int i, y=0;
+	int			i,
+				y = 0;
 
-	for (i = 1; i <= 3; i++) {
-		y += (s[i] - 48) * (int) pow(8, 3-i);
-	}
+	for (i = 1; i <= 3; i++)
+		y += (s[i] - 48) * (int) pow(8, 3 - i);
 
 	return y;
 
@@ -1342,18 +1479,21 @@ int i, y=0;
 unsigned int
 conv_from_hex(unsigned char *s)
 {
-int i, y=0, val;
+	int			i,
+				y = 0,
+				val;
 
-	for (i = 1; i <= 2; i++) {
+	for (i = 1; i <= 2; i++)
+	{
 
-        if (s[i] >= 'a' && s[i] <= 'f')
-            val = s[i] - 'a' + 10;
-        else if (s[i] >= 'A' && s[i] <= 'F')
-            val = s[i] - 'A' + 10;
-        else
-            val = s[i] - '0';
+		if (s[i] >= 'a' && s[i] <= 'f')
+			val = s[i] - 'a' + 10;
+		else if (s[i] >= 'A' && s[i] <= 'F')
+			val = s[i] - 'A' + 10;
+		else
+			val = s[i] - '0';
 
-		y += val * (int) pow(16, 2-i);
+		y += val * (int) pow(16, 2 - i);
 	}
 
 	return y;
@@ -1363,23 +1503,24 @@ int i, y=0, val;
 int
 convert_from_pgbinary(unsigned char *value, unsigned char *rgbValue, int cbValueMax)
 {
-size_t i;
-int o=0;
+	size_t		i;
+	int			o = 0;
 
-	
-	for (i = 0; i < strlen(value); ) {
-		if (value[i] == '\\') {
+
+	for (i = 0; i < strlen(value);)
+	{
+		if (value[i] == '\\')
+		{
 			rgbValue[o] = conv_from_octal(&value[i]);
 			i += 4;
 		}
-		else {
+		else
 			rgbValue[o] = value[i++];
-		}
 		mylog("convert_from_pgbinary: i=%d, rgbValue[%d] = %d, %c\n", i, o, rgbValue[o], rgbValue[o]);
 		o++;
 	}
 
-	rgbValue[o] = '\0';	/* extra protection */
+	rgbValue[o] = '\0';			/* extra protection */
 
 	return o;
 }
@@ -1388,14 +1529,15 @@ int o=0;
 char *
 conv_to_octal(unsigned char val)
 {
-int i;
-static char x[6];
+	int			i;
+	static char x[6];
 
 	x[0] = '\\';
 	x[1] = '\\';
 	x[5] = '\0';
 
-	for (i = 4; i > 1; i--) {
+	for (i = 4; i > 1; i--)
+	{
 		x[i] = (val & 7) + 48;
 		val >>= 3;
 	}
@@ -1407,16 +1549,18 @@ static char x[6];
 int
 convert_to_pgbinary(unsigned char *in, char *out, int len)
 {
-int i, o=0;
+	int			i,
+				o = 0;
 
 
-	for (i = 0; i < len; i++) {
+	for (i = 0; i < len; i++)
+	{
 		mylog("convert_to_pgbinary: in[%d] = %d, %c\n", i, in[i], in[i]);
-		if ( isalnum(in[i]) || in[i] == ' ') {
+		if (isalnum(in[i]) || in[i] == ' ')
 			out[o++] = in[i];
-		}
-		else {
-			strcpy(&out[o], conv_to_octal(in[i])); 
+		else
+		{
+			strcpy(&out[o], conv_to_octal(in[i]));
 			o += 5;
 		}
 
@@ -1431,17 +1575,20 @@ int i, o=0;
 void
 encode(char *in, char *out)
 {
-	unsigned int i, o = 0;
+	unsigned int i,
+				o = 0;
 
-	for (i = 0; i < strlen(in); i++) {
-		if ( in[i] == '+') {
+	for (i = 0; i < strlen(in); i++)
+	{
+		if (in[i] == '+')
+		{
 			sprintf(&out[o], "%%2B");
 			o += 3;
 		}
-		else if ( isspace((unsigned char) in[i])) {
+		else if (isspace((unsigned char) in[i]))
 			out[o++] = '+';
-		}
-		else if ( ! isalnum((unsigned char) in[i])) {
+		else if (!isalnum((unsigned char) in[i]))
+		{
 			sprintf(&out[o], "%%%02x", (unsigned char) in[i]);
 			o += 3;
 		}
@@ -1455,14 +1602,17 @@ encode(char *in, char *out)
 void
 decode(char *in, char *out)
 {
-unsigned int i, o = 0;
+	unsigned int i,
+				o = 0;
 
-	for (i = 0; i < strlen(in); i++) { 
+	for (i = 0; i < strlen(in); i++)
+	{
 		if (in[i] == '+')
 			out[o++] = ' ';
-		else if (in[i] == '%') {
+		else if (in[i] == '%')
+		{
 			sprintf(&out[o++], "%c", conv_from_hex(&in[i]));
-			i+=2;
+			i += 2;
 		}
 		else
 			out[o++] = in[i];
@@ -1482,45 +1632,53 @@ unsigned int i, o = 0;
 
 	CURRENTLY, ONLY LONGVARBINARY is handled, since that is the only
 	data type currently mapped to a PG_TYPE_LO.  But, if any other types
-	are desired to map to a large object (PG_TYPE_LO), then that would 
+	are desired to map to a large object (PG_TYPE_LO), then that would
 	need to be handled here.  For example, LONGVARCHAR could possibly be
 	mapped to PG_TYPE_LO someday, instead of PG_TYPE_TEXT as it is now.
 */
 int
-convert_lo(StatementClass *stmt, void *value, Int2 fCType, PTR rgbValue, 
-		   SDWORD cbValueMax, SDWORD *pcbValue)
+convert_lo(StatementClass * stmt, void *value, Int2 fCType, PTR rgbValue,
+		   SDWORD cbValueMax, SDWORD * pcbValue)
 {
-	Oid oid;
-	int retval, result, left = -1;
+	Oid			oid;
+	int			retval,
+				result,
+				left = -1;
 	BindInfoClass *bindInfo = NULL;
 
 
 /*	If using SQLGetData, then current_col will be set */
-	if (stmt->current_col >= 0) {
+	if (stmt->current_col >= 0)
+	{
 		bindInfo = &stmt->bindings[stmt->current_col];
 		left = bindInfo->data_left;
 	}
 
-	/*	if this is the first call for this column,
-		open the large object for reading 
-	*/
+	/*
+	 * if this is the first call for this column, open the large object
+	 * for reading
+	 */
 
-	if ( ! bindInfo || bindInfo->data_left == -1) {
+	if (!bindInfo || bindInfo->data_left == -1)
+	{
 
 		/* begin transaction if needed */
-		if(!CC_is_in_trans(stmt->hdbc)) {
+		if (!CC_is_in_trans(stmt->hdbc))
+		{
 			QResultClass *res;
-			char ok;
+			char		ok;
 
 			res = CC_send_query(stmt->hdbc, "BEGIN", NULL);
-			if (!res) {
+			if (!res)
+			{
 				stmt->errormsg = "Could not begin (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				return COPY_GENERAL_ERROR;
 			}
 			ok = QR_command_successful(res);
 			QR_Destructor(res);
-			if (!ok) {
+			if (!ok)
+			{
 				stmt->errormsg = "Could not begin (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				return COPY_GENERAL_ERROR;
@@ -1531,53 +1689,59 @@ convert_lo(StatementClass *stmt, void *value, Int2 fCType, PTR rgbValue,
 
 		oid = atoi(value);
 		stmt->lobj_fd = lo_open(stmt->hdbc, oid, INV_READ);
-		if (stmt->lobj_fd < 0) {
+		if (stmt->lobj_fd < 0)
+		{
 			stmt->errornumber = STMT_EXEC_ERROR;
 			stmt->errormsg = "Couldnt open large object for reading.";
 			return COPY_GENERAL_ERROR;
 		}
 
-		/*	Get the size */
+		/* Get the size */
 		retval = lo_lseek(stmt->hdbc, stmt->lobj_fd, 0L, SEEK_END);
-		if (retval >= 0) {
+		if (retval >= 0)
+		{
 
 			left = lo_tell(stmt->hdbc, stmt->lobj_fd);
 			if (bindInfo)
 				bindInfo->data_left = left;
 
-			/*	return to beginning */
+			/* return to beginning */
 			lo_lseek(stmt->hdbc, stmt->lobj_fd, 0L, SEEK_SET);
 		}
 	}
 
-	if (left == 0) {
+	if (left == 0)
 		return COPY_NO_DATA_FOUND;
-	}
 
-	if (stmt->lobj_fd < 0) {
+	if (stmt->lobj_fd < 0)
+	{
 		stmt->errornumber = STMT_EXEC_ERROR;
 		stmt->errormsg = "Large object FD undefined for multiple read.";
 		return COPY_GENERAL_ERROR;
 	}
 
 	retval = lo_read(stmt->hdbc, stmt->lobj_fd, (char *) rgbValue, cbValueMax);
-	if (retval < 0) {
+	if (retval < 0)
+	{
 		lo_close(stmt->hdbc, stmt->lobj_fd);
 
 		/* commit transaction if needed */
-		if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc)) {
+		if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc))
+		{
 			QResultClass *res;
-			char ok;
+			char		ok;
 
 			res = CC_send_query(stmt->hdbc, "COMMIT", NULL);
-			if (!res) {
+			if (!res)
+			{
 				stmt->errormsg = "Could not commit (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				return COPY_GENERAL_ERROR;
 			}
 			ok = QR_command_successful(res);
 			QR_Destructor(res);
-			if (!ok) {
+			if (!ok)
+			{
 				stmt->errormsg = "Could not commit (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				return COPY_GENERAL_ERROR;
@@ -1602,27 +1766,31 @@ convert_lo(StatementClass *stmt, void *value, Int2 fCType, PTR rgbValue,
 		*pcbValue = left < 0 ? SQL_NO_TOTAL : left;
 
 
-	if (bindInfo && bindInfo->data_left > 0) 
+	if (bindInfo && bindInfo->data_left > 0)
 		bindInfo->data_left -= retval;
 
 
-	if (! bindInfo || bindInfo->data_left == 0) {
+	if (!bindInfo || bindInfo->data_left == 0)
+	{
 		lo_close(stmt->hdbc, stmt->lobj_fd);
 
 		/* commit transaction if needed */
-		if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc)) {
+		if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc))
+		{
 			QResultClass *res;
-			char ok;
+			char		ok;
 
 			res = CC_send_query(stmt->hdbc, "COMMIT", NULL);
-			if (!res) {
+			if (!res)
+			{
 				stmt->errormsg = "Could not commit (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				return COPY_GENERAL_ERROR;
 			}
 			ok = QR_command_successful(res);
 			QR_Destructor(res);
-			if (!ok) {
+			if (!ok)
+			{
 				stmt->errormsg = "Could not commit (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				return COPY_GENERAL_ERROR;
@@ -1631,7 +1799,7 @@ convert_lo(StatementClass *stmt, void *value, Int2 fCType, PTR rgbValue,
 			CC_set_no_trans(stmt->hdbc);
 		}
 
-		stmt->lobj_fd = -1;	/* prevent further reading */
+		stmt->lobj_fd = -1;		/* prevent further reading */
 	}
 
 
diff --git a/src/interfaces/odbc/convert.h b/src/interfaces/odbc/convert.h
index 7fd8254779075d9b2e4caa6fdc65e0d08024f51d..1660f8084f2eeae39fc821965f89850e1faf0345 100644
--- a/src/interfaces/odbc/convert.h
+++ b/src/interfaces/odbc/convert.h
@@ -1,9 +1,9 @@
 
-/* File:            convert.h
+/* File:			convert.h
  *
- * Description:     See "convert.c"
+ * Description:		See "convert.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -13,39 +13,40 @@
 #include "psqlodbc.h"
 
 /* copy_and_convert results */
-#define COPY_OK                      0
-#define COPY_UNSUPPORTED_TYPE        1
+#define COPY_OK						 0
+#define COPY_UNSUPPORTED_TYPE		 1
 #define COPY_UNSUPPORTED_CONVERSION  2
-#define COPY_RESULT_TRUNCATED        3
-#define COPY_GENERAL_ERROR           4
-#define COPY_NO_DATA_FOUND           5
-
-typedef struct {
-	int m;
-	int d;
-	int y;
-	int hh;
-	int mm;
-	int ss;
-} SIMPLE_TIME;
-
-int copy_and_convert_field_bindinfo(StatementClass *stmt, Int4 field_type, void *value, int col);
-int copy_and_convert_field(StatementClass *stmt, Int4 field_type, void *value, Int2 fCType, 
-						   PTR rgbValue, SDWORD cbValueMax, SDWORD *pcbValue);
-
-int copy_statement_with_parameters(StatementClass *stmt);
-char *convert_escape(char *value);
-char *convert_money(char *s);
-char parse_datetime(char *buf, SIMPLE_TIME *st);
-int convert_linefeeds(char *s, char *dst, size_t max);
-char *convert_special_chars(char *si, char *dst, int used);
-
-int convert_pgbinary_to_char(char *value, char *rgbValue, int cbValueMax);
-int convert_from_pgbinary(unsigned char *value, unsigned char *rgbValue, int cbValueMax);
-int convert_to_pgbinary(unsigned char *in, char *out, int len);
-void encode(char *in, char *out);
-void decode(char *in, char *out);
-int convert_lo(StatementClass *stmt, void *value, Int2 fCType, PTR rgbValue, 
-		   SDWORD cbValueMax, SDWORD *pcbValue);
+#define COPY_RESULT_TRUNCATED		 3
+#define COPY_GENERAL_ERROR			 4
+#define COPY_NO_DATA_FOUND			 5
+
+typedef struct
+{
+	int			m;
+	int			d;
+	int			y;
+	int			hh;
+	int			mm;
+	int			ss;
+}			SIMPLE_TIME;
+
+int			copy_and_convert_field_bindinfo(StatementClass * stmt, Int4 field_type, void *value, int col);
+int copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 fCType,
+					 PTR rgbValue, SDWORD cbValueMax, SDWORD * pcbValue);
+
+int			copy_statement_with_parameters(StatementClass * stmt);
+char	   *convert_escape(char *value);
+char	   *convert_money(char *s);
+char		parse_datetime(char *buf, SIMPLE_TIME * st);
+int			convert_linefeeds(char *s, char *dst, size_t max);
+char	   *convert_special_chars(char *si, char *dst, int used);
+
+int			convert_pgbinary_to_char(char *value, char *rgbValue, int cbValueMax);
+int			convert_from_pgbinary(unsigned char *value, unsigned char *rgbValue, int cbValueMax);
+int			convert_to_pgbinary(unsigned char *in, char *out, int len);
+void		encode(char *in, char *out);
+void		decode(char *in, char *out);
+int convert_lo(StatementClass * stmt, void *value, Int2 fCType, PTR rgbValue,
+		   SDWORD cbValueMax, SDWORD * pcbValue);
 
 #endif
diff --git a/src/interfaces/odbc/dlg_specific.c b/src/interfaces/odbc/dlg_specific.c
index 2bbf46faea94bb43826656125179c7dffca1af69..5f8e276a0ab17948928cc466c63ecd1233dcb922 100644
--- a/src/interfaces/odbc/dlg_specific.c
+++ b/src/interfaces/odbc/dlg_specific.c
@@ -1,17 +1,17 @@
-/* Module:          dlg_specific.c
+/* Module:			dlg_specific.c
  *
- * Description:     This module contains any specific code for handling
- *                  dialog boxes such as driver/datasource options.  Both the
- *                  ConfigDSN() and the SQLDriverConnect() functions use 
- *                  functions in this module.  If you were to add a new option
- *                  to any dialog box, you would most likely only have to change
- *                  things in here rather than in 2 separate places as before.
+ * Description:		This module contains any specific code for handling
+ *					dialog boxes such as driver/datasource options.  Both the
+ *					ConfigDSN() and the SQLDriverConnect() functions use
+ *					functions in this module.  If you were to add a new option
+ *					to any dialog box, you would most likely only have to change
+ *					things in here rather than in 2 separate places as before.
  *
- * Classes:         none
+ * Classes:			none
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -20,14 +20,14 @@
 #endif
 
 #ifndef WIN32
-# include <string.h>
-# include "gpps.h"
-# define SQLGetPrivateProfileString(a,b,c,d,e,f) GetPrivateProfileString(a,b,c,d,e,f)
-# define SQLWritePrivateProfileString(a,b,c,d) WritePrivateProfileString(a,b,c,d)
-# ifndef HAVE_STRICMP
-#  define stricmp(s1,s2)      strcasecmp(s1,s2)
-#  define strnicmp(s1,s2,n)   strncasecmp(s1,s2,n)
-# endif
+#include <string.h>
+#include "gpps.h"
+#define SQLGetPrivateProfileString(a,b,c,d,e,f) GetPrivateProfileString(a,b,c,d,e,f)
+#define SQLWritePrivateProfileString(a,b,c,d) WritePrivateProfileString(a,b,c,d)
+#ifndef HAVE_STRICMP
+#define stricmp(s1,s2)		strcasecmp(s1,s2)
+#define strnicmp(s1,s2,n)	strncasecmp(s1,s2,n)
+#endif
 #endif
 
 #include "dlg_specific.h"
@@ -47,10 +47,15 @@ extern GLOBAL_VALUES globals;
 
 #ifdef WIN32
 void
-SetDlgStuff(HWND hdlg, ConnInfo *ci)
+SetDlgStuff(HWND hdlg, ConnInfo * ci)
 {
-	/*	If driver attribute NOT present, then set the datasource name and description */
-	if (ci->driver[0] == '\0') {
+
+	/*
+	 * If driver attribute NOT present, then set the datasource name and
+	 * description
+	 */
+	if (ci->driver[0] == '\0')
+	{
 		SetDlgItemText(hdlg, IDC_DSNAME, ci->dsn);
 		SetDlgItemText(hdlg, IDC_DESC, ci->desc);
 	}
@@ -62,8 +67,8 @@ SetDlgStuff(HWND hdlg, ConnInfo *ci)
 	SetDlgItemText(hdlg, IDC_PORT, ci->port);
 }
 
-void 
-GetDlgStuff(HWND hdlg, ConnInfo *ci)
+void
+GetDlgStuff(HWND hdlg, ConnInfo * ci)
 {
 	GetDlgItemText(hdlg, IDC_DESC, ci->desc, sizeof(ci->desc));
 
@@ -76,286 +81,296 @@ GetDlgStuff(HWND hdlg, ConnInfo *ci)
 
 
 
-int CALLBACK driver_optionsProc(HWND   hdlg,
-                           WORD   wMsg,
-                           WPARAM wParam,
-                           LPARAM lParam)
+int CALLBACK
+driver_optionsProc(HWND hdlg,
+				   WORD wMsg,
+				   WPARAM wParam,
+				   LPARAM lParam)
 {
-	switch (wMsg) {
-	case WM_INITDIALOG:
-
-		CheckDlgButton(hdlg, DRV_COMMLOG, globals.commlog);
-		CheckDlgButton(hdlg, DRV_OPTIMIZER, globals.disable_optimizer);
-		CheckDlgButton(hdlg, DRV_KSQO, globals.ksqo);
-		CheckDlgButton(hdlg, DRV_UNIQUEINDEX, globals.unique_index);
-		CheckDlgButton(hdlg, DRV_READONLY, globals.onlyread);
-		CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, globals.use_declarefetch);
-
-		/*	Unknown (Default) Data Type sizes */
-		switch(globals.unknown_sizes) {
-		case UNKNOWNS_AS_DONTKNOW:
-			CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1);
-			break;
-		case UNKNOWNS_AS_LONGEST:
-			CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1);
-			break;
-		case UNKNOWNS_AS_MAX:
-		default:
-			CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1);
-			break;
-		}
-
-		CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, globals.text_as_longvarchar);
-		CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, globals.unknowns_as_longvarchar);
-		CheckDlgButton(hdlg, DRV_BOOLS_CHAR, globals.bools_as_char);
-
-		CheckDlgButton(hdlg, DRV_PARSE, globals.parse);
+	switch (wMsg)
+	{
+			case WM_INITDIALOG:
+
+			CheckDlgButton(hdlg, DRV_COMMLOG, globals.commlog);
+			CheckDlgButton(hdlg, DRV_OPTIMIZER, globals.disable_optimizer);
+			CheckDlgButton(hdlg, DRV_KSQO, globals.ksqo);
+			CheckDlgButton(hdlg, DRV_UNIQUEINDEX, globals.unique_index);
+			CheckDlgButton(hdlg, DRV_READONLY, globals.onlyread);
+			CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, globals.use_declarefetch);
+
+			/* Unknown (Default) Data Type sizes */
+			switch (globals.unknown_sizes)
+			{
+				case UNKNOWNS_AS_DONTKNOW:
+					CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1);
+					break;
+				case UNKNOWNS_AS_LONGEST:
+					CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1);
+					break;
+				case UNKNOWNS_AS_MAX:
+				default:
+					CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1);
+					break;
+			}
 
-		CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, globals.cancel_as_freestmt);
+			CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, globals.text_as_longvarchar);
+			CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, globals.unknowns_as_longvarchar);
+			CheckDlgButton(hdlg, DRV_BOOLS_CHAR, globals.bools_as_char);
 
-		SetDlgItemInt(hdlg, DRV_CACHE_SIZE, globals.fetch_max, FALSE);
-		SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, globals.max_varchar_size, FALSE);
-		SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, globals.max_longvarchar_size, TRUE);
+			CheckDlgButton(hdlg, DRV_PARSE, globals.parse);
 
-		SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes);
+			CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, globals.cancel_as_freestmt);
 
-		/*	Driver Connection Settings */
-		SetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings);
+			SetDlgItemInt(hdlg, DRV_CACHE_SIZE, globals.fetch_max, FALSE);
+			SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, globals.max_varchar_size, FALSE);
+			SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, globals.max_longvarchar_size, TRUE);
 
-		break; 
+			SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes);
 
-	case WM_COMMAND:
-		switch (GET_WM_COMMAND_ID(wParam, lParam)) {
-		case IDOK:
+			/* Driver Connection Settings */
+			SetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings);
 
-			globals.commlog = IsDlgButtonChecked(hdlg, DRV_COMMLOG);
-			globals.disable_optimizer = IsDlgButtonChecked(hdlg, DRV_OPTIMIZER);
-			globals.ksqo = IsDlgButtonChecked(hdlg, DRV_KSQO);
-			globals.unique_index = IsDlgButtonChecked(hdlg, DRV_UNIQUEINDEX);
-			globals.onlyread = IsDlgButtonChecked(hdlg, DRV_READONLY);
-			globals.use_declarefetch = IsDlgButtonChecked(hdlg, DRV_USEDECLAREFETCH);
+			break;
 
-			/*	Unknown (Default) Data Type sizes */
-			if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_MAX))
-				globals.unknown_sizes = UNKNOWNS_AS_MAX;
-			else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_DONTKNOW))
-				globals.unknown_sizes = UNKNOWNS_AS_DONTKNOW;
-			else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_LONGEST))
-				globals.unknown_sizes = UNKNOWNS_AS_LONGEST;
-			else
-				globals.unknown_sizes = UNKNOWNS_AS_MAX;
-
-			globals.text_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_TEXT_LONGVARCHAR);
-			globals.unknowns_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_UNKNOWNS_LONGVARCHAR);
-			globals.bools_as_char = IsDlgButtonChecked(hdlg, DRV_BOOLS_CHAR);
-
-			globals.parse = IsDlgButtonChecked(hdlg, DRV_PARSE);
-
-			globals.cancel_as_freestmt = IsDlgButtonChecked(hdlg, DRV_CANCELASFREESTMT);
-
-			globals.fetch_max = GetDlgItemInt(hdlg, DRV_CACHE_SIZE, NULL, FALSE);
-			globals.max_varchar_size = GetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, NULL, FALSE);
-			globals.max_longvarchar_size= GetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, NULL, TRUE);	/* allows for SQL_NO_TOTAL */
-
-			GetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, sizeof(globals.extra_systable_prefixes));
-
-			/*	Driver Connection Settings */
-			GetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings, sizeof(globals.conn_settings));
-
-			updateGlobals();
-
-			/*	fall through */
-
-		case IDCANCEL:
-			EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK);
-			return TRUE;
-
-		case IDDEFAULTS:
-			CheckDlgButton(hdlg, DRV_COMMLOG, DEFAULT_COMMLOG);
-			CheckDlgButton(hdlg, DRV_OPTIMIZER, DEFAULT_OPTIMIZER);
-			CheckDlgButton(hdlg, DRV_KSQO, DEFAULT_KSQO);
-			CheckDlgButton(hdlg, DRV_UNIQUEINDEX, DEFAULT_UNIQUEINDEX);
-			CheckDlgButton(hdlg, DRV_READONLY, DEFAULT_READONLY);
-			CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, DEFAULT_USEDECLAREFETCH);
-	
-			CheckDlgButton(hdlg, DRV_PARSE, DEFAULT_PARSE);
-			CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, DEFAULT_CANCELASFREESTMT);
-
-			/*	Unknown Sizes */
-			CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 0);
-			CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 0);
-			CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 0);
-			switch(DEFAULT_UNKNOWNSIZES) {
-			case UNKNOWNS_AS_DONTKNOW:
-				CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1);
-				break;
-			case UNKNOWNS_AS_LONGEST:
-				CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1);
-				break;
-			case UNKNOWNS_AS_MAX:
-				CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1);
-				break;
+		case WM_COMMAND:
+			switch (GET_WM_COMMAND_ID(wParam, lParam))
+			{
+				case IDOK:
+
+					globals.commlog = IsDlgButtonChecked(hdlg, DRV_COMMLOG);
+					globals.disable_optimizer = IsDlgButtonChecked(hdlg, DRV_OPTIMIZER);
+					globals.ksqo = IsDlgButtonChecked(hdlg, DRV_KSQO);
+					globals.unique_index = IsDlgButtonChecked(hdlg, DRV_UNIQUEINDEX);
+					globals.onlyread = IsDlgButtonChecked(hdlg, DRV_READONLY);
+					globals.use_declarefetch = IsDlgButtonChecked(hdlg, DRV_USEDECLAREFETCH);
+
+					/* Unknown (Default) Data Type sizes */
+					if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_MAX))
+						globals.unknown_sizes = UNKNOWNS_AS_MAX;
+					else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_DONTKNOW))
+						globals.unknown_sizes = UNKNOWNS_AS_DONTKNOW;
+					else if (IsDlgButtonChecked(hdlg, DRV_UNKNOWN_LONGEST))
+						globals.unknown_sizes = UNKNOWNS_AS_LONGEST;
+					else
+						globals.unknown_sizes = UNKNOWNS_AS_MAX;
+
+					globals.text_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_TEXT_LONGVARCHAR);
+					globals.unknowns_as_longvarchar = IsDlgButtonChecked(hdlg, DRV_UNKNOWNS_LONGVARCHAR);
+					globals.bools_as_char = IsDlgButtonChecked(hdlg, DRV_BOOLS_CHAR);
+
+					globals.parse = IsDlgButtonChecked(hdlg, DRV_PARSE);
+
+					globals.cancel_as_freestmt = IsDlgButtonChecked(hdlg, DRV_CANCELASFREESTMT);
+
+					globals.fetch_max = GetDlgItemInt(hdlg, DRV_CACHE_SIZE, NULL, FALSE);
+					globals.max_varchar_size = GetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, NULL, FALSE);
+					globals.max_longvarchar_size = GetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, NULL, TRUE);		/* allows for
+																												 * SQL_NO_TOTAL */
+
+					GetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, sizeof(globals.extra_systable_prefixes));
+
+					/* Driver Connection Settings */
+					GetDlgItemText(hdlg, DRV_CONNSETTINGS, globals.conn_settings, sizeof(globals.conn_settings));
+
+					updateGlobals();
+
+					/* fall through */
+
+				case IDCANCEL:
+					EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK);
+					return TRUE;
+
+				case IDDEFAULTS:
+					CheckDlgButton(hdlg, DRV_COMMLOG, DEFAULT_COMMLOG);
+					CheckDlgButton(hdlg, DRV_OPTIMIZER, DEFAULT_OPTIMIZER);
+					CheckDlgButton(hdlg, DRV_KSQO, DEFAULT_KSQO);
+					CheckDlgButton(hdlg, DRV_UNIQUEINDEX, DEFAULT_UNIQUEINDEX);
+					CheckDlgButton(hdlg, DRV_READONLY, DEFAULT_READONLY);
+					CheckDlgButton(hdlg, DRV_USEDECLAREFETCH, DEFAULT_USEDECLAREFETCH);
+
+					CheckDlgButton(hdlg, DRV_PARSE, DEFAULT_PARSE);
+					CheckDlgButton(hdlg, DRV_CANCELASFREESTMT, DEFAULT_CANCELASFREESTMT);
+
+					/* Unknown Sizes */
+					CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 0);
+					CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 0);
+					CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 0);
+					switch (DEFAULT_UNKNOWNSIZES)
+					{
+						case UNKNOWNS_AS_DONTKNOW:
+							CheckDlgButton(hdlg, DRV_UNKNOWN_DONTKNOW, 1);
+							break;
+						case UNKNOWNS_AS_LONGEST:
+							CheckDlgButton(hdlg, DRV_UNKNOWN_LONGEST, 1);
+							break;
+						case UNKNOWNS_AS_MAX:
+							CheckDlgButton(hdlg, DRV_UNKNOWN_MAX, 1);
+							break;
+					}
+
+					CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, DEFAULT_TEXTASLONGVARCHAR);
+					CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, DEFAULT_UNKNOWNSASLONGVARCHAR);
+					CheckDlgButton(hdlg, DRV_BOOLS_CHAR, DEFAULT_BOOLSASCHAR);
+
+					SetDlgItemInt(hdlg, DRV_CACHE_SIZE, FETCH_MAX, FALSE);
+					SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, MAX_VARCHAR_SIZE, FALSE);
+					SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, TEXT_FIELD_SIZE, TRUE);
+
+					SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, DEFAULT_EXTRASYSTABLEPREFIXES);
+
+					/* Driver Connection Settings */
+					SetDlgItemText(hdlg, DRV_CONNSETTINGS, "");
+
+					break;
 			}
 
-			CheckDlgButton(hdlg, DRV_TEXT_LONGVARCHAR, DEFAULT_TEXTASLONGVARCHAR);
-			CheckDlgButton(hdlg, DRV_UNKNOWNS_LONGVARCHAR, DEFAULT_UNKNOWNSASLONGVARCHAR);
-			CheckDlgButton(hdlg, DRV_BOOLS_CHAR, DEFAULT_BOOLSASCHAR);
-
-			SetDlgItemInt(hdlg, DRV_CACHE_SIZE, FETCH_MAX, FALSE);
-			SetDlgItemInt(hdlg, DRV_VARCHAR_SIZE, MAX_VARCHAR_SIZE, FALSE);
-			SetDlgItemInt(hdlg, DRV_LONGVARCHAR_SIZE, TEXT_FIELD_SIZE, TRUE);
-
-			SetDlgItemText(hdlg, DRV_EXTRASYSTABLEPREFIXES, DEFAULT_EXTRASYSTABLEPREFIXES);
-
-			/*	Driver Connection Settings */
-			SetDlgItemText(hdlg, DRV_CONNSETTINGS, "");
-
-			break;
-		}
-
 	}
 
 	return FALSE;
 }
 
-int CALLBACK ds_optionsProc(HWND   hdlg,
-                           WORD   wMsg,
-                           WPARAM wParam,
-                           LPARAM lParam)
+int CALLBACK
+ds_optionsProc(HWND hdlg,
+			   WORD wMsg,
+			   WPARAM wParam,
+			   LPARAM lParam)
 {
-ConnInfo *ci;
-char buf[128];
-
-	switch (wMsg) {
-	case WM_INITDIALOG:
-		ci = (ConnInfo *) lParam;		
-		SetWindowLong(hdlg, DWL_USER, lParam);	/* save for OK */
-
-		/*	Change window caption */
-		if (ci->driver[0])
-			SetWindowText(hdlg, "Advanced Options (Connection)");
-		else {
-			sprintf(buf, "Advanced Options (%s)", ci->dsn);
-			SetWindowText(hdlg, buf);
-		}
+	ConnInfo   *ci;
+	char		buf[128];
+
+	switch (wMsg)
+	{
+		case WM_INITDIALOG:
+			ci = (ConnInfo *) lParam;
+			SetWindowLong(hdlg, DWL_USER, lParam);		/* save for OK */
+
+			/* Change window caption */
+			if (ci->driver[0])
+				SetWindowText(hdlg, "Advanced Options (Connection)");
+			else
+			{
+				sprintf(buf, "Advanced Options (%s)", ci->dsn);
+				SetWindowText(hdlg, buf);
+			}
 
-		/*	Readonly */
-		CheckDlgButton(hdlg, DS_READONLY, atoi(ci->onlyread));
+			/* Readonly */
+			CheckDlgButton(hdlg, DS_READONLY, atoi(ci->onlyread));
 
-		/*	Protocol */
-		CheckDlgButton(hdlg, DS_PG64, 1);
+			/* Protocol */
+			CheckDlgButton(hdlg, DS_PG64, 1);
 
 
 
-		CheckDlgButton(hdlg, DS_SHOWOIDCOLUMN, atoi(ci->show_oid_column));
-		CheckDlgButton(hdlg, DS_FAKEOIDINDEX, atoi(ci->fake_oid_index));
-		CheckDlgButton(hdlg, DS_ROWVERSIONING, atoi(ci->row_versioning));
-		CheckDlgButton(hdlg, DS_SHOWSYSTEMTABLES, atoi(ci->show_system_tables));
+			CheckDlgButton(hdlg, DS_SHOWOIDCOLUMN, atoi(ci->show_oid_column));
+			CheckDlgButton(hdlg, DS_FAKEOIDINDEX, atoi(ci->fake_oid_index));
+			CheckDlgButton(hdlg, DS_ROWVERSIONING, atoi(ci->row_versioning));
+			CheckDlgButton(hdlg, DS_SHOWSYSTEMTABLES, atoi(ci->show_system_tables));
 
-		EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), atoi(ci->show_oid_column));
+			EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), atoi(ci->show_oid_column));
 
-		/*	Datasource Connection Settings */
-		SetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings);
-		break; 
+			/* Datasource Connection Settings */
+			SetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings);
+			break;
 
 
-	case WM_COMMAND:
-		switch (GET_WM_COMMAND_ID(wParam, lParam)) {
-		case DS_SHOWOIDCOLUMN:
-			mylog("WM_COMMAND: DS_SHOWOIDCOLUMN\n");
-			EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN));
-			return TRUE;
+		case WM_COMMAND:
+			switch (GET_WM_COMMAND_ID(wParam, lParam))
+			{
+				case DS_SHOWOIDCOLUMN:
+					mylog("WM_COMMAND: DS_SHOWOIDCOLUMN\n");
+					EnableWindow(GetDlgItem(hdlg, DS_FAKEOIDINDEX), IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN));
+					return TRUE;
 
 
-		case IDOK: 
+				case IDOK:
 
-			ci = (ConnInfo *)GetWindowLong(hdlg, DWL_USER);
-			mylog("IDOK: got ci = %u\n", ci);
+					ci = (ConnInfo *) GetWindowLong(hdlg, DWL_USER);
+					mylog("IDOK: got ci = %u\n", ci);
 
-			/*	Readonly */
-			sprintf(ci->onlyread, "%d", IsDlgButtonChecked(hdlg, DS_READONLY));
+					/* Readonly */
+					sprintf(ci->onlyread, "%d", IsDlgButtonChecked(hdlg, DS_READONLY));
 
-			/*	Protocol */
-			strcpy(ci->protocol, PG64);
+					/* Protocol */
+					strcpy(ci->protocol, PG64);
 
-			sprintf(ci->show_system_tables, "%d", IsDlgButtonChecked(hdlg, DS_SHOWSYSTEMTABLES));
+					sprintf(ci->show_system_tables, "%d", IsDlgButtonChecked(hdlg, DS_SHOWSYSTEMTABLES));
 
-			sprintf(ci->row_versioning, "%d", IsDlgButtonChecked(hdlg, DS_ROWVERSIONING));
+					sprintf(ci->row_versioning, "%d", IsDlgButtonChecked(hdlg, DS_ROWVERSIONING));
 
-			/*	OID Options*/
-			sprintf(ci->fake_oid_index, "%d", IsDlgButtonChecked(hdlg, DS_FAKEOIDINDEX));
-			sprintf(ci->show_oid_column, "%d", IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN));
+					/* OID Options */
+					sprintf(ci->fake_oid_index, "%d", IsDlgButtonChecked(hdlg, DS_FAKEOIDINDEX));
+					sprintf(ci->show_oid_column, "%d", IsDlgButtonChecked(hdlg, DS_SHOWOIDCOLUMN));
 
-			/*	Datasource Connection Settings */
-			GetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings, sizeof(ci->conn_settings));
+					/* Datasource Connection Settings */
+					GetDlgItemText(hdlg, DS_CONNSETTINGS, ci->conn_settings, sizeof(ci->conn_settings));
 
 
-			/*	fall through */
+					/* fall through */
 
-		case IDCANCEL:
-			EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK);
-			return TRUE;
-		}
+				case IDCANCEL:
+					EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK);
+					return TRUE;
+			}
 	}
 
 	return FALSE;
 }
 
-#endif	/* WIN32 */
+#endif	 /* WIN32 */
 
 void
-makeConnectString(char *connect_string, ConnInfo *ci)
+makeConnectString(char *connect_string, ConnInfo * ci)
 {
-char got_dsn = (ci->dsn[0] != '\0');
-char encoded_conn_settings[LARGE_REGISTRY_LEN];
+	char		got_dsn = (ci->dsn[0] != '\0');
+	char		encoded_conn_settings[LARGE_REGISTRY_LEN];
 
-	/*	fundamental info */
+	/* fundamental info */
 	sprintf(connect_string, "%s=%s;DATABASE=%s;SERVER=%s;PORT=%s;UID=%s;PWD=%s",
-		got_dsn ? "DSN" : "DRIVER", 
-		got_dsn ? ci->dsn : ci->driver,
-		ci->database,
-		ci->server,
-		ci->port,
-		ci->username,
-		ci->password);
+			got_dsn ? "DSN" : "DRIVER",
+			got_dsn ? ci->dsn : ci->driver,
+			ci->database,
+			ci->server,
+			ci->port,
+			ci->username,
+			ci->password);
 
 	encode(ci->conn_settings, encoded_conn_settings);
 
-	/*	extra info */
-	sprintf(&connect_string[strlen(connect_string)], 
-		";READONLY=%s;PROTOCOL=%s;FAKEOIDINDEX=%s;SHOWOIDCOLUMN=%s;ROWVERSIONING=%s;SHOWSYSTEMTABLES=%s;CONNSETTINGS=%s", 
-		ci->onlyread,
-		ci->protocol,
-		ci->fake_oid_index,
-		ci->show_oid_column,
-		ci->row_versioning,
-		ci->show_system_tables,
-		encoded_conn_settings);
+	/* extra info */
+	sprintf(&connect_string[strlen(connect_string)],
+			";READONLY=%s;PROTOCOL=%s;FAKEOIDINDEX=%s;SHOWOIDCOLUMN=%s;ROWVERSIONING=%s;SHOWSYSTEMTABLES=%s;CONNSETTINGS=%s",
+			ci->onlyread,
+			ci->protocol,
+			ci->fake_oid_index,
+			ci->show_oid_column,
+			ci->row_versioning,
+			ci->show_system_tables,
+			encoded_conn_settings);
 }
 
 void
-copyAttributes(ConnInfo *ci, char *attribute, char *value)
+copyAttributes(ConnInfo * ci, char *attribute, char *value)
 {
 
-	if(stricmp(attribute, "DSN") == 0)
+	if (stricmp(attribute, "DSN") == 0)
 		strcpy(ci->dsn, value);
 
-	else if(stricmp(attribute, "driver") == 0)
+	else if (stricmp(attribute, "driver") == 0)
 		strcpy(ci->driver, value);
 
-	else if(stricmp(attribute, INI_DATABASE) == 0)
+	else if (stricmp(attribute, INI_DATABASE) == 0)
 		strcpy(ci->database, value);
 
-	else if(stricmp(attribute, INI_SERVER) == 0 || stricmp(attribute, "server") == 0)
+	else if (stricmp(attribute, INI_SERVER) == 0 || stricmp(attribute, "server") == 0)
 		strcpy(ci->server, value);
 
-	else if(stricmp(attribute, INI_USER) == 0 || stricmp(attribute, "uid") == 0)
+	else if (stricmp(attribute, INI_USER) == 0 || stricmp(attribute, "uid") == 0)
 		strcpy(ci->username, value);
 
-	else if(stricmp(attribute, INI_PASSWORD) == 0 || stricmp(attribute, "pwd") == 0)
+	else if (stricmp(attribute, INI_PASSWORD) == 0 || stricmp(attribute, "pwd") == 0)
 		strcpy(ci->password, value);
 
-	else if(stricmp(attribute, INI_PORT) == 0)
+	else if (stricmp(attribute, INI_PORT) == 0)
 		strcpy(ci->port, value);
 
 	else if (stricmp(attribute, INI_READONLY) == 0)
@@ -376,17 +391,18 @@ copyAttributes(ConnInfo *ci, char *attribute, char *value)
 	else if (stricmp(attribute, INI_SHOWSYSTEMTABLES) == 0)
 		strcpy(ci->show_system_tables, value);
 
-	else if (stricmp(attribute, INI_CONNSETTINGS) == 0) {
+	else if (stricmp(attribute, INI_CONNSETTINGS) == 0)
+	{
 		decode(value, ci->conn_settings);
 		/* strcpy(ci->conn_settings, value); */
 	}
 
-	mylog("copyAttributes: DSN='%s',server='%s',dbase='%s',user='%s',passwd='%s',port='%s',onlyread='%s',protocol='%s', conn_settings='%s')\n", ci->dsn, ci->server,ci->database,ci->username,ci->password,ci->port,ci->onlyread,ci->protocol,ci->conn_settings);
+	mylog("copyAttributes: DSN='%s',server='%s',dbase='%s',user='%s',passwd='%s',port='%s',onlyread='%s',protocol='%s', conn_settings='%s')\n", ci->dsn, ci->server, ci->database, ci->username, ci->password, ci->port, ci->onlyread, ci->protocol, ci->conn_settings);
 
 }
 
 void
-getDSNdefaults(ConnInfo *ci)
+getDSNdefaults(ConnInfo * ci)
 {
 	if (ci->port[0] == '\0')
 		strcpy(ci->port, DEFAULT_PORT);
@@ -411,445 +427,460 @@ getDSNdefaults(ConnInfo *ci)
 }
 
 
-void 
-getDSNinfo(ConnInfo *ci, char overwrite)
+void
+getDSNinfo(ConnInfo * ci, char overwrite)
 {
-char *DSN = ci->dsn;
-char encoded_conn_settings[LARGE_REGISTRY_LEN];
+	char	   *DSN = ci->dsn;
+	char		encoded_conn_settings[LARGE_REGISTRY_LEN];
 
 /*	If a driver keyword was present, then dont use a DSN and return. */
 /*	If DSN is null and no driver, then use the default datasource. */
-	if ( DSN[0] == '\0') {
-		if ( ci->driver[0] != '\0')
+	if (DSN[0] == '\0')
+	{
+		if (ci->driver[0] != '\0')
 			return;
 		else
 			strcpy(DSN, INI_DSN);
 	}
 
 	/* brute-force chop off trailing blanks... */
-	while (*(DSN+strlen(DSN)-1) == ' ') *(DSN+strlen(DSN)-1) = '\0';
+	while (*(DSN + strlen(DSN) - 1) == ' ')
+		*(DSN + strlen(DSN) - 1) = '\0';
 
-	/*	Proceed with getting info for the given DSN. */
+	/* Proceed with getting info for the given DSN. */
 
-	if ( ci->desc[0] == '\0' || overwrite)
+	if (ci->desc[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_KDESC, "", ci->desc, sizeof(ci->desc), ODBC_INI);
 
-	if ( ci->server[0] == '\0' || overwrite)
+	if (ci->server[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_SERVER, "", ci->server, sizeof(ci->server), ODBC_INI);
 
-	if ( ci->database[0] == '\0' || overwrite)
-	    SQLGetPrivateProfileString(DSN, INI_DATABASE, "", ci->database, sizeof(ci->database), ODBC_INI);
+	if (ci->database[0] == '\0' || overwrite)
+		SQLGetPrivateProfileString(DSN, INI_DATABASE, "", ci->database, sizeof(ci->database), ODBC_INI);
 
-	if ( ci->username[0] == '\0' || overwrite)
+	if (ci->username[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_USER, "", ci->username, sizeof(ci->username), ODBC_INI);
 
-	if ( ci->password[0] == '\0' || overwrite)
+	if (ci->password[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_PASSWORD, "", ci->password, sizeof(ci->password), ODBC_INI);
 
-	if ( ci->port[0] == '\0' || overwrite)
+	if (ci->port[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_PORT, "", ci->port, sizeof(ci->port), ODBC_INI);
 
-	if ( ci->onlyread[0] == '\0' || overwrite)
+	if (ci->onlyread[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_READONLY, "", ci->onlyread, sizeof(ci->onlyread), ODBC_INI);
 
-	if ( ci->show_oid_column[0] == '\0' || overwrite)
+	if (ci->show_oid_column[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_SHOWOIDCOLUMN, "", ci->show_oid_column, sizeof(ci->show_oid_column), ODBC_INI);
 
-	if ( ci->fake_oid_index[0] == '\0' || overwrite)
+	if (ci->fake_oid_index[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_FAKEOIDINDEX, "", ci->fake_oid_index, sizeof(ci->fake_oid_index), ODBC_INI);
 
-	if ( ci->row_versioning[0] == '\0' || overwrite)
+	if (ci->row_versioning[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_ROWVERSIONING, "", ci->row_versioning, sizeof(ci->row_versioning), ODBC_INI);
 
-	if ( ci->show_system_tables[0] == '\0' || overwrite)
+	if (ci->show_system_tables[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_SHOWSYSTEMTABLES, "", ci->show_system_tables, sizeof(ci->show_system_tables), ODBC_INI);
 
-	if ( ci->protocol[0] == '\0' || overwrite)
+	if (ci->protocol[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_PROTOCOL, "", ci->protocol, sizeof(ci->protocol), ODBC_INI);
 
-	if ( ci->conn_settings[0] == '\0' || overwrite) {
+	if (ci->conn_settings[0] == '\0' || overwrite)
+	{
 		SQLGetPrivateProfileString(DSN, INI_CONNSETTINGS, "", encoded_conn_settings, sizeof(encoded_conn_settings), ODBC_INI);
 		decode(encoded_conn_settings, ci->conn_settings);
 	}
 
-	if ( ci->translation_dll[0] == '\0' || overwrite)
+	if (ci->translation_dll[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_TRANSLATIONDLL, "", ci->translation_dll, sizeof(ci->translation_dll), ODBC_INI);
 
-	if ( ci->translation_option[0] == '\0' || overwrite)
+	if (ci->translation_option[0] == '\0' || overwrite)
 		SQLGetPrivateProfileString(DSN, INI_TRANSLATIONOPTION, "", ci->translation_option, sizeof(ci->translation_option), ODBC_INI);
 
 
-	/*	Allow override of odbcinst.ini parameters here */
+	/* Allow override of odbcinst.ini parameters here */
 	getGlobalDefaults(DSN, ODBC_INI, TRUE);
 
 
-	qlog("DSN info: DSN='%s',server='%s',port='%s',dbase='%s',user='%s',passwd='%s'\n", 
-		DSN, 
-		ci->server,
-		ci->port,
-		ci->database,
-		ci->username,
-		ci->password);
+	qlog("DSN info: DSN='%s',server='%s',port='%s',dbase='%s',user='%s',passwd='%s'\n",
+		 DSN,
+		 ci->server,
+		 ci->port,
+		 ci->database,
+		 ci->username,
+		 ci->password);
 	qlog("          onlyread='%s',protocol='%s',showoid='%s',fakeoidindex='%s',showsystable='%s'\n",
-		ci->onlyread,
-		ci->protocol,
-		ci->show_oid_column,
-		ci->fake_oid_index,
-		ci->show_system_tables);
+		 ci->onlyread,
+		 ci->protocol,
+		 ci->show_oid_column,
+		 ci->fake_oid_index,
+		 ci->show_system_tables);
 	qlog("          conn_settings='%s'\n",
-		ci->conn_settings);
+		 ci->conn_settings);
 	qlog("          translation_dll='%s',translation_option='%s'\n",
-		ci->translation_dll,
-		ci->translation_option);
+		 ci->translation_dll,
+		 ci->translation_option);
 
 }
 
 
 /*	This is for datasource based options only */
 void
-writeDSNinfo(ConnInfo *ci)
+writeDSNinfo(ConnInfo * ci)
 {
-char *DSN = ci->dsn;
-char encoded_conn_settings[LARGE_REGISTRY_LEN];
-
-		encode(ci->conn_settings, encoded_conn_settings);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_KDESC,
-			ci->desc,
-			ODBC_INI);
-                        
-		SQLWritePrivateProfileString(DSN,
-			INI_DATABASE,
-			ci->database,
-			ODBC_INI);
-                        
-		SQLWritePrivateProfileString(DSN,
-			INI_SERVER,
-			ci->server,
-			ODBC_INI);
+	char	   *DSN = ci->dsn;
+	char		encoded_conn_settings[LARGE_REGISTRY_LEN];
 
-		SQLWritePrivateProfileString(DSN,
-			INI_PORT,
-			ci->port,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_USER,
-			ci->username,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_PASSWORD,
-			ci->password,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_READONLY,
-			ci->onlyread,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_SHOWOIDCOLUMN,
-			ci->show_oid_column,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_FAKEOIDINDEX,
-			ci->fake_oid_index,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_ROWVERSIONING,
-			ci->row_versioning,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_SHOWSYSTEMTABLES,
-			ci->show_system_tables,
-			ODBC_INI);
-
-		SQLWritePrivateProfileString(DSN,
-			INI_PROTOCOL,
-			ci->protocol,
-			ODBC_INI);
+	encode(ci->conn_settings, encoded_conn_settings);
 
-		SQLWritePrivateProfileString(DSN,
-			INI_CONNSETTINGS,
-			encoded_conn_settings,
-			ODBC_INI);
+	SQLWritePrivateProfileString(DSN,
+								 INI_KDESC,
+								 ci->desc,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_DATABASE,
+								 ci->database,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_SERVER,
+								 ci->server,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_PORT,
+								 ci->port,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_USER,
+								 ci->username,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_PASSWORD,
+								 ci->password,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_READONLY,
+								 ci->onlyread,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_SHOWOIDCOLUMN,
+								 ci->show_oid_column,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_FAKEOIDINDEX,
+								 ci->fake_oid_index,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_ROWVERSIONING,
+								 ci->row_versioning,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_SHOWSYSTEMTABLES,
+								 ci->show_system_tables,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_PROTOCOL,
+								 ci->protocol,
+								 ODBC_INI);
+
+	SQLWritePrivateProfileString(DSN,
+								 INI_CONNSETTINGS,
+								 encoded_conn_settings,
+								 ODBC_INI);
 }
 
 
 /*	This function reads the ODBCINST.INI portion of
 	the registry and gets any driver defaults.
 */
-void getGlobalDefaults(char *section, char *filename, char override)
+void
+getGlobalDefaults(char *section, char *filename, char override)
 {
-char temp[256];
+	char		temp[256];
 
 
-    /*	Fetch Count is stored in driver section */
-    SQLGetPrivateProfileString(section, INI_FETCH, "",
-                            temp, sizeof(temp), filename);
-	if ( temp[0] ) {
+	/* Fetch Count is stored in driver section */
+	SQLGetPrivateProfileString(section, INI_FETCH, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
+	{
 		globals.fetch_max = atoi(temp);
-		/*	sanity check if using cursors */
+		/* sanity check if using cursors */
 		if (globals.fetch_max <= 0)
 			globals.fetch_max = FETCH_MAX;
 	}
-	else if ( ! override)
+	else if (!override)
 		globals.fetch_max = FETCH_MAX;
 
 
-	/*	Socket Buffersize is stored in driver section */
-    SQLGetPrivateProfileString(section, INI_SOCKET, "",
-                            temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Socket Buffersize is stored in driver section */
+	SQLGetPrivateProfileString(section, INI_SOCKET, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.socket_buffersize = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.socket_buffersize = SOCK_BUFFER_SIZE;
 
 
-	/*	Debug is stored in the driver section */
-	SQLGetPrivateProfileString(section, INI_DEBUG, "", 
-							temp, sizeof(temp), filename);
-	if ( temp[0] )
+	/* Debug is stored in the driver section */
+	SQLGetPrivateProfileString(section, INI_DEBUG, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.debug = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.debug = DEFAULT_DEBUG;
 
 
-	/*	CommLog is stored in the driver section */
-	SQLGetPrivateProfileString(section, INI_COMMLOG, "", 
-							temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* CommLog is stored in the driver section */
+	SQLGetPrivateProfileString(section, INI_COMMLOG, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.commlog = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.commlog = DEFAULT_COMMLOG;
 
 
-	/*	Optimizer is stored in the driver section only */
-	SQLGetPrivateProfileString(section, INI_OPTIMIZER, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Optimizer is stored in the driver section only */
+	SQLGetPrivateProfileString(section, INI_OPTIMIZER, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.disable_optimizer = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.disable_optimizer = DEFAULT_OPTIMIZER;
 
-	/*	KSQO is stored in the driver section only */
-	SQLGetPrivateProfileString(section, INI_KSQO, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* KSQO is stored in the driver section only */
+	SQLGetPrivateProfileString(section, INI_KSQO, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.ksqo = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.ksqo = DEFAULT_KSQO;
 
-	/*	Recognize Unique Index is stored in the driver section only */
-	SQLGetPrivateProfileString(section, INI_UNIQUEINDEX, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Recognize Unique Index is stored in the driver section only */
+	SQLGetPrivateProfileString(section, INI_UNIQUEINDEX, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.unique_index = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.unique_index = DEFAULT_UNIQUEINDEX;
 
 
-	/*	Unknown Sizes is stored in the driver section only */
-	SQLGetPrivateProfileString(section, INI_UNKNOWNSIZES, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] )
+	/* Unknown Sizes is stored in the driver section only */
+	SQLGetPrivateProfileString(section, INI_UNKNOWNSIZES, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.unknown_sizes = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.unknown_sizes = DEFAULT_UNKNOWNSIZES;
 
 
-	/*	Lie about supported functions? */
-	SQLGetPrivateProfileString(section, INI_LIE, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Lie about supported functions? */
+	SQLGetPrivateProfileString(section, INI_LIE, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.lie = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.lie = DEFAULT_LIE;
 
-	/*	Parse statements */
-	SQLGetPrivateProfileString(section, INI_PARSE, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Parse statements */
+	SQLGetPrivateProfileString(section, INI_PARSE, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.parse = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.parse = DEFAULT_PARSE;
 
-	/*	SQLCancel calls SQLFreeStmt in Driver Manager */
-	SQLGetPrivateProfileString(section, INI_CANCELASFREESTMT, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* SQLCancel calls SQLFreeStmt in Driver Manager */
+	SQLGetPrivateProfileString(section, INI_CANCELASFREESTMT, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.cancel_as_freestmt = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.cancel_as_freestmt = DEFAULT_CANCELASFREESTMT;
 
 
 
-	/*	UseDeclareFetch is stored in the driver section only */
-	SQLGetPrivateProfileString(section, INI_USEDECLAREFETCH, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* UseDeclareFetch is stored in the driver section only */
+	SQLGetPrivateProfileString(section, INI_USEDECLAREFETCH, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.use_declarefetch = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.use_declarefetch = DEFAULT_USEDECLAREFETCH;
 
 
-	/*	Max Varchar Size */
-	SQLGetPrivateProfileString(section, INI_MAXVARCHARSIZE, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Max Varchar Size */
+	SQLGetPrivateProfileString(section, INI_MAXVARCHARSIZE, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.max_varchar_size = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.max_varchar_size = MAX_VARCHAR_SIZE;
 
-	/*	Max TextField Size */
-	SQLGetPrivateProfileString(section, INI_MAXLONGVARCHARSIZE, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Max TextField Size */
+	SQLGetPrivateProfileString(section, INI_MAXLONGVARCHARSIZE, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.max_longvarchar_size = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.max_longvarchar_size = TEXT_FIELD_SIZE;
 
-	/*	Text As LongVarchar  */
-	SQLGetPrivateProfileString(section, INI_TEXTASLONGVARCHAR, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Text As LongVarchar	*/
+	SQLGetPrivateProfileString(section, INI_TEXTASLONGVARCHAR, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.text_as_longvarchar = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.text_as_longvarchar = DEFAULT_TEXTASLONGVARCHAR;
 
-	/*	Unknowns As LongVarchar  */
-	SQLGetPrivateProfileString(section, INI_UNKNOWNSASLONGVARCHAR, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Unknowns As LongVarchar	*/
+	SQLGetPrivateProfileString(section, INI_UNKNOWNSASLONGVARCHAR, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.unknowns_as_longvarchar = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.unknowns_as_longvarchar = DEFAULT_UNKNOWNSASLONGVARCHAR;
 
-	/*	Bools As Char */
-	SQLGetPrivateProfileString(section, INI_BOOLSASCHAR, "", 
-				temp, sizeof(temp), filename);
-	if ( temp[0] ) 
+	/* Bools As Char */
+	SQLGetPrivateProfileString(section, INI_BOOLSASCHAR, "",
+							   temp, sizeof(temp), filename);
+	if (temp[0])
 		globals.bools_as_char = atoi(temp);
-	else if ( ! override)
+	else if (!override)
 		globals.bools_as_char = DEFAULT_BOOLSASCHAR;
 
-	/*	Extra Systable prefixes */
-	/*	Use @@@ to distinguish between blank extra prefixes and no key entry */
-	SQLGetPrivateProfileString(section, INI_EXTRASYSTABLEPREFIXES, "@@@", 
-			temp, sizeof(temp), filename);
-	if ( strcmp(temp, "@@@" ))	
+	/* Extra Systable prefixes */
+
+	/*
+	 * Use @@@ to distinguish between blank extra prefixes and no key
+	 * entry
+	 */
+	SQLGetPrivateProfileString(section, INI_EXTRASYSTABLEPREFIXES, "@@@",
+							   temp, sizeof(temp), filename);
+	if (strcmp(temp, "@@@"))
 		strcpy(globals.extra_systable_prefixes, temp);
-	else if ( ! override)
+	else if (!override)
 		strcpy(globals.extra_systable_prefixes, DEFAULT_EXTRASYSTABLEPREFIXES);
 
 	mylog("globals.extra_systable_prefixes = '%s'\n", globals.extra_systable_prefixes);
 
 
-	/*	Dont allow override of an override! */
-	if ( ! override) {
+	/* Dont allow override of an override! */
+	if (!override)
+	{
 
-		/*	ConnSettings is stored in the driver section and per datasource for override */
-		SQLGetPrivateProfileString(section, INI_CONNSETTINGS, "", 
-					globals.conn_settings, sizeof(globals.conn_settings), filename);
+		/*
+		 * ConnSettings is stored in the driver section and per datasource
+		 * for override
+		 */
+		SQLGetPrivateProfileString(section, INI_CONNSETTINGS, "",
+		 globals.conn_settings, sizeof(globals.conn_settings), filename);
 
-		/*	Default state for future DSN's Readonly attribute */
-		SQLGetPrivateProfileString(section, INI_READONLY, "", 
-					temp, sizeof(temp), filename);
-		if ( temp[0] ) 
+		/* Default state for future DSN's Readonly attribute */
+		SQLGetPrivateProfileString(section, INI_READONLY, "",
+								   temp, sizeof(temp), filename);
+		if (temp[0])
 			globals.onlyread = atoi(temp);
 		else
 			globals.onlyread = DEFAULT_READONLY;
 
-		/*	Default state for future DSN's protocol attribute
-			This isn't a real driver option YET.  This is more
-			intended for customization from the install.
-		*/
-		SQLGetPrivateProfileString(section, INI_PROTOCOL, "@@@", 
-				temp, sizeof(temp), filename);
-		if ( strcmp(temp, "@@@" ))	
+		/*
+		 * Default state for future DSN's protocol attribute This isn't a
+		 * real driver option YET.	This is more intended for
+		 * customization from the install.
+		 */
+		SQLGetPrivateProfileString(section, INI_PROTOCOL, "@@@",
+								   temp, sizeof(temp), filename);
+		if (strcmp(temp, "@@@"))
 			strcpy(globals.protocol, temp);
-		else 
+		else
 			strcpy(globals.protocol, DEFAULT_PROTOCOL);
-	
+
 	}
 }
 
 
 /*	This function writes any global parameters (that can be manipulated)
-	to the ODBCINST.INI portion of the registry 
+	to the ODBCINST.INI portion of the registry
 */
-void updateGlobals(void)
+void
+updateGlobals(void)
 {
-char tmp[128];
+	char		tmp[128];
 
 	sprintf(tmp, "%d", globals.fetch_max);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_FETCH, tmp, ODBCINST_INI);
+								 INI_FETCH, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.commlog);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_COMMLOG, tmp, ODBCINST_INI);
+								 INI_COMMLOG, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.disable_optimizer);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_OPTIMIZER, tmp, ODBCINST_INI);
+								 INI_OPTIMIZER, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.ksqo);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_KSQO, tmp, ODBCINST_INI);
+								 INI_KSQO, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.unique_index);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_UNIQUEINDEX, tmp, ODBCINST_INI);
+								 INI_UNIQUEINDEX, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.onlyread);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_READONLY, tmp, ODBCINST_INI);
+								 INI_READONLY, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.use_declarefetch);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_USEDECLAREFETCH, tmp, ODBCINST_INI);
+								 INI_USEDECLAREFETCH, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.unknown_sizes);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_UNKNOWNSIZES, tmp, ODBCINST_INI);
+								 INI_UNKNOWNSIZES, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.text_as_longvarchar);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_TEXTASLONGVARCHAR, tmp, ODBCINST_INI);
+							   INI_TEXTASLONGVARCHAR, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.unknowns_as_longvarchar);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_UNKNOWNSASLONGVARCHAR, tmp, ODBCINST_INI);
+						   INI_UNKNOWNSASLONGVARCHAR, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.bools_as_char);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_BOOLSASCHAR, tmp, ODBCINST_INI);
+								 INI_BOOLSASCHAR, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.parse);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_PARSE, tmp, ODBCINST_INI);
+								 INI_PARSE, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.cancel_as_freestmt);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_CANCELASFREESTMT, tmp, ODBCINST_INI);
+								 INI_CANCELASFREESTMT, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.max_varchar_size);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_MAXVARCHARSIZE, tmp, ODBCINST_INI);
+								 INI_MAXVARCHARSIZE, tmp, ODBCINST_INI);
 
 	sprintf(tmp, "%d", globals.max_longvarchar_size);
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_MAXLONGVARCHARSIZE, tmp, ODBCINST_INI);
+							  INI_MAXLONGVARCHARSIZE, tmp, ODBCINST_INI);
 
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, ODBCINST_INI);
+								 INI_EXTRASYSTABLEPREFIXES, globals.extra_systable_prefixes, ODBCINST_INI);
 
 	SQLWritePrivateProfileString(DBMS_NAME,
-		INI_CONNSETTINGS, globals.conn_settings, ODBCINST_INI);
+				  INI_CONNSETTINGS, globals.conn_settings, ODBCINST_INI);
 }
diff --git a/src/interfaces/odbc/dlg_specific.h b/src/interfaces/odbc/dlg_specific.h
index 5be8b4fa50801acec880dc19f0ac0feb59e79b61..05486a34f1bb12a9b9ceac9eeb82112b36e1687d 100644
--- a/src/interfaces/odbc/dlg_specific.h
+++ b/src/interfaces/odbc/dlg_specific.h
@@ -1,9 +1,9 @@
 
-/* File:            dlg_specific.h
+/* File:			dlg_specific.h
  *
- * Description:     See "dlg_specific.c"
+ * Description:		See "dlg_specific.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -31,41 +31,49 @@
 
 /* INI File Stuff */
 #ifndef WIN32
-# define ODBC_INI        ".odbc.ini"
-# ifdef ODBCINSTDIR
-#  define ODBCINST_INI    ODBCINSTDIR "/odbcinst.ini"
-# else
-#  define ODBCINST_INI    "/etc/odbcinst.ini"
-#  warning "location of odbcinst.ini file defaulted to /etc"
-# endif
-#else /* WIN32 */
-# define ODBC_INI        "ODBC.INI"         /* ODBC initialization file */
-# define ODBCINST_INI    "ODBCINST.INI"     /* ODBC Installation file */
-#endif /* WIN32 */
-
-
-#define INI_DSN           DBMS_NAME         /* Name of default Datasource in ini file (not used?) */
-#define INI_KDESC         "Description"     /* Data source description */
-#define INI_SERVER        "Servername"      /* Name of Server running the Postgres service */
-#define INI_PORT          "Port"            /* Port on which the Postmaster is listening */ 
-#define INI_DATABASE      "Database"        /* Database Name */
-#define INI_USER          "Username"        /* Default User Name */
-#define INI_PASSWORD      "Password"		/* Default Password */
-#define INI_DEBUG         "Debug"			/* Debug flag */
-#define INI_FETCH         "Fetch"			/* Fetch Max Count */
-#define INI_SOCKET        "Socket"			/* Socket buffer size */
-#define INI_READONLY      "ReadOnly"		/* Database is read only */
-#define INI_COMMLOG       "CommLog"			/* Communication to backend logging */
-#define INI_PROTOCOL      "Protocol"		/* What protocol (6.2) */
-#define INI_OPTIMIZER     "Optimizer"		/* Use backend genetic optimizer */
-#define INI_KSQO          "Ksqo"            /* Keyset query optimization */
-#define INI_CONNSETTINGS  "ConnSettings"	/* Anything to send to backend on successful connection */
-#define INI_UNIQUEINDEX   "UniqueIndex"		/* Recognize unique indexes */
-#define INI_UNKNOWNSIZES  "UnknownSizes"	/* How to handle unknown result set sizes */
+#define ODBC_INI		".odbc.ini"
+#ifdef ODBCINSTDIR
+#define ODBCINST_INI	ODBCINSTDIR "/odbcinst.ini"
+#else
+#define ODBCINST_INI	"/etc/odbcinst.ini"
+#warning "location of odbcinst.ini file defaulted to /etc"
+#endif
+#else							/* WIN32 */
+#define ODBC_INI		"ODBC.INI"		/* ODBC initialization file */
+#define ODBCINST_INI	"ODBCINST.INI"	/* ODBC Installation file */
+#endif	 /* WIN32 */
+
+
+#define INI_DSN			  DBMS_NAME		/* Name of default Datasource in
+										 * ini file (not used?) */
+#define INI_KDESC		  "Description" /* Data source description */
+#define INI_SERVER		  "Servername"	/* Name of Server running the
+										 * Postgres service */
+#define INI_PORT		  "Port"/* Port on which the Postmaster is
+								 * listening */
+#define INI_DATABASE	  "Database"	/* Database Name */
+#define INI_USER		  "Username"	/* Default User Name */
+#define INI_PASSWORD	  "Password"	/* Default Password */
+#define INI_DEBUG		  "Debug"		/* Debug flag */
+#define INI_FETCH		  "Fetch"		/* Fetch Max Count */
+#define INI_SOCKET		  "Socket"		/* Socket buffer size */
+#define INI_READONLY	  "ReadOnly"	/* Database is read only */
+#define INI_COMMLOG		  "CommLog"		/* Communication to backend
+										 * logging */
+#define INI_PROTOCOL	  "Protocol"	/* What protocol (6.2) */
+#define INI_OPTIMIZER	  "Optimizer"	/* Use backend genetic optimizer */
+#define INI_KSQO		  "Ksqo"/* Keyset query optimization */
+#define INI_CONNSETTINGS  "ConnSettings"		/* Anything to send to
+												 * backend on successful
+												 * connection */
+#define INI_UNIQUEINDEX   "UniqueIndex" /* Recognize unique indexes */
+#define INI_UNKNOWNSIZES  "UnknownSizes"		/* How to handle unknown
+												 * result set sizes */
 
 #define INI_CANCELASFREESTMT  "CancelAsFreeStmt"
 
-#define INI_USEDECLAREFETCH "UseDeclareFetch"		/* Use Declare/Fetch cursors */
+#define INI_USEDECLAREFETCH "UseDeclareFetch"	/* Use Declare/Fetch
+												 * cursors */
 
 /*	More ini stuff */
 #define INI_TEXTASLONGVARCHAR		"TextAsLongVarchar"
@@ -82,15 +90,16 @@
 #define INI_PARSE					"Parse"
 #define INI_EXTRASYSTABLEPREFIXES	"ExtraSysTablePrefixes"
 
-#define INI_TRANSLATIONNAME       "TranslationName"
-#define INI_TRANSLATIONDLL        "TranslationDLL"
-#define INI_TRANSLATIONOPTION     "TranslationOption"
+#define INI_TRANSLATIONNAME		  "TranslationName"
+#define INI_TRANSLATIONDLL		  "TranslationDLL"
+#define INI_TRANSLATIONOPTION	  "TranslationOption"
 
 
 /*	Connection Defaults */
 #define DEFAULT_PORT					"5432"
 #define DEFAULT_READONLY				1
-#define DEFAULT_PROTOCOL				"6.4"		/* the latest protocol is the default */
+#define DEFAULT_PROTOCOL				"6.4"	/* the latest protocol is
+												 * the default */
 #define DEFAULT_USEDECLAREFETCH			0
 #define DEFAULT_TEXTASLONGVARCHAR		1
 #define DEFAULT_UNKNOWNSASLONGVARCHAR	0
@@ -114,29 +123,30 @@
 
 #define DEFAULT_EXTRASYSTABLEPREFIXES	"dd_;"
 
-/*  prototypes */
-void getGlobalDefaults(char *section, char *filename, char override);
+/*	prototypes */
+void		getGlobalDefaults(char *section, char *filename, char override);
 
 #ifdef WIN32
-void SetDlgStuff(HWND hdlg, ConnInfo *ci);
-void GetDlgStuff(HWND hdlg, ConnInfo *ci);
-
-int CALLBACK driver_optionsProc(HWND   hdlg,
-                           WORD   wMsg,
-                           WPARAM wParam,
-                           LPARAM lParam);
-int CALLBACK ds_optionsProc(HWND   hdlg,
-                           WORD   wMsg,
-                           WPARAM wParam,
-                           LPARAM lParam);
-#endif /* WIN32 */
-
-void updateGlobals(void);
-void writeDSNinfo(ConnInfo *ci);
-void getDSNdefaults(ConnInfo *ci);
-void getDSNinfo(ConnInfo *ci, char overwrite);
-void makeConnectString(char *connect_string, ConnInfo *ci);
-void copyAttributes(ConnInfo *ci, char *attribute, char *value);
+void		SetDlgStuff(HWND hdlg, ConnInfo * ci);
+void		GetDlgStuff(HWND hdlg, ConnInfo * ci);
+
+int CALLBACK driver_optionsProc(HWND hdlg,
+				   WORD wMsg,
+				   WPARAM wParam,
+				   LPARAM lParam);
+int CALLBACK ds_optionsProc(HWND hdlg,
+			   WORD wMsg,
+			   WPARAM wParam,
+			   LPARAM lParam);
+
+#endif	 /* WIN32 */
+
+void		updateGlobals(void);
+void		writeDSNinfo(ConnInfo * ci);
+void		getDSNdefaults(ConnInfo * ci);
+void		getDSNinfo(ConnInfo * ci, char overwrite);
+void		makeConnectString(char *connect_string, ConnInfo * ci);
+void		copyAttributes(ConnInfo * ci, char *attribute, char *value);
 
 
 #endif
diff --git a/src/interfaces/odbc/drvconn.c b/src/interfaces/odbc/drvconn.c
index cbc254672660098465d4390bdb0edcf867570e15..3ced0103f9798ca874ea261d0505dafbb5d9f2a5 100644
--- a/src/interfaces/odbc/drvconn.c
+++ b/src/interfaces/odbc/drvconn.c
@@ -1,13 +1,13 @@
-/* Module:          drvconn.c
+/* Module:			drvconn.c
  *
- * Description:     This module contains only routines related to 
- *                  implementing SQLDriverConnect.
+ * Description:		This module contains only routines related to
+ *					implementing SQLDriverConnect.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   SQLDriverConnect
+ * API functions:	SQLDriverConnect
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -52,45 +52,50 @@
 #include "dlg_specific.h"
 
 /* prototypes */
-void dconn_get_connect_attributes(UCHAR FAR *connect_string, ConnInfo *ci);
+void		dconn_get_connect_attributes(UCHAR FAR * connect_string, ConnInfo * ci);
 
 #ifdef WIN32
 BOOL FAR PASCAL dconn_FDriverConnectProc(HWND hdlg, UINT wMsg, WPARAM wParam, LPARAM lParam);
-RETCODE dconn_DoDialog(HWND hwnd, ConnInfo *ci);
+RETCODE		dconn_DoDialog(HWND hwnd, ConnInfo * ci);
+
+extern HINSTANCE NEAR s_hModule;/* Saved module handle. */
 
-extern HINSTANCE NEAR s_hModule;               /* Saved module handle. */
 #endif
 
 extern GLOBAL_VALUES globals;
 
 
-RETCODE SQL_API SQLDriverConnect(
-                                 HDBC      hdbc,
-                                 HWND      hwnd,
-                                 UCHAR FAR *szConnStrIn,
-                                 SWORD     cbConnStrIn,
-                                 UCHAR FAR *szConnStrOut,
-                                 SWORD     cbConnStrOutMax,
-                                 SWORD FAR *pcbConnStrOut,
-                                 UWORD     fDriverCompletion)
+RETCODE SQL_API
+SQLDriverConnect(
+				 HDBC hdbc,
+				 HWND hwnd,
+				 UCHAR FAR * szConnStrIn,
+				 SWORD cbConnStrIn,
+				 UCHAR FAR * szConnStrOut,
+				 SWORD cbConnStrOutMax,
+				 SWORD FAR * pcbConnStrOut,
+				 UWORD fDriverCompletion)
 {
-static char *func = "SQLDriverConnect";
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-ConnInfo *ci;
+	static char *func = "SQLDriverConnect";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	ConnInfo   *ci;
+
 #ifdef WIN32
-RETCODE dialog_result;
+	RETCODE		dialog_result;
+
 #endif
-RETCODE result;
-char connStrIn[MAX_CONNECT_STRING];
-char connStrOut[MAX_CONNECT_STRING];
-int retval;
-char password_required = FALSE;
-int len = 0;
+	RETCODE		result;
+	char		connStrIn[MAX_CONNECT_STRING];
+	char		connStrOut[MAX_CONNECT_STRING];
+	int			retval;
+	char		password_required = FALSE;
+	int			len = 0;
 
 
 	mylog("%s: entering...\n", func);
 
-	if ( ! conn) {
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -102,17 +107,17 @@ int len = 0;
 
 	ci = &(conn->connInfo);
 
-	/*	Parse the connect string and fill in conninfo for this hdbc. */
+	/* Parse the connect string and fill in conninfo for this hdbc. */
 	dconn_get_connect_attributes(connStrIn, ci);
 
-	/*	If the ConnInfo in the hdbc is missing anything, */
-	/*	this function will fill them in from the registry (assuming */
-	/*	of course there is a DSN given -- if not, it does nothing!) */
+	/* If the ConnInfo in the hdbc is missing anything, */
+	/* this function will fill them in from the registry (assuming */
+	/* of course there is a DSN given -- if not, it does nothing!) */
 	getDSNinfo(ci, CONN_DONT_OVERWRITE);
 
-	/*	Fill in any default parameters if they are not there. */
+	/* Fill in any default parameters if they are not there. */
 	getDSNdefaults(ci);
-	/*	initialize pg_version */
+	/* initialize pg_version */
 	CC_initialize_pg_version(conn);
 
 #ifdef WIN32
@@ -120,51 +125,54 @@ dialog:
 #endif
 	ci->focus_password = password_required;
 
-	switch(fDriverCompletion) {
+	switch (fDriverCompletion)
+	{
 #ifdef WIN32
-	case SQL_DRIVER_PROMPT:
-		dialog_result = dconn_DoDialog(hwnd, ci);
-		if(dialog_result != SQL_SUCCESS) {
-			return dialog_result;
-		}
-		break;
+		case SQL_DRIVER_PROMPT:
+			dialog_result = dconn_DoDialog(hwnd, ci);
+			if (dialog_result != SQL_SUCCESS)
+				return dialog_result;
+			break;
 
-	case SQL_DRIVER_COMPLETE_REQUIRED:
+		case SQL_DRIVER_COMPLETE_REQUIRED:
 
-		/*	Fall through */
+			/* Fall through */
 
-	case SQL_DRIVER_COMPLETE:
+		case SQL_DRIVER_COMPLETE:
 
-		/* Password is not a required parameter. */
-		if( ci->username[0] == '\0' ||
-			ci->server[0] == '\0' ||
-			ci->database[0] == '\0' ||
-			ci->port[0] == '\0' ||
-			password_required) { 
+			/* Password is not a required parameter. */
+			if (ci->username[0] == '\0' ||
+				ci->server[0] == '\0' ||
+				ci->database[0] == '\0' ||
+				ci->port[0] == '\0' ||
+				password_required)
+			{
 
-			dialog_result = dconn_DoDialog(hwnd, ci);
-			if(dialog_result != SQL_SUCCESS) {
-				return dialog_result;
+				dialog_result = dconn_DoDialog(hwnd, ci);
+				if (dialog_result != SQL_SUCCESS)
+					return dialog_result;
 			}
-		}
-		break;
+			break;
 #else
-	case SQL_DRIVER_PROMPT:
-	case SQL_DRIVER_COMPLETE:
-	case SQL_DRIVER_COMPLETE_REQUIRED:
+		case SQL_DRIVER_PROMPT:
+		case SQL_DRIVER_COMPLETE:
+		case SQL_DRIVER_COMPLETE_REQUIRED:
 #endif
-	case SQL_DRIVER_NOPROMPT:
-		break;
+		case SQL_DRIVER_NOPROMPT:
+			break;
 	}
 
-	/*	Password is not a required parameter unless authentication asks for it.
-		For now, I think it's better to just let the application ask over and over until
-		a password is entered (the user can always hit Cancel to get out)
-	*/
-	if( ci->username[0] == '\0' ||
+	/*
+	 * Password is not a required parameter unless authentication asks for
+	 * it. For now, I think it's better to just let the application ask
+	 * over and over until a password is entered (the user can always hit
+	 * Cancel to get out)
+	 */
+	if (ci->username[0] == '\0' ||
 		ci->server[0] == '\0' ||
-		ci->database[0] == '\0' || 
-		ci->port[0] == '\0') {
+		ci->database[0] == '\0' ||
+		ci->port[0] == '\0')
+	{
 /*		(password_required && ci->password[0] == '\0')) */
 
 		return SQL_NO_DATA_FOUND;
@@ -173,12 +181,16 @@ dialog:
 
 	/* do the actual connect */
 	retval = CC_connect(conn, password_required);
-	if (retval < 0) {		/* need a password */
-		if (fDriverCompletion == SQL_DRIVER_NOPROMPT) {
+	if (retval < 0)
+	{							/* need a password */
+		if (fDriverCompletion == SQL_DRIVER_NOPROMPT)
+		{
 			CC_log_error(func, "Need password but Driver_NoPrompt", conn);
-			return SQL_ERROR;	/* need a password but not allowed to prompt so error */
+			return SQL_ERROR;	/* need a password but not allowed to
+								 * prompt so error */
 		}
-		else {
+		else
+		{
 #ifdef WIN32
 			password_required = TRUE;
 			goto dialog;
@@ -187,39 +199,44 @@ dialog:
 #endif
 		}
 	}
-	else if (retval == 0) {
-		/*	error msg filled in above */
+	else if (retval == 0)
+	{
+		/* error msg filled in above */
 		CC_log_error(func, "Error from CC_Connect", conn);
 		return SQL_ERROR;
 	}
 
 	/*********************************************/
-	/*     Create the Output Connection String   */
+	/* Create the Output Connection String	 */
 	/*********************************************/
 	result = SQL_SUCCESS;
 
 	makeConnectString(connStrOut, ci);
 	len = strlen(connStrOut);
 
-	if(szConnStrOut) {
-
-		/*	Return the completed string to the caller. The correct method is to 
-			only construct the connect string if a dialog was put up, otherwise, 
-			it should just copy the connection input string to the output.  
-			However, it seems ok to just always	construct an output string.  There
-			are possible bad side effects on working applications (Access) by 
-			implementing the correct behavior, anyway. 
-		*/
+	if (szConnStrOut)
+	{
+
+		/*
+		 * Return the completed string to the caller. The correct method
+		 * is to only construct the connect string if a dialog was put up,
+		 * otherwise, it should just copy the connection input string to
+		 * the output. However, it seems ok to just always construct an
+		 * output string.  There are possible bad side effects on working
+		 * applications (Access) by implementing the correct behavior,
+		 * anyway.
+		 */
 		strncpy_null(szConnStrOut, connStrOut, cbConnStrOutMax);
 
-		if (len >= cbConnStrOutMax) {
+		if (len >= cbConnStrOutMax)
+		{
 			result = SQL_SUCCESS_WITH_INFO;
 			conn->errornumber = CONN_TRUNCATED;
 			conn->errormsg = "The buffer was too small for the result.";
 		}
 	}
 
-	if(pcbConnStrOut)
+	if (pcbConnStrOut)
 		*pcbConnStrOut = len;
 
 	mylog("szConnStrOut = '%s'\n", szConnStrOut);
@@ -231,108 +248,117 @@ dialog:
 }
 
 #ifdef WIN32
-RETCODE dconn_DoDialog(HWND hwnd, ConnInfo *ci)
+RETCODE
+dconn_DoDialog(HWND hwnd, ConnInfo * ci)
 {
-int dialog_result;
+	int			dialog_result;
 
-mylog("dconn_DoDialog: ci = %u\n", ci);
+	mylog("dconn_DoDialog: ci = %u\n", ci);
 
-	if(hwnd) {
+	if (hwnd)
+	{
 		dialog_result = DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_CONFIG),
-									hwnd, dconn_FDriverConnectProc, (LPARAM) ci);
-		if(!dialog_result || (dialog_result == -1)) {
+							hwnd, dconn_FDriverConnectProc, (LPARAM) ci);
+		if (!dialog_result || (dialog_result == -1))
 			return SQL_NO_DATA_FOUND;
-		} else {
+		else
 			return SQL_SUCCESS;
-		}
 	}
 
 	return SQL_ERROR;
 }
 
 
-BOOL FAR PASCAL dconn_FDriverConnectProc(
-                                         HWND    hdlg,
-                                         UINT    wMsg,
-                                         WPARAM  wParam,
-                                         LPARAM  lParam)
+BOOL FAR PASCAL
+dconn_FDriverConnectProc(
+						 HWND hdlg,
+						 UINT wMsg,
+						 WPARAM wParam,
+						 LPARAM lParam)
 {
-ConnInfo *ci;
+	ConnInfo   *ci;
 
-	switch (wMsg) {
-	case WM_INITDIALOG:
-		ci = (ConnInfo *) lParam;		
+	switch (wMsg)
+	{
+		case WM_INITDIALOG:
+			ci = (ConnInfo *) lParam;
 
-		/*	Change the caption for the setup dialog */
-		SetWindowText(hdlg, "PostgreSQL Connection");
+			/* Change the caption for the setup dialog */
+			SetWindowText(hdlg, "PostgreSQL Connection");
 
-		SetWindowText(GetDlgItem(hdlg, IDC_DATASOURCE), "Connection");
+			SetWindowText(GetDlgItem(hdlg, IDC_DATASOURCE), "Connection");
 
-		/*	Hide the DSN and description fields */
-		ShowWindow(GetDlgItem(hdlg, IDC_DSNAMETEXT), SW_HIDE);
-		ShowWindow(GetDlgItem(hdlg, IDC_DSNAME), SW_HIDE);
-		ShowWindow(GetDlgItem(hdlg, IDC_DESCTEXT), SW_HIDE);
-		ShowWindow(GetDlgItem(hdlg, IDC_DESC), SW_HIDE);
+			/* Hide the DSN and description fields */
+			ShowWindow(GetDlgItem(hdlg, IDC_DSNAMETEXT), SW_HIDE);
+			ShowWindow(GetDlgItem(hdlg, IDC_DSNAME), SW_HIDE);
+			ShowWindow(GetDlgItem(hdlg, IDC_DESCTEXT), SW_HIDE);
+			ShowWindow(GetDlgItem(hdlg, IDC_DESC), SW_HIDE);
 
-		SetWindowLong(hdlg, DWL_USER, lParam);/* Save the ConnInfo for the "OK" */
+			SetWindowLong(hdlg, DWL_USER, lParam);		/* Save the ConnInfo for
+														 * the "OK" */
 
-		SetDlgStuff(hdlg, ci);
+			SetDlgStuff(hdlg, ci);
 
-		if (ci->database[0] == '\0')		
-			;	/* default focus */
-		else if (ci->server[0] == '\0')
-			SetFocus(GetDlgItem(hdlg, IDC_SERVER));
-		else if (ci->port[0] == '\0')
-			SetFocus(GetDlgItem(hdlg, IDC_PORT));
-		else if (ci->username[0] == '\0')
-			SetFocus(GetDlgItem(hdlg, IDC_USER));
-		else if (ci->focus_password)
-			SetFocus(GetDlgItem(hdlg, IDC_PASSWORD));
+			if (ci->database[0] == '\0')
+				;				/* default focus */
+			else if (ci->server[0] == '\0')
+				SetFocus(GetDlgItem(hdlg, IDC_SERVER));
+			else if (ci->port[0] == '\0')
+				SetFocus(GetDlgItem(hdlg, IDC_PORT));
+			else if (ci->username[0] == '\0')
+				SetFocus(GetDlgItem(hdlg, IDC_USER));
+			else if (ci->focus_password)
+				SetFocus(GetDlgItem(hdlg, IDC_PASSWORD));
 
 
-		break; 
+			break;
 
-	case WM_COMMAND:
-		switch (GET_WM_COMMAND_ID(wParam, lParam)) {
-		case IDOK:
+		case WM_COMMAND:
+			switch (GET_WM_COMMAND_ID(wParam, lParam))
+			{
+				case IDOK:
 
-			ci = (ConnInfo *) GetWindowLong(hdlg, DWL_USER);
+					ci = (ConnInfo *) GetWindowLong(hdlg, DWL_USER);
 
-			GetDlgStuff(hdlg, ci);
+					GetDlgStuff(hdlg, ci);
 
 
-		case IDCANCEL:
-			EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK);
-			return TRUE;
+				case IDCANCEL:
+					EndDialog(hdlg, GET_WM_COMMAND_ID(wParam, lParam) == IDOK);
+					return TRUE;
 
-		case IDC_DRIVER:
+				case IDC_DRIVER:
 
-			DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DRV),
-									hdlg, driver_optionsProc, (LPARAM) NULL);
+					DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DRV),
+								hdlg, driver_optionsProc, (LPARAM) NULL);
 
 
-			break;
+					break;
 
-		case IDC_DATASOURCE:
+				case IDC_DATASOURCE:
 
-			ci = (ConnInfo *) GetWindowLong(hdlg, DWL_USER);
-			DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DS),
-									hdlg, ds_optionsProc, (LPARAM) ci);
+					ci = (ConnInfo *) GetWindowLong(hdlg, DWL_USER);
+					DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DS),
+								   hdlg, ds_optionsProc, (LPARAM) ci);
 
-			break;
-		}
+					break;
+			}
 	}
 
 	return FALSE;
 }
 
-#endif	/* WIN32 */
+#endif	 /* WIN32 */
 
-void dconn_get_connect_attributes(UCHAR FAR *connect_string, ConnInfo *ci)
+void
+dconn_get_connect_attributes(UCHAR FAR * connect_string, ConnInfo * ci)
 {
-char *our_connect_string;
-char *pair, *attribute, *value, *equals;
-char *strtok_arg;
+	char	   *our_connect_string;
+	char	   *pair,
+			   *attribute,
+			   *value,
+			   *equals;
+	char	   *strtok_arg;
 
 	memset(ci, 0, sizeof(ConnInfo));
 
@@ -341,29 +367,28 @@ char *strtok_arg;
 
 	mylog("our_connect_string = '%s'\n", our_connect_string);
 
-	while(1) {
+	while (1)
+	{
 		pair = strtok(strtok_arg, ";");
-		if(strtok_arg) {
+		if (strtok_arg)
 			strtok_arg = 0;
-		}
-		if(!pair) {
+		if (!pair)
 			break;
-		}
 
 		equals = strchr(pair, '=');
-		if ( ! equals)
+		if (!equals)
 			continue;
 
 		*equals = '\0';
-		attribute = pair;		/*	ex. DSN */
-		value = equals + 1;		/*	ex. 'CEO co1' */
+		attribute = pair;		/* ex. DSN */
+		value = equals + 1;		/* ex. 'CEO co1' */
 
 		mylog("attribute = '%s', value = '%s'\n", attribute, value);
 
-		if( !attribute || !value)
-			continue;          
+		if (!attribute || !value)
+			continue;
 
-		/*	Copy the appropriate value to the conninfo  */
+		/* Copy the appropriate value to the conninfo  */
 		copyAttributes(ci, attribute, value);
 
 	}
@@ -371,4 +396,3 @@ char *strtok_arg;
 
 	free(our_connect_string);
 }
-
diff --git a/src/interfaces/odbc/environ.c b/src/interfaces/odbc/environ.c
index 637b5fc160b1d3bc3038104ea99ef5a2b1efbaa2..d769234e44164daa71a63649cc83aa9374ddb9a6 100644
--- a/src/interfaces/odbc/environ.c
+++ b/src/interfaces/odbc/environ.c
@@ -1,14 +1,14 @@
-/* Module:          environ.c
+/* Module:			environ.c
  *
- * Description:     This module contains routines related to 
- *                  the environment, such as storing connection handles,
- *                  and returning errors.
+ * Description:		This module contains routines related to
+ *					the environment, such as storing connection handles,
+ *					and returning errors.
  *
- * Classes:         EnvironmentClass (Functions prefix: "EN_")
+ * Classes:			EnvironmentClass (Functions prefix: "EN_")
  *
- * API functions:   SQLAllocEnv, SQLFreeEnv, SQLError
+ * API functions:	SQLAllocEnv, SQLFreeEnv, SQLError
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -22,31 +22,35 @@
 ConnectionClass *conns[MAX_CONNECTIONS];
 
 
-RETCODE SQL_API SQLAllocEnv(HENV FAR *phenv)
+RETCODE SQL_API
+SQLAllocEnv(HENV FAR * phenv)
 {
-static char *func = "SQLAllocEnv";
+	static char *func = "SQLAllocEnv";
 
-mylog("**** in SQLAllocEnv ** \n");
+	mylog("**** in SQLAllocEnv ** \n");
 
 	*phenv = (HENV) EN_Constructor();
-	if ( ! *phenv) {
+	if (!*phenv)
+	{
 		*phenv = SQL_NULL_HENV;
 		EN_log_error(func, "Error allocating environment", NULL);
 		return SQL_ERROR;
 	}
- 
+
 	mylog("** exit SQLAllocEnv: phenv = %u **\n", *phenv);
 	return SQL_SUCCESS;
 }
 
-RETCODE SQL_API SQLFreeEnv(HENV henv)
+RETCODE SQL_API
+SQLFreeEnv(HENV henv)
 {
-static char *func = "SQLFreeEnv";
-EnvironmentClass *env = (EnvironmentClass *) henv;
+	static char *func = "SQLFreeEnv";
+	EnvironmentClass *env = (EnvironmentClass *) henv;
 
-mylog("**** in SQLFreeEnv: env = %u ** \n", env);
+	mylog("**** in SQLFreeEnv: env = %u ** \n", env);
 
-	if (env && EN_Destructor(env)) {
+	if (env && EN_Destructor(env))
+	{
 		mylog("   ok\n");
 		return SQL_SUCCESS;
 	}
@@ -56,321 +60,349 @@ mylog("**** in SQLFreeEnv: env = %u ** \n", env);
 	return SQL_ERROR;
 }
 
-/*      Returns the next SQL error information. */
-
-RETCODE SQL_API SQLError(
-        HENV       henv,
-        HDBC       hdbc,
-        HSTMT      hstmt,
-        UCHAR  FAR *szSqlState,
-        SDWORD FAR *pfNativeError,
-        UCHAR  FAR *szErrorMsg,
-        SWORD      cbErrorMsgMax,
-        SWORD  FAR *pcbErrorMsg)
+/*		Returns the next SQL error information. */
+
+RETCODE SQL_API
+SQLError(
+		 HENV henv,
+		 HDBC hdbc,
+		 HSTMT hstmt,
+		 UCHAR FAR * szSqlState,
+		 SDWORD FAR * pfNativeError,
+		 UCHAR FAR * szErrorMsg,
+		 SWORD cbErrorMsgMax,
+		 SWORD FAR * pcbErrorMsg)
 {
-char *msg;
-int status;
-    
+	char	   *msg;
+	int			status;
+
 	mylog("**** SQLError: henv=%u, hdbc=%u, hstmt=%u\n", henv, hdbc, hstmt);
 
-    if (SQL_NULL_HSTMT != hstmt) {
-	/* CC: return an error of a hstmt  */
-        StatementClass *stmt = (StatementClass *) hstmt;
-        
-        if (SC_get_error(stmt, &status, &msg)) {
+	if (SQL_NULL_HSTMT != hstmt)
+	{
+		/* CC: return an error of a hstmt  */
+		StatementClass *stmt = (StatementClass *) hstmt;
+
+		if (SC_get_error(stmt, &status, &msg))
+		{
 			mylog("SC_get_error: status = %d, msg = #%s#\n", status, msg);
-            if (NULL == msg) {
-                if (NULL != szSqlState)
-                    strcpy(szSqlState, "00000");
-                if (NULL != pcbErrorMsg)
-                    *pcbErrorMsg = 0;
-                if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0)) 
-                    szErrorMsg[0] = '\0';
-                
-                return SQL_NO_DATA_FOUND;
-            }                
-            if (NULL != pcbErrorMsg)                
-                *pcbErrorMsg = (SWORD)strlen(msg);
-            
-            if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
-                strncpy_null(szErrorMsg, msg, cbErrorMsgMax);
-            
-            if (NULL != pfNativeError) 
-                *pfNativeError = status;
-            
-            if (NULL != szSqlState)    
-                
-                switch (status) {
-		/* now determine the SQLSTATE to be returned */
-                case STMT_TRUNCATED:
-                    strcpy(szSqlState, "01004");
-                    /* data truncated */
-                    break;
-                case STMT_INFO_ONLY:
-                    strcpy(szSqlState, "00000");
-                    /* just information that is returned, no error */
-                    break;
-                case STMT_BAD_ERROR:
-                    strcpy(szSqlState, "08S01");
-                    /* communication link failure */
-                    break;
-                case STMT_CREATE_TABLE_ERROR:
-                    strcpy(szSqlState, "S0001");
-                    /* table already exists */
-                    break;
-                case STMT_STATUS_ERROR:
-                case STMT_SEQUENCE_ERROR:
-                    strcpy(szSqlState, "S1010");
-                    /* Function sequence error */
-                    break;
-                case STMT_NO_MEMORY_ERROR:
-                    strcpy(szSqlState, "S1001");
-                    /* memory allocation failure */
-                    break;
-                case STMT_COLNUM_ERROR:
-                    strcpy(szSqlState, "S1002");
-                    /* invalid column number */
-                    break;
-                case STMT_NO_STMTSTRING:
-                    strcpy(szSqlState, "S1001");
-                    /* having no stmtstring is also a malloc problem */
-                    break;
-                case STMT_ERROR_TAKEN_FROM_BACKEND:
-                    strcpy(szSqlState, "S1000");
-                    /* general error */
-                    break;
-                case STMT_INTERNAL_ERROR:
-                    strcpy(szSqlState, "S1000");
-                    /* general error */
-                    break;  
-				case STMT_ROW_OUT_OF_RANGE:
-					strcpy(szSqlState, "S1107");
-					break;
-
-				case STMT_OPERATION_CANCELLED:
-					strcpy(szSqlState, "S1008");
-					break;
-
-                case STMT_NOT_IMPLEMENTED_ERROR:
-                    strcpy(szSqlState, "S1C00"); /* == 'driver not capable' */
-                    break;
-                case STMT_OPTION_OUT_OF_RANGE_ERROR:
-                    strcpy(szSqlState, "S1092");
-                    break;
-                case STMT_BAD_PARAMETER_NUMBER_ERROR:
-                    strcpy(szSqlState, "S1093");
-                    break;
-                case STMT_INVALID_COLUMN_NUMBER_ERROR:
-                    strcpy(szSqlState, "S1002");
-                    break;
-                case STMT_RESTRICTED_DATA_TYPE_ERROR:
-                    strcpy(szSqlState, "07006");
-                    break;
-                case STMT_INVALID_CURSOR_STATE_ERROR:
-                    strcpy(szSqlState, "24000");
-                    break;
-                case STMT_OPTION_VALUE_CHANGED:
-                    strcpy(szSqlState, "01S02");
-                    break;
-				case STMT_INVALID_CURSOR_NAME:
-                    strcpy(szSqlState, "34000");
-                    break;
-				case STMT_NO_CURSOR_NAME:
-                    strcpy(szSqlState, "S1015");
-                    break;
-                case STMT_INVALID_ARGUMENT_NO:
-                    strcpy(szSqlState, "S1009");
-                    /* invalid argument value */
-                    break;
-				case STMT_INVALID_CURSOR_POSITION:
-                    strcpy(szSqlState, "S1109");
-                    break;
-                
-				case STMT_VALUE_OUT_OF_RANGE:
-					strcpy(szSqlState, "22003");
-					break;
-
-				case STMT_OPERATION_INVALID:
-					strcpy(szSqlState, "S1011");
-					break;
-
-				case STMT_EXEC_ERROR:
-				default:
-                    strcpy(szSqlState, "S1000");
-                    /* also a general error */
-                    break;
-                }         
-
-				mylog("       szSqlState = '%s', szError='%s'\n", szSqlState, szErrorMsg);
-            
-        } else {
-            if (NULL != szSqlState)
-                strcpy(szSqlState, "00000");
-            if (NULL != pcbErrorMsg)
-                *pcbErrorMsg = 0;
-            if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0)) 
-                szErrorMsg[0] = '\0';
-            
+			if (NULL == msg)
+			{
+				if (NULL != szSqlState)
+					strcpy(szSqlState, "00000");
+				if (NULL != pcbErrorMsg)
+					*pcbErrorMsg = 0;
+				if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+					szErrorMsg[0] = '\0';
+
+				return SQL_NO_DATA_FOUND;
+			}
+			if (NULL != pcbErrorMsg)
+				*pcbErrorMsg = (SWORD) strlen(msg);
+
+			if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+				strncpy_null(szErrorMsg, msg, cbErrorMsgMax);
+
+			if (NULL != pfNativeError)
+				*pfNativeError = status;
+
+			if (NULL != szSqlState)
+
+				switch (status)
+				{
+						/* now determine the SQLSTATE to be returned */
+					case STMT_TRUNCATED:
+						strcpy(szSqlState, "01004");
+						/* data truncated */
+						break;
+					case STMT_INFO_ONLY:
+						strcpy(szSqlState, "00000");
+						/* just information that is returned, no error */
+						break;
+					case STMT_BAD_ERROR:
+						strcpy(szSqlState, "08S01");
+						/* communication link failure */
+						break;
+					case STMT_CREATE_TABLE_ERROR:
+						strcpy(szSqlState, "S0001");
+						/* table already exists */
+						break;
+					case STMT_STATUS_ERROR:
+					case STMT_SEQUENCE_ERROR:
+						strcpy(szSqlState, "S1010");
+						/* Function sequence error */
+						break;
+					case STMT_NO_MEMORY_ERROR:
+						strcpy(szSqlState, "S1001");
+						/* memory allocation failure */
+						break;
+					case STMT_COLNUM_ERROR:
+						strcpy(szSqlState, "S1002");
+						/* invalid column number */
+						break;
+					case STMT_NO_STMTSTRING:
+						strcpy(szSqlState, "S1001");
+						/* having no stmtstring is also a malloc problem */
+						break;
+					case STMT_ERROR_TAKEN_FROM_BACKEND:
+						strcpy(szSqlState, "S1000");
+						/* general error */
+						break;
+					case STMT_INTERNAL_ERROR:
+						strcpy(szSqlState, "S1000");
+						/* general error */
+						break;
+					case STMT_ROW_OUT_OF_RANGE:
+						strcpy(szSqlState, "S1107");
+						break;
+
+					case STMT_OPERATION_CANCELLED:
+						strcpy(szSqlState, "S1008");
+						break;
+
+					case STMT_NOT_IMPLEMENTED_ERROR:
+						strcpy(szSqlState, "S1C00");	/* == 'driver not
+														 * capable' */
+						break;
+					case STMT_OPTION_OUT_OF_RANGE_ERROR:
+						strcpy(szSqlState, "S1092");
+						break;
+					case STMT_BAD_PARAMETER_NUMBER_ERROR:
+						strcpy(szSqlState, "S1093");
+						break;
+					case STMT_INVALID_COLUMN_NUMBER_ERROR:
+						strcpy(szSqlState, "S1002");
+						break;
+					case STMT_RESTRICTED_DATA_TYPE_ERROR:
+						strcpy(szSqlState, "07006");
+						break;
+					case STMT_INVALID_CURSOR_STATE_ERROR:
+						strcpy(szSqlState, "24000");
+						break;
+					case STMT_OPTION_VALUE_CHANGED:
+						strcpy(szSqlState, "01S02");
+						break;
+					case STMT_INVALID_CURSOR_NAME:
+						strcpy(szSqlState, "34000");
+						break;
+					case STMT_NO_CURSOR_NAME:
+						strcpy(szSqlState, "S1015");
+						break;
+					case STMT_INVALID_ARGUMENT_NO:
+						strcpy(szSqlState, "S1009");
+						/* invalid argument value */
+						break;
+					case STMT_INVALID_CURSOR_POSITION:
+						strcpy(szSqlState, "S1109");
+						break;
+
+					case STMT_VALUE_OUT_OF_RANGE:
+						strcpy(szSqlState, "22003");
+						break;
+
+					case STMT_OPERATION_INVALID:
+						strcpy(szSqlState, "S1011");
+						break;
+
+					case STMT_EXEC_ERROR:
+					default:
+						strcpy(szSqlState, "S1000");
+						/* also a general error */
+						break;
+				}
+
+			mylog("       szSqlState = '%s', szError='%s'\n", szSqlState, szErrorMsg);
+
+		}
+		else
+		{
+			if (NULL != szSqlState)
+				strcpy(szSqlState, "00000");
+			if (NULL != pcbErrorMsg)
+				*pcbErrorMsg = 0;
+			if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+				szErrorMsg[0] = '\0';
+
 			mylog("       returning NO_DATA_FOUND\n");
-            return SQL_NO_DATA_FOUND;
-        }
-        return SQL_SUCCESS;    
-        
-    } else if (SQL_NULL_HDBC != hdbc) {
-        ConnectionClass *conn = (ConnectionClass *) hdbc;
-        
+			return SQL_NO_DATA_FOUND;
+		}
+		return SQL_SUCCESS;
+
+	}
+	else if (SQL_NULL_HDBC != hdbc)
+	{
+		ConnectionClass *conn = (ConnectionClass *) hdbc;
+
 		mylog("calling CC_get_error\n");
-        if (CC_get_error(conn, &status, &msg)) {
+		if (CC_get_error(conn, &status, &msg))
+		{
 			mylog("CC_get_error: status = %d, msg = #%s#\n", status, msg);
-            if (NULL == msg) {
-                if (NULL != szSqlState)
-                    strcpy(szSqlState, "00000");
-                if (NULL != pcbErrorMsg)
-                    *pcbErrorMsg = 0;
-                if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0)) 
-                    szErrorMsg[0] = '\0';
-                
-                return SQL_NO_DATA_FOUND;
-            }                
-            
-            if (NULL != pcbErrorMsg)
-                *pcbErrorMsg = (SWORD)strlen(msg);
-            if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))    
-                strncpy_null(szErrorMsg, msg, cbErrorMsgMax);
-            if (NULL != pfNativeError)    
-                *pfNativeError = status;
-            
-            if (NULL != szSqlState) 
-                switch(status) {
-				case STMT_OPTION_VALUE_CHANGED:
-				case CONN_OPTION_VALUE_CHANGED:
-                    strcpy(szSqlState, "01S02");
-					break;
-                case STMT_TRUNCATED:
-				case CONN_TRUNCATED:
-                    strcpy(szSqlState, "01004");
-                    /* data truncated */
-                    break;
-                case CONN_INIREAD_ERROR:
-                    strcpy(szSqlState, "IM002");
-                    /* data source not found */
-                    break;
-                case CONN_OPENDB_ERROR:
-                    strcpy(szSqlState, "08001");
-                    /* unable to connect to data source */
-                    break;
-				case CONN_INVALID_AUTHENTICATION:
-				case CONN_AUTH_TYPE_UNSUPPORTED:
-					strcpy(szSqlState, "28000");
-					break;
-                case CONN_STMT_ALLOC_ERROR:
-                    strcpy(szSqlState, "S1001");
-                    /* memory allocation failure */
-                    break;
-                case CONN_IN_USE:
-                    strcpy(szSqlState, "S1000");
-                    /* general error */
-                    break;
-                case CONN_UNSUPPORTED_OPTION:
-                    strcpy(szSqlState, "IM001");
-                    /* driver does not support this function */
-                case CONN_INVALID_ARGUMENT_NO:
-                    strcpy(szSqlState, "S1009");
-                    /* invalid argument value */
-                    break;
-                case CONN_TRANSACT_IN_PROGRES:
-                    strcpy(szSqlState, "S1010");
-                    /* when the user tries to switch commit mode in a transaction */
-                    /* -> function sequence error */
-                    break;
-                case CONN_NO_MEMORY_ERROR:
-                    strcpy(szSqlState, "S1001");
-                    break;
-                case CONN_NOT_IMPLEMENTED_ERROR:
-				case STMT_NOT_IMPLEMENTED_ERROR:
-                    strcpy(szSqlState, "S1C00");
-                    break;
-
-				case CONN_VALUE_OUT_OF_RANGE:
-				case STMT_VALUE_OUT_OF_RANGE:
-					strcpy(szSqlState, "22003");
-					break;
-
-                default:
-                    strcpy(szSqlState, "S1000");
-                    /* general error */
-                    break;
-                }
-       
-        } else {
+			if (NULL == msg)
+			{
+				if (NULL != szSqlState)
+					strcpy(szSqlState, "00000");
+				if (NULL != pcbErrorMsg)
+					*pcbErrorMsg = 0;
+				if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+					szErrorMsg[0] = '\0';
+
+				return SQL_NO_DATA_FOUND;
+			}
+
+			if (NULL != pcbErrorMsg)
+				*pcbErrorMsg = (SWORD) strlen(msg);
+			if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+				strncpy_null(szErrorMsg, msg, cbErrorMsgMax);
+			if (NULL != pfNativeError)
+				*pfNativeError = status;
+
+			if (NULL != szSqlState)
+				switch (status)
+				{
+					case STMT_OPTION_VALUE_CHANGED:
+					case CONN_OPTION_VALUE_CHANGED:
+						strcpy(szSqlState, "01S02");
+						break;
+					case STMT_TRUNCATED:
+					case CONN_TRUNCATED:
+						strcpy(szSqlState, "01004");
+						/* data truncated */
+						break;
+					case CONN_INIREAD_ERROR:
+						strcpy(szSqlState, "IM002");
+						/* data source not found */
+						break;
+					case CONN_OPENDB_ERROR:
+						strcpy(szSqlState, "08001");
+						/* unable to connect to data source */
+						break;
+					case CONN_INVALID_AUTHENTICATION:
+					case CONN_AUTH_TYPE_UNSUPPORTED:
+						strcpy(szSqlState, "28000");
+						break;
+					case CONN_STMT_ALLOC_ERROR:
+						strcpy(szSqlState, "S1001");
+						/* memory allocation failure */
+						break;
+					case CONN_IN_USE:
+						strcpy(szSqlState, "S1000");
+						/* general error */
+						break;
+					case CONN_UNSUPPORTED_OPTION:
+						strcpy(szSqlState, "IM001");
+						/* driver does not support this function */
+					case CONN_INVALID_ARGUMENT_NO:
+						strcpy(szSqlState, "S1009");
+						/* invalid argument value */
+						break;
+					case CONN_TRANSACT_IN_PROGRES:
+						strcpy(szSqlState, "S1010");
+
+						/*
+						 * when the user tries to switch commit mode in a
+						 * transaction
+						 */
+						/* -> function sequence error */
+						break;
+					case CONN_NO_MEMORY_ERROR:
+						strcpy(szSqlState, "S1001");
+						break;
+					case CONN_NOT_IMPLEMENTED_ERROR:
+					case STMT_NOT_IMPLEMENTED_ERROR:
+						strcpy(szSqlState, "S1C00");
+						break;
+
+					case CONN_VALUE_OUT_OF_RANGE:
+					case STMT_VALUE_OUT_OF_RANGE:
+						strcpy(szSqlState, "22003");
+						break;
+
+					default:
+						strcpy(szSqlState, "S1000");
+						/* general error */
+						break;
+				}
+
+		}
+		else
+		{
 			mylog("CC_Get_error returned nothing.\n");
-            if (NULL != szSqlState)
-                strcpy(szSqlState, "00000");
-            if (NULL != pcbErrorMsg)
-                *pcbErrorMsg = 0;
-            if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0)) 
-                szErrorMsg[0] = '\0';
-            
-            return SQL_NO_DATA_FOUND;
-        }
-        return SQL_SUCCESS;
-        
-    } else if (SQL_NULL_HENV != henv) {
-        EnvironmentClass *env = (EnvironmentClass *)henv;
-        if(EN_get_error(env, &status, &msg)) {
+			if (NULL != szSqlState)
+				strcpy(szSqlState, "00000");
+			if (NULL != pcbErrorMsg)
+				*pcbErrorMsg = 0;
+			if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+				szErrorMsg[0] = '\0';
+
+			return SQL_NO_DATA_FOUND;
+		}
+		return SQL_SUCCESS;
+
+	}
+	else if (SQL_NULL_HENV != henv)
+	{
+		EnvironmentClass *env = (EnvironmentClass *) henv;
+
+		if (EN_get_error(env, &status, &msg))
+		{
 			mylog("EN_get_error: status = %d, msg = #%s#\n", status, msg);
-            if (NULL == msg) {
-                if (NULL != szSqlState)
-                    strcpy(szSqlState, "00000");
-                if (NULL != pcbErrorMsg)
-                    *pcbErrorMsg = 0;
-                if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0)) 
-                    szErrorMsg[0] = '\0';
-
-                return SQL_NO_DATA_FOUND;
-            }                
-
-            if (NULL != pcbErrorMsg)                
-                *pcbErrorMsg = (SWORD)strlen(msg);
-            if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
-                strncpy_null(szErrorMsg, msg, cbErrorMsgMax);
-            if (NULL != pfNativeError) 
-                *pfNativeError = status;
-            
-            if(szSqlState) {
-                switch(status) {
-                case ENV_ALLOC_ERROR:
-		    /* memory allocation failure */
-                    strcpy(szSqlState, "S1001");
-                    break;
-                default:
-                    strcpy(szSqlState, "S1000");
-                    /* general error */
-                    break;
-                }
-            }
-        } else {
-            if (NULL != szSqlState)
-                strcpy(szSqlState, "00000");
-            if (NULL != pcbErrorMsg)
-                *pcbErrorMsg = 0;
-            if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0)) 
-                szErrorMsg[0] = '\0';
-            
-            return SQL_NO_DATA_FOUND;
-        }
-
-        return SQL_SUCCESS;
-    }
-    
-    if (NULL != szSqlState)
-        strcpy(szSqlState, "00000");
-    if (NULL != pcbErrorMsg)
-        *pcbErrorMsg = 0;
-    if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0)) 
-        szErrorMsg[0] = '\0';
-    
-    return SQL_NO_DATA_FOUND;
+			if (NULL == msg)
+			{
+				if (NULL != szSqlState)
+					strcpy(szSqlState, "00000");
+				if (NULL != pcbErrorMsg)
+					*pcbErrorMsg = 0;
+				if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+					szErrorMsg[0] = '\0';
+
+				return SQL_NO_DATA_FOUND;
+			}
+
+			if (NULL != pcbErrorMsg)
+				*pcbErrorMsg = (SWORD) strlen(msg);
+			if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+				strncpy_null(szErrorMsg, msg, cbErrorMsgMax);
+			if (NULL != pfNativeError)
+				*pfNativeError = status;
+
+			if (szSqlState)
+			{
+				switch (status)
+				{
+					case ENV_ALLOC_ERROR:
+						/* memory allocation failure */
+						strcpy(szSqlState, "S1001");
+						break;
+					default:
+						strcpy(szSqlState, "S1000");
+						/* general error */
+						break;
+				}
+			}
+		}
+		else
+		{
+			if (NULL != szSqlState)
+				strcpy(szSqlState, "00000");
+			if (NULL != pcbErrorMsg)
+				*pcbErrorMsg = 0;
+			if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+				szErrorMsg[0] = '\0';
+
+			return SQL_NO_DATA_FOUND;
+		}
+
+		return SQL_SUCCESS;
+	}
+
+	if (NULL != szSqlState)
+		strcpy(szSqlState, "00000");
+	if (NULL != pcbErrorMsg)
+		*pcbErrorMsg = 0;
+	if ((NULL != szErrorMsg) && (cbErrorMsgMax > 0))
+		szErrorMsg[0] = '\0';
+
+	return SQL_NO_DATA_FOUND;
 }
 
 
@@ -382,25 +414,26 @@ int status;
 
 
 EnvironmentClass
-*EN_Constructor(void)
+* EN_Constructor(void)
 {
-EnvironmentClass *rv;
+	EnvironmentClass *rv;
 
-    rv = (EnvironmentClass *) malloc(sizeof(EnvironmentClass));
-    if( rv) {
+	rv = (EnvironmentClass *) malloc(sizeof(EnvironmentClass));
+	if (rv)
+	{
 		rv->errormsg = 0;
 		rv->errornumber = 0;
 	}
 
-    return rv;
+	return rv;
 }
 
 
 char
-EN_Destructor(EnvironmentClass *self)
+EN_Destructor(EnvironmentClass * self)
 {
-int lf;
-char rv = 1;
+	int			lf;
+	char		rv = 1;
 
 	mylog("in EN_Destructor, self=%u\n", self);
 
@@ -408,7 +441,8 @@ char rv = 1;
 	/* the source--they should not be freed */
 
 	/* Free any connections belonging to this environment */
-	for (lf = 0; lf < MAX_CONNECTIONS; lf++) {
+	for (lf = 0; lf < MAX_CONNECTIONS; lf++)
+	{
 		if (conns[lf] && conns[lf]->henv == self)
 			rv = rv && CC_Destructor(conns[lf]);
 	}
@@ -418,28 +452,31 @@ char rv = 1;
 }
 
 char
-EN_get_error(EnvironmentClass *self, int *number, char **message)
+EN_get_error(EnvironmentClass * self, int *number, char **message)
 {
-	if(self && self->errormsg && self->errornumber) {
+	if (self && self->errormsg && self->errornumber)
+	{
 		*message = self->errormsg;
 		*number = self->errornumber;
 		self->errormsg = 0;
 		self->errornumber = 0;
 		return 1;
-	} else {
-		return 0;
 	}
+	else
+		return 0;
 }
 
 char
-EN_add_connection(EnvironmentClass *self, ConnectionClass *conn)
+EN_add_connection(EnvironmentClass * self, ConnectionClass * conn)
 {
-int i;
+	int			i;
 
-mylog("EN_add_connection: self = %u, conn = %u\n", self, conn);
+	mylog("EN_add_connection: self = %u, conn = %u\n", self, conn);
 
-	for (i = 0; i < MAX_CONNECTIONS; i++) {
-		if ( ! conns[i]) {
+	for (i = 0; i < MAX_CONNECTIONS; i++)
+	{
+		if (!conns[i])
+		{
 			conn->henv = self;
 			conns[i] = conn;
 
@@ -453,12 +490,13 @@ mylog("EN_add_connection: self = %u, conn = %u\n", self, conn);
 }
 
 char
-EN_remove_connection(EnvironmentClass *self, ConnectionClass *conn)
+EN_remove_connection(EnvironmentClass * self, ConnectionClass * conn)
 {
-int i;
+	int			i;
 
 	for (i = 0; i < MAX_CONNECTIONS; i++)
-		if (conns[i] == conn && conns[i]->status != CONN_EXECUTING) {
+		if (conns[i] == conn && conns[i]->status != CONN_EXECUTING)
+		{
 			conns[i] = NULL;
 			return TRUE;
 		}
@@ -467,11 +505,10 @@ int i;
 }
 
 void
-EN_log_error(char *func, char *desc, EnvironmentClass *self)
+EN_log_error(char *func, char *desc, EnvironmentClass * self)
 {
-	if (self) {
+	if (self)
 		qlog("ENVIRON ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, self->errormsg);
-	}
 	else
 		qlog("INVALID ENVIRON HANDLE ERROR: func=%s, desc='%s'\n", func, desc);
 }
diff --git a/src/interfaces/odbc/environ.h b/src/interfaces/odbc/environ.h
index 47018e7b38f2f5f108e8c1fab1431cc884541df8..7b208e7eae90eb3944e18a66c14dd04f24328720 100644
--- a/src/interfaces/odbc/environ.h
+++ b/src/interfaces/odbc/environ.h
@@ -1,9 +1,9 @@
 
-/* File:            environ.h
+/* File:			environ.h
  *
- * Description:     See "environ.c"
+ * Description:		See "environ.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -29,17 +29,18 @@
 #define ENV_ALLOC_ERROR 1
 
 /**********		Environment Handle	*************/
-struct EnvironmentClass_ {
-	char *errormsg;
-	int errornumber;
+struct EnvironmentClass_
+{
+	char	   *errormsg;
+	int			errornumber;
 };
 
 /*	Environment prototypes */
 EnvironmentClass *EN_Constructor(void);
-char EN_Destructor(EnvironmentClass *self);
-char EN_get_error(EnvironmentClass *self, int *number, char **message);
-char EN_add_connection(EnvironmentClass *self, ConnectionClass *conn);
-char EN_remove_connection(EnvironmentClass *self, ConnectionClass *conn);
-void EN_log_error(char *func, char *desc, EnvironmentClass *self);
+char		EN_Destructor(EnvironmentClass * self);
+char		EN_get_error(EnvironmentClass * self, int *number, char **message);
+char		EN_add_connection(EnvironmentClass * self, ConnectionClass * conn);
+char		EN_remove_connection(EnvironmentClass * self, ConnectionClass * conn);
+void		EN_log_error(char *func, char *desc, EnvironmentClass * self);
 
 #endif
diff --git a/src/interfaces/odbc/execute.c b/src/interfaces/odbc/execute.c
index 57199f739665879cab2ae85206176836ad7abd4f..229579708e182c28580e3bd49bcd7d138cc785db 100644
--- a/src/interfaces/odbc/execute.c
+++ b/src/interfaces/odbc/execute.c
@@ -1,14 +1,14 @@
-/* Module:          execute.c
+/* Module:			execute.c
  *
- * Description:     This module contains routines related to 
- *                  preparing and executing an SQL statement.
+ * Description:		This module contains routines related to
+ *					preparing and executing an SQL statement.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   SQLPrepare, SQLExecute, SQLExecDirect, SQLTransact,
- *                  SQLCancel, SQLNativeSql, SQLParamData, SQLPutData
+ * API functions:	SQLPrepare, SQLExecute, SQLExecDirect, SQLTransact,
+ *					SQLCancel, SQLNativeSql, SQLParamData, SQLPutData
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -38,66 +38,74 @@
 extern GLOBAL_VALUES globals;
 
 
-/*      Perform a Prepare on the SQL statement */
-RETCODE SQL_API SQLPrepare(HSTMT     hstmt,
-                           UCHAR FAR *szSqlStr,
-                           SDWORD    cbSqlStr)
+/*		Perform a Prepare on the SQL statement */
+RETCODE SQL_API
+SQLPrepare(HSTMT hstmt,
+		   UCHAR FAR * szSqlStr,
+		   SDWORD cbSqlStr)
 {
-static char *func = "SQLPrepare";
-StatementClass *self = (StatementClass *) hstmt;
+	static char *func = "SQLPrepare";
+	StatementClass *self = (StatementClass *) hstmt;
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if ( ! self) {
+	if (!self)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
-    
-	/*	According to the ODBC specs it is valid to call SQLPrepare mulitple times.
-		In that case, the bound SQL statement is replaced by the new one 
-	*/
 
-	switch(self->status) {
-	case STMT_PREMATURE:
-		mylog("**** SQLPrepare: STMT_PREMATURE, recycle\n");
-		SC_recycle_statement(self); /* recycle the statement, but do not remove parameter bindings */
-		break;
+	/*
+	 * According to the ODBC specs it is valid to call SQLPrepare mulitple
+	 * times. In that case, the bound SQL statement is replaced by the new
+	 * one
+	 */
+
+	switch (self->status)
+	{
+		case STMT_PREMATURE:
+			mylog("**** SQLPrepare: STMT_PREMATURE, recycle\n");
+			SC_recycle_statement(self); /* recycle the statement, but do
+										 * not remove parameter bindings */
+			break;
 
-	case STMT_FINISHED:
-		mylog("**** SQLPrepare: STMT_FINISHED, recycle\n");
-		SC_recycle_statement(self); /* recycle the statement, but do not remove parameter bindings */
-		break;
+		case STMT_FINISHED:
+			mylog("**** SQLPrepare: STMT_FINISHED, recycle\n");
+			SC_recycle_statement(self); /* recycle the statement, but do
+										 * not remove parameter bindings */
+			break;
 
-	case STMT_ALLOCATED:
-		mylog("**** SQLPrepare: STMT_ALLOCATED, copy\n");
-		self->status = STMT_READY;
-		break;
+		case STMT_ALLOCATED:
+			mylog("**** SQLPrepare: STMT_ALLOCATED, copy\n");
+			self->status = STMT_READY;
+			break;
 
-	case STMT_READY:
-		mylog("**** SQLPrepare: STMT_READY, change SQL\n");
-		break;
+		case STMT_READY:
+			mylog("**** SQLPrepare: STMT_READY, change SQL\n");
+			break;
 
-	case STMT_EXECUTING:
-		mylog("**** SQLPrepare: STMT_EXECUTING, error!\n");
+		case STMT_EXECUTING:
+			mylog("**** SQLPrepare: STMT_EXECUTING, error!\n");
 
-		self->errornumber = STMT_SEQUENCE_ERROR;
-		self->errormsg = "SQLPrepare(): The handle does not point to a statement that is ready to be executed";
-		SC_log_error(func, "", self);
+			self->errornumber = STMT_SEQUENCE_ERROR;
+			self->errormsg = "SQLPrepare(): The handle does not point to a statement that is ready to be executed";
+			SC_log_error(func, "", self);
 
-		return SQL_ERROR;
+			return SQL_ERROR;
 
-	default:
-		self->errornumber = STMT_INTERNAL_ERROR;
-		self->errormsg = "An Internal Error has occured -- Unknown statement status.";
-		SC_log_error(func, "", self);
-		return SQL_ERROR;
+		default:
+			self->errornumber = STMT_INTERNAL_ERROR;
+			self->errormsg = "An Internal Error has occured -- Unknown statement status.";
+			SC_log_error(func, "", self);
+			return SQL_ERROR;
 	}
 
 	if (self->statement)
 		free(self->statement);
 
 	self->statement = make_string(szSqlStr, cbSqlStr, NULL);
-	if ( ! self->statement) {
+	if (!self->statement)
+	{
 		self->errornumber = STMT_NO_MEMORY_ERROR;
 		self->errormsg = "No memory available to store statement";
 		SC_log_error(func, "", self);
@@ -107,8 +115,9 @@ StatementClass *self = (StatementClass *) hstmt;
 	self->prepare = TRUE;
 	self->statement_type = statement_type(self->statement);
 
-	/*	Check if connection is onlyread (only selects are allowed) */
-	if ( CC_is_onlyread(self->hdbc) && STMT_UPDATE(self)) {
+	/* Check if connection is onlyread (only selects are allowed) */
+	if (CC_is_onlyread(self->hdbc) && STMT_UPDATE(self))
+	{
 		self->errornumber = STMT_EXEC_ERROR;
 		self->errormsg = "Connection is readonly, only select statements are allowed.";
 		SC_log_error(func, "", self);
@@ -120,22 +129,24 @@ StatementClass *self = (StatementClass *) hstmt;
 
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-/*      Performs the equivalent of SQLPrepare, followed by SQLExecute. */
+/*		Performs the equivalent of SQLPrepare, followed by SQLExecute. */
 
-RETCODE SQL_API SQLExecDirect(
-        HSTMT     hstmt,
-        UCHAR FAR *szSqlStr,
-        SDWORD    cbSqlStr)
+RETCODE SQL_API
+SQLExecDirect(
+			  HSTMT hstmt,
+			  UCHAR FAR * szSqlStr,
+			  SDWORD cbSqlStr)
 {
-StatementClass *stmt = (StatementClass *) hstmt;
-RETCODE result;
-static char *func = "SQLExecDirect";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	RETCODE		result;
+	static char *func = "SQLExecDirect";
+
+	mylog("%s: entering...\n", func);
 
-	mylog( "%s: entering...\n", func);
-    
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -146,7 +157,8 @@ static char *func = "SQLExecDirect";
 	/* keep a copy of the un-parametrized statement, in case */
 	/* they try to execute this statement again */
 	stmt->statement = make_string(szSqlStr, cbSqlStr, NULL);
-	if ( ! stmt->statement) {
+	if (!stmt->statement)
+	{
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		stmt->errormsg = "No memory available to store statement";
 		SC_log_error(func, "", stmt);
@@ -160,19 +172,20 @@ static char *func = "SQLExecDirect";
 	/* If an SQLPrepare was performed prior to this, but was left in  */
 	/* the premature state because an error occurred prior to SQLExecute */
 	/* then set the statement to finished so it can be recycled. */
-	if ( stmt->status == STMT_PREMATURE )
+	if (stmt->status == STMT_PREMATURE)
 		stmt->status = STMT_FINISHED;
 
 	stmt->statement_type = statement_type(stmt->statement);
 
-	/*	Check if connection is onlyread (only selects are allowed) */
-	if ( CC_is_onlyread(stmt->hdbc) && STMT_UPDATE(stmt)) {
+	/* Check if connection is onlyread (only selects are allowed) */
+	if (CC_is_onlyread(stmt->hdbc) && STMT_UPDATE(stmt))
+	{
 		stmt->errornumber = STMT_EXEC_ERROR;
 		stmt->errormsg = "Connection is readonly, only select statements are allowed.";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
-	
+
 	mylog("%s: calling SQLExecute...\n", func);
 
 	result = SQLExecute(hstmt);
@@ -181,47 +194,55 @@ static char *func = "SQLExecDirect";
 	return result;
 }
 
-/*      Execute a prepared SQL statement */
-RETCODE SQL_API SQLExecute(
-        HSTMT   hstmt)
+/*		Execute a prepared SQL statement */
+RETCODE SQL_API
+SQLExecute(
+		   HSTMT hstmt)
 {
-static char *func="SQLExecute";
-StatementClass *stmt = (StatementClass *) hstmt;
-ConnectionClass *conn;
-int i, retval;
+	static char *func = "SQLExecute";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	ConnectionClass *conn;
+	int			i,
+				retval;
 
 
 	mylog("%s: entering...\n", func);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		mylog("%s: NULL statement so return SQL_INVALID_HANDLE\n", func);
 		return SQL_INVALID_HANDLE;
 	}
 
-	/*  If the statement is premature, it means we already executed
-		it from an SQLPrepare/SQLDescribeCol type of scenario.  So
-		just return success.
-	*/
-	if ( stmt->prepare && stmt->status == STMT_PREMATURE) {
-		stmt->status = STMT_FINISHED;       
-		if (stmt->errormsg == NULL) {
+	/*
+	 * If the statement is premature, it means we already executed it from
+	 * an SQLPrepare/SQLDescribeCol type of scenario.  So just return
+	 * success.
+	 */
+	if (stmt->prepare && stmt->status == STMT_PREMATURE)
+	{
+		stmt->status = STMT_FINISHED;
+		if (stmt->errormsg == NULL)
+		{
 			mylog("%s: premature statement but return SQL_SUCCESS\n", func);
 			return SQL_SUCCESS;
 		}
-		else {
+		else
+		{
 			SC_log_error(func, "", stmt);
 			mylog("%s: premature statement so return SQL_ERROR\n", func);
 			return SQL_ERROR;
 		}
-	}  
+	}
 
 	mylog("%s: clear errors...\n", func);
 
 	SC_clear_error(stmt);
 
 	conn = SC_get_conn(stmt);
-	if (conn->status == CONN_EXECUTING) {
+	if (conn->status == CONN_EXECUTING)
+	{
 		stmt->errormsg = "Connection is already in use.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
@@ -229,7 +250,8 @@ int i, retval;
 		return SQL_ERROR;
 	}
 
-	if ( ! stmt->statement) {
+	if (!stmt->statement)
+	{
 		stmt->errornumber = STMT_NO_STMTSTRING;
 		stmt->errormsg = "This handle does not have a SQL statement stored in it";
 		SC_log_error(func, "", stmt);
@@ -237,19 +259,22 @@ int i, retval;
 		return SQL_ERROR;
 	}
 
-	/*	If SQLExecute is being called again, recycle the statement.
-		Note this should have been done by the application in a call
-		to SQLFreeStmt(SQL_CLOSE) or SQLCancel.
-	*/
-	if (stmt->status == STMT_FINISHED) {
+	/*
+	 * If SQLExecute is being called again, recycle the statement. Note
+	 * this should have been done by the application in a call to
+	 * SQLFreeStmt(SQL_CLOSE) or SQLCancel.
+	 */
+	if (stmt->status == STMT_FINISHED)
+	{
 		mylog("%s: recycling statement (should have been done by app)...\n", func);
 		SC_recycle_statement(stmt);
 	}
 
-	/*	Check if the statement is in the correct state */
-	if ((stmt->prepare && stmt->status != STMT_READY) || 
-		(stmt->status != STMT_ALLOCATED && stmt->status != STMT_READY)) {
-		
+	/* Check if the statement is in the correct state */
+	if ((stmt->prepare && stmt->status != STMT_READY) ||
+		(stmt->status != STMT_ALLOCATED && stmt->status != STMT_READY))
+	{
+
 		stmt->errornumber = STMT_STATUS_ERROR;
 		stmt->errormsg = "The handle does not point to a statement that is ready to be executed";
 		SC_log_error(func, "", stmt);
@@ -258,30 +283,37 @@ int i, retval;
 	}
 
 
-	/*	The bound parameters could have possibly changed since the last execute
-		of this statement?  Therefore check for params and re-copy.
-	*/
+	/*
+	 * The bound parameters could have possibly changed since the last
+	 * execute of this statement?  Therefore check for params and re-copy.
+	 */
 	stmt->data_at_exec = -1;
-	for (i = 0; i < stmt->parameters_allocated; i++) {
-		/*	Check for data at execution parameters */
-		if ( stmt->parameters[i].data_at_exec == TRUE) {
+	for (i = 0; i < stmt->parameters_allocated; i++)
+	{
+		/* Check for data at execution parameters */
+		if (stmt->parameters[i].data_at_exec == TRUE)
+		{
 			if (stmt->data_at_exec < 0)
 				stmt->data_at_exec = 1;
 			else
 				stmt->data_at_exec++;
 		}
 	}
-	/*	If there are some data at execution parameters, return need data */
-	/*	SQLParamData and SQLPutData will be used to send params and execute the statement. */
+	/* If there are some data at execution parameters, return need data */
+
+	/*
+	 * SQLParamData and SQLPutData will be used to send params and execute
+	 * the statement.
+	 */
 	if (stmt->data_at_exec > 0)
 		return SQL_NEED_DATA;
 
 
 	mylog("%s: copying statement params: trans_status=%d, len=%d, stmt='%s'\n", func, conn->transact_status, strlen(stmt->statement), stmt->statement);
 
-	/*	Create the statement with parameters substituted. */
+	/* Create the statement with parameters substituted. */
 	retval = copy_statement_with_parameters(stmt);
-	if( retval != SQL_SUCCESS)
+	if (retval != SQL_SUCCESS)
 		/* error msg passed from above */
 		return retval;
 
@@ -295,125 +327,148 @@ int i, retval;
 
 
 
-/*      -       -       -       -       -       -       -       -       - */
-RETCODE SQL_API SQLTransact(
-        HENV    henv,
-        HDBC    hdbc,
-        UWORD   fType)
+/*		-		-		-		-		-		-		-		-		- */
+RETCODE SQL_API
+SQLTransact(
+			HENV henv,
+			HDBC hdbc,
+			UWORD fType)
 {
-static char *func = "SQLTransact";
-extern ConnectionClass *conns[];
-ConnectionClass *conn;
-QResultClass *res;
-char ok, *stmt_string;
-int lf;
+	static char *func = "SQLTransact";
+	extern ConnectionClass *conns[];
+	ConnectionClass *conn;
+	QResultClass *res;
+	char		ok,
+			   *stmt_string;
+	int			lf;
 
 	mylog("entering %s: hdbc=%u, henv=%u\n", func, hdbc, henv);
 
-	if (hdbc == SQL_NULL_HDBC && henv == SQL_NULL_HENV) {
+	if (hdbc == SQL_NULL_HDBC && henv == SQL_NULL_HENV)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	/* If hdbc is null and henv is valid,
-	it means transact all connections on that henv.  
-	*/
-	if (hdbc == SQL_NULL_HDBC && henv != SQL_NULL_HENV) {
-		for (lf=0; lf <MAX_CONNECTIONS; lf++) {
+	/*
+	 * If hdbc is null and henv is valid, it means transact all
+	 * connections on that henv.
+	 */
+	if (hdbc == SQL_NULL_HDBC && henv != SQL_NULL_HENV)
+	{
+		for (lf = 0; lf < MAX_CONNECTIONS; lf++)
+		{
 			conn = conns[lf];
 
 			if (conn && conn->henv == henv)
-				if ( SQLTransact(henv, (HDBC) conn, fType) != SQL_SUCCESS)
+				if (SQLTransact(henv, (HDBC) conn, fType) != SQL_SUCCESS)
 					return SQL_ERROR;
 
 		}
-		return SQL_SUCCESS;       
+		return SQL_SUCCESS;
 	}
 
 	conn = (ConnectionClass *) hdbc;
 
-	if (fType == SQL_COMMIT) {
+	if (fType == SQL_COMMIT)
+	{
 		stmt_string = "COMMIT";
 
-	} else if (fType == SQL_ROLLBACK) {
+	}
+	else if (fType == SQL_ROLLBACK)
+	{
 		stmt_string = "ROLLBACK";
 
-	} else {
+	}
+	else
+	{
 		conn->errornumber = CONN_INVALID_ARGUMENT_NO;
-		conn->errormsg ="SQLTransact can only be called with SQL_COMMIT or SQL_ROLLBACK as parameter";
+		conn->errormsg = "SQLTransact can only be called with SQL_COMMIT or SQL_ROLLBACK as parameter";
 		CC_log_error(func, "", conn);
 		return SQL_ERROR;
-	}    
+	}
 
-	/*	If manual commit and in transaction, then proceed. */
-	if ( ! CC_is_in_autocommit(conn) &&  CC_is_in_trans(conn)) {
+	/* If manual commit and in transaction, then proceed. */
+	if (!CC_is_in_autocommit(conn) && CC_is_in_trans(conn))
+	{
 
 		mylog("SQLTransact: sending on conn %d '%s'\n", conn, stmt_string);
 
 		res = CC_send_query(conn, stmt_string, NULL);
 		CC_set_no_trans(conn);
 
-		if ( ! res) {
-			/*	error msg will be in the connection */
+		if (!res)
+		{
+			/* error msg will be in the connection */
 			CC_log_error(func, "", conn);
 			return SQL_ERROR;
 		}
 
-		ok = QR_command_successful(res);   
+		ok = QR_command_successful(res);
 		QR_Destructor(res);
 
-		if (!ok) {
+		if (!ok)
+		{
 			CC_log_error(func, "", conn);
 			return SQL_ERROR;
 		}
-	}    
+	}
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLCancel(
-        HSTMT   hstmt)  /* Statement to cancel. */
+RETCODE SQL_API
+SQLCancel(
+		  HSTMT hstmt)			/* Statement to cancel. */
 {
-static char *func="SQLCancel";
-StatementClass *stmt = (StatementClass *) hstmt;
-RETCODE result;
+	static char *func = "SQLCancel";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	RETCODE		result;
+
 #ifdef WIN32
-HMODULE hmodule;
-FARPROC addr;
+	HMODULE		hmodule;
+	FARPROC		addr;
+
 #endif
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	/*	Check if this can handle canceling in the middle of a SQLPutData? */
-	if ( ! stmt) {
+	/* Check if this can handle canceling in the middle of a SQLPutData? */
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	/*	Not in the middle of SQLParamData/SQLPutData so cancel like a close. */
-	if (stmt->data_at_exec < 0) {
+	/*
+	 * Not in the middle of SQLParamData/SQLPutData so cancel like a
+	 * close.
+	 */
+	if (stmt->data_at_exec < 0)
+	{
 
 
-		/*	MAJOR HACK for Windows to reset the driver manager's cursor state:
-			Because of what seems like a bug in the Odbc driver manager,
-			SQLCancel does not act like a SQLFreeStmt(CLOSE), as many
-			applications depend on this behavior.  So, this 
-			brute force method calls the driver manager's function on
-			behalf of the application.  
-		*/
+		/*
+		 * MAJOR HACK for Windows to reset the driver manager's cursor
+		 * state: Because of what seems like a bug in the Odbc driver
+		 * manager, SQLCancel does not act like a SQLFreeStmt(CLOSE), as
+		 * many applications depend on this behavior.  So, this brute
+		 * force method calls the driver manager's function on behalf of
+		 * the application.
+		 */
 
 #ifdef WIN32
-		if (globals.cancel_as_freestmt) {
+		if (globals.cancel_as_freestmt)
+		{
 			hmodule = GetModuleHandle("ODBC32");
 			addr = GetProcAddress(hmodule, "SQLFreeStmt");
-			result = addr( (char *) (stmt->phstmt) - 96, SQL_CLOSE);
-		}
-		else {
-			result = SQLFreeStmt( hstmt, SQL_CLOSE);
+			result = addr((char *) (stmt->phstmt) - 96, SQL_CLOSE);
 		}
+		else
+			result = SQLFreeStmt(hstmt, SQL_CLOSE);
 #else
-		result = SQLFreeStmt( hstmt, SQL_CLOSE);
+		result = SQLFreeStmt(hstmt, SQL_CLOSE);
 #endif
 
 		mylog("SQLCancel:  SQLFreeStmt returned %d\n", result);
@@ -422,9 +477,13 @@ FARPROC addr;
 		return SQL_SUCCESS;
 	}
 
-	/*	In the middle of SQLParamData/SQLPutData, so cancel that. */
-	/*	Note, any previous data-at-exec buffers will be freed in the recycle */
-	/*	if they call SQLExecDirect or SQLExecute again. */
+	/* In the middle of SQLParamData/SQLPutData, so cancel that. */
+
+	/*
+	 * Note, any previous data-at-exec buffers will be freed in the
+	 * recycle
+	 */
+	/* if they call SQLExecDirect or SQLExecute again. */
 
 	stmt->data_at_exec = -1;
 	stmt->current_exec_param = -1;
@@ -434,29 +493,31 @@ FARPROC addr;
 
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-/*      Returns the SQL string as modified by the driver. */
+/*		Returns the SQL string as modified by the driver. */
 /*		Currently, just copy the input string without modification */
 /*		observing buffer limits and truncation. */
-RETCODE SQL_API SQLNativeSql(
-        HDBC      hdbc,
-        UCHAR FAR *szSqlStrIn,
-        SDWORD     cbSqlStrIn,
-        UCHAR FAR *szSqlStr,
-        SDWORD     cbSqlStrMax,
-        SDWORD FAR *pcbSqlStr)
+RETCODE SQL_API
+SQLNativeSql(
+			 HDBC hdbc,
+			 UCHAR FAR * szSqlStrIn,
+			 SDWORD cbSqlStrIn,
+			 UCHAR FAR * szSqlStr,
+			 SDWORD cbSqlStrMax,
+			 SDWORD FAR * pcbSqlStr)
 {
-static char *func="SQLNativeSql";
-int len = 0;
-char *ptr;
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-RETCODE result;
+	static char *func = "SQLNativeSql";
+	int			len = 0;
+	char	   *ptr;
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	RETCODE		result;
 
-	mylog( "%s: entering...cbSqlStrIn=%d\n", func, cbSqlStrIn);
+	mylog("%s: entering...cbSqlStrIn=%d\n", func, cbSqlStrIn);
 
 	ptr = (cbSqlStrIn == 0) ? "" : make_string(szSqlStrIn, cbSqlStrIn, NULL);
-	if ( ! ptr) {
+	if (!ptr)
+	{
 		conn->errornumber = CONN_NO_MEMORY_ERROR;
 		conn->errormsg = "No memory available to store native sql string";
 		CC_log_error(func, "", conn);
@@ -466,10 +527,12 @@ RETCODE result;
 	result = SQL_SUCCESS;
 	len = strlen(ptr);
 
-	if (szSqlStr) {
+	if (szSqlStr)
+	{
 		strncpy_null(szSqlStr, ptr, cbSqlStrMax);
 
-		if (len >= cbSqlStrMax)  {
+		if (len >= cbSqlStrMax)
+		{
 			result = SQL_SUCCESS_WITH_INFO;
 			conn->errornumber = STMT_TRUNCATED;
 			conn->errormsg = "The buffer was too small for the result.";
@@ -481,39 +544,44 @@ RETCODE result;
 
 	free(ptr);
 
-    return result;
+	return result;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-/*      Supplies parameter data at execution time.      Used in conjuction with */
-/*      SQLPutData. */
+/*		Supplies parameter data at execution time.		Used in conjuction with */
+/*		SQLPutData. */
 
-RETCODE SQL_API SQLParamData(
-        HSTMT   hstmt,
-        PTR FAR *prgbValue)
+RETCODE SQL_API
+SQLParamData(
+			 HSTMT hstmt,
+			 PTR FAR * prgbValue)
 {
-static char *func = "SQLParamData";
-StatementClass *stmt = (StatementClass *) hstmt;
-int i, retval;
+	static char *func = "SQLParamData";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	int			i,
+				retval;
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 	mylog("%s: data_at_exec=%d, params_alloc=%d\n", func, stmt->data_at_exec, stmt->parameters_allocated);
 
-	if (stmt->data_at_exec < 0) {
+	if (stmt->data_at_exec < 0)
+	{
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		stmt->errormsg = "No execution-time parameters for this statement";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if (stmt->data_at_exec > stmt->parameters_allocated) {
+	if (stmt->data_at_exec > stmt->parameters_allocated)
+	{
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		stmt->errormsg = "Too many execution-time parameters were present";
 		SC_log_error(func, "", stmt);
@@ -521,16 +589,19 @@ int i, retval;
 	}
 
 	/* close the large object */
-	if ( stmt->lobj_fd >= 0) {
+	if (stmt->lobj_fd >= 0)
+	{
 		lo_close(stmt->hdbc, stmt->lobj_fd);
 
 		/* commit transaction if needed */
-		if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc)) {
+		if (!globals.use_declarefetch && CC_is_in_autocommit(stmt->hdbc))
+		{
 			QResultClass *res;
-			char ok;
+			char		ok;
 
 			res = CC_send_query(stmt->hdbc, "COMMIT", NULL);
-			if (!res) {
+			if (!res)
+			{
 				stmt->errormsg = "Could not commit (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				SC_log_error(func, "", stmt);
@@ -538,7 +609,8 @@ int i, retval;
 			}
 			ok = QR_command_successful(res);
 			QR_Destructor(res);
-			if (!ok) {
+			if (!ok)
+			{
 				stmt->errormsg = "Could not commit (in-line) a transaction";
 				stmt->errornumber = STMT_EXEC_ERROR;
 				SC_log_error(func, "", stmt);
@@ -552,8 +624,9 @@ int i, retval;
 	}
 
 
-	/*	Done, now copy the params and then execute the statement */
-	if (stmt->data_at_exec == 0) {
+	/* Done, now copy the params and then execute the statement */
+	if (stmt->data_at_exec == 0)
+	{
 		retval = copy_statement_with_parameters(stmt);
 		if (retval != SQL_SUCCESS)
 			return retval;
@@ -563,14 +636,17 @@ int i, retval;
 		return SC_execute(stmt);
 	}
 
-	/*	Set beginning param;  if first time SQLParamData is called , start at 0.
-		Otherwise, start at the last parameter + 1.
-	*/
-	i = stmt->current_exec_param >= 0 ? stmt->current_exec_param+1 : 0;
-
-	/*	At least 1 data at execution parameter, so Fill in the token value */
-	for ( ; i < stmt->parameters_allocated; i++) {
-		if (stmt->parameters[i].data_at_exec == TRUE) {
+	/*
+	 * Set beginning param;  if first time SQLParamData is called , start
+	 * at 0. Otherwise, start at the last parameter + 1.
+	 */
+	i = stmt->current_exec_param >= 0 ? stmt->current_exec_param + 1 : 0;
+
+	/* At least 1 data at execution parameter, so Fill in the token value */
+	for (; i < stmt->parameters_allocated; i++)
+	{
+		if (stmt->parameters[i].data_at_exec == TRUE)
+		{
 			stmt->data_at_exec--;
 			stmt->current_exec_param = i;
 			stmt->put_data = FALSE;
@@ -582,31 +658,35 @@ int i, retval;
 	return SQL_NEED_DATA;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-/*      Supplies parameter data at execution time.      Used in conjunction with */
-/*      SQLParamData. */
+/*		Supplies parameter data at execution time.		Used in conjunction with */
+/*		SQLParamData. */
 
-RETCODE SQL_API SQLPutData(
-        HSTMT   hstmt,
-        PTR     rgbValue,
-        SDWORD  cbValue)
+RETCODE SQL_API
+SQLPutData(
+		   HSTMT hstmt,
+		   PTR rgbValue,
+		   SDWORD cbValue)
 {
-static char *func = "SQLPutData";
-StatementClass *stmt = (StatementClass *) hstmt;
-int old_pos, retval;
-ParameterInfoClass *current_param;
-char *buffer;
+	static char *func = "SQLPutData";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	int			old_pos,
+				retval;
+	ParameterInfoClass *current_param;
+	char	   *buffer;
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	
-	if (stmt->current_exec_param < 0) {
+
+	if (stmt->current_exec_param < 0)
+	{
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		stmt->errormsg = "Previous call was not SQLPutData or SQLParamData";
 		SC_log_error(func, "", stmt);
@@ -615,14 +695,16 @@ char *buffer;
 
 	current_param = &(stmt->parameters[stmt->current_exec_param]);
 
-	if ( ! stmt->put_data) {	/* first call */
+	if (!stmt->put_data)
+	{							/* first call */
 
 		mylog("SQLPutData: (1) cbValue = %d\n", cbValue);
 
 		stmt->put_data = TRUE;
 
 		current_param->EXEC_used = (SDWORD *) malloc(sizeof(SDWORD));
-		if ( ! current_param->EXEC_used) {
+		if (!current_param->EXEC_used)
+		{
 			stmt->errornumber = STMT_NO_MEMORY_ERROR;
 			stmt->errormsg = "Out of memory in SQLPutData (1)";
 			SC_log_error(func, "", stmt);
@@ -635,16 +717,19 @@ char *buffer;
 			return SQL_SUCCESS;
 
 
-		/*	Handle Long Var Binary with Large Objects */
-		if ( current_param->SQLType == SQL_LONGVARBINARY) {
+		/* Handle Long Var Binary with Large Objects */
+		if (current_param->SQLType == SQL_LONGVARBINARY)
+		{
 
 			/* begin transaction if needed */
-			if(!CC_is_in_trans(stmt->hdbc)) {
+			if (!CC_is_in_trans(stmt->hdbc))
+			{
 				QResultClass *res;
-				char ok;
+				char		ok;
 
 				res = CC_send_query(stmt->hdbc, "BEGIN", NULL);
-				if (!res) {
+				if (!res)
+				{
 					stmt->errormsg = "Could not begin (in-line) a transaction";
 					stmt->errornumber = STMT_EXEC_ERROR;
 					SC_log_error(func, "", stmt);
@@ -652,7 +737,8 @@ char *buffer;
 				}
 				ok = QR_command_successful(res);
 				QR_Destructor(res);
-				if (!ok) {
+				if (!ok)
+				{
 					stmt->errormsg = "Could not begin (in-line) a transaction";
 					stmt->errornumber = STMT_EXEC_ERROR;
 					SC_log_error(func, "", stmt);
@@ -662,22 +748,24 @@ char *buffer;
 				CC_set_in_trans(stmt->hdbc);
 			}
 
-			/*	store the oid */
+			/* store the oid */
 			current_param->lobj_oid = lo_creat(stmt->hdbc, INV_READ | INV_WRITE);
-			if (current_param->lobj_oid == 0) {
+			if (current_param->lobj_oid == 0)
+			{
 				stmt->errornumber = STMT_EXEC_ERROR;
 				stmt->errormsg = "Couldnt create large object.";
 				SC_log_error(func, "", stmt);
 				return SQL_ERROR;
 			}
 
-			/*	major hack -- to allow convert to see somethings there */
-			/*					have to modify convert to handle this better */
+			/* major hack -- to allow convert to see somethings there */
+			/* have to modify convert to handle this better */
 			current_param->EXEC_buffer = (char *) &current_param->lobj_oid;
 
-			/*	store the fd */
+			/* store the fd */
 			stmt->lobj_fd = lo_open(stmt->hdbc, current_param->lobj_oid, INV_WRITE);
-			if ( stmt->lobj_fd < 0) {
+			if (stmt->lobj_fd < 0)
+			{
 				stmt->errornumber = STMT_EXEC_ERROR;
 				stmt->errormsg = "Couldnt open large object for writing.";
 				SC_log_error(func, "", stmt);
@@ -688,20 +776,26 @@ char *buffer;
 			mylog("lo_write: cbValue=%d, wrote %d bytes\n", cbValue, retval);
 
 		}
-		else {	/* for handling text fields and small binaries */
+		else
+		{						/* for handling text fields and small
+								 * binaries */
 
-			if (cbValue == SQL_NTS) {
+			if (cbValue == SQL_NTS)
+			{
 				current_param->EXEC_buffer = strdup(rgbValue);
-				if ( ! current_param->EXEC_buffer) {
+				if (!current_param->EXEC_buffer)
+				{
 					stmt->errornumber = STMT_NO_MEMORY_ERROR;
 					stmt->errormsg = "Out of memory in SQLPutData (2)";
 					SC_log_error(func, "", stmt);
 					return SQL_ERROR;
 				}
 			}
-			else {
+			else
+			{
 				current_param->EXEC_buffer = malloc(cbValue + 1);
-				if ( ! current_param->EXEC_buffer) {
+				if (!current_param->EXEC_buffer)
+				{
 					stmt->errornumber = STMT_NO_MEMORY_ERROR;
 					stmt->errormsg = "Out of memory in SQLPutData (2)";
 					SC_log_error(func, "", stmt);
@@ -713,11 +807,13 @@ char *buffer;
 		}
 	}
 
-	else {	/* calling SQLPutData more than once */
+	else
+	{							/* calling SQLPutData more than once */
 
 		mylog("SQLPutData: (>1) cbValue = %d\n", cbValue);
 
-		if (current_param->SQLType == SQL_LONGVARBINARY) {
+		if (current_param->SQLType == SQL_LONGVARBINARY)
+		{
 
 			/* the large object fd is in EXEC_buffer */
 			retval = lo_write(stmt->hdbc, stmt->lobj_fd, rgbValue, cbValue);
@@ -725,13 +821,17 @@ char *buffer;
 
 			*current_param->EXEC_used += cbValue;
 
-		} else {
+		}
+		else
+		{
 
 			buffer = current_param->EXEC_buffer;
 
-			if (cbValue == SQL_NTS) {
+			if (cbValue == SQL_NTS)
+			{
 				buffer = realloc(buffer, strlen(buffer) + strlen(rgbValue) + 1);
-				if ( ! buffer) {
+				if (!buffer)
+				{
 					stmt->errornumber = STMT_NO_MEMORY_ERROR;
 					stmt->errormsg = "Out of memory in SQLPutData (3)";
 					SC_log_error(func, "", stmt);
@@ -743,11 +843,12 @@ char *buffer;
 
 				*current_param->EXEC_used = cbValue;
 
-				/*	reassign buffer incase realloc moved it */
+				/* reassign buffer incase realloc moved it */
 				current_param->EXEC_buffer = buffer;
 
 			}
-			else if (cbValue > 0) {
+			else if (cbValue > 0)
+			{
 
 				old_pos = *current_param->EXEC_used;
 
@@ -757,7 +858,8 @@ char *buffer;
 
 				/* dont lose the old pointer in case out of memory */
 				buffer = realloc(current_param->EXEC_buffer, *current_param->EXEC_used + 1);
-				if ( ! buffer) {
+				if (!buffer)
+				{
 					stmt->errornumber = STMT_NO_MEMORY_ERROR;
 					stmt->errormsg = "Out of memory in SQLPutData (3)";
 					SC_log_error(func, "", stmt);
@@ -767,11 +869,12 @@ char *buffer;
 				memcpy(&buffer[old_pos], rgbValue, cbValue);
 				buffer[*current_param->EXEC_used] = '\0';
 
-				/*	reassign buffer incase realloc moved it */
+				/* reassign buffer incase realloc moved it */
 				current_param->EXEC_buffer = buffer;
-				
+
 			}
-			else {
+			else
+			{
 				SC_log_error(func, "bad cbValue", stmt);
 				return SQL_ERROR;
 			}
diff --git a/src/interfaces/odbc/gpps.c b/src/interfaces/odbc/gpps.c
index f14e95f2ce4176da77e61dc78043eda0539eb716..6f693009659584324e0452415301b2780fa9595c 100644
--- a/src/interfaces/odbc/gpps.c
+++ b/src/interfaces/odbc/gpps.c
@@ -13,7 +13,7 @@
 #ifndef WIN32
 
 #if HAVE_CONFIG_H
-#include "config.h"	/* produced by configure */
+#include "config.h"				/* produced by configure */
 #endif
 
 #include <stdio.h>
@@ -38,83 +38,87 @@
 
 
 DWORD
-GetPrivateProfileString(char *theSection,	/* section name */
-			char *theKey,		/* search key name */
-			char *theDefault,	/* default value if not found */
-			char *theReturnBuffer,	/* return value stored here */
-			size_t theReturnBufferLength,	/* byte length of return buffer */
-			char *theIniFileName)		/* pathname of ini file to search */
+GetPrivateProfileString(char *theSection,		/* section name */
+						char *theKey,	/* search key name */
+						char *theDefault,		/* default value if not
+												 * found */
+						char *theReturnBuffer,	/* return value stored
+												 * here */
+						size_t theReturnBufferLength,	/* byte length of return
+														 * buffer */
+						char *theIniFileName)	/* pathname of ini file to
+												 * search */
 {
-	char buf[MAXPGPATH];
-	char* ptr = 0;
-	FILE* aFile = 0;
-	size_t aLength;
-	char aLine[2048];
-	char *aValue;
-	char *aStart;
-	char *aString;
-	size_t aLineLength;
-	size_t aReturnLength = 0;
-
-	BOOL aSectionFound = FALSE;
-	BOOL aKeyFound = FALSE;
-	int j = 0;
+	char		buf[MAXPGPATH];
+	char	   *ptr = 0;
+	FILE	   *aFile = 0;
+	size_t		aLength;
+	char		aLine[2048];
+	char	   *aValue;
+	char	   *aStart;
+	char	   *aString;
+	size_t		aLineLength;
+	size_t		aReturnLength = 0;
+
+	BOOL		aSectionFound = FALSE;
+	BOOL		aKeyFound = FALSE;
+	int			j = 0;
 
 	j = strlen(theIniFileName) + 1;
-	ptr = (char*)getpwuid(getuid());	/* get user info */
+	ptr = (char *) getpwuid(getuid());	/* get user info */
 
-	if( ptr == NULL)
+	if (ptr == NULL)
 	{
-		if( MAXPGPATH-1 < j )
-			theIniFileName[MAXPGPATH-1] = '\0';
+		if (MAXPGPATH - 1 < j)
+			theIniFileName[MAXPGPATH - 1] = '\0';
 
-		sprintf(buf,"%s",theIniFileName);
+		sprintf(buf, "%s", theIniFileName);
 	}
-	ptr = ((struct passwd*)ptr)->pw_dir;	/* get user home dir */
-	if( ptr == NULL || *ptr == '\0' )
+	ptr = ((struct passwd *) ptr)->pw_dir;		/* get user home dir */
+	if (ptr == NULL || *ptr == '\0')
 		ptr = "/home";
 
-	/* This doesn't make it so we find an ini file but allows normal
-	 * processing to continue further on down. The likelihood is that
-	 * the file won't be found and thus the default value will be
-	 * returned.
-	*/
-	if( MAXPGPATH-1 < strlen(ptr) + j )
+	/*
+	 * This doesn't make it so we find an ini file but allows normal
+	 * processing to continue further on down. The likelihood is that the
+	 * file won't be found and thus the default value will be returned.
+	 */
+	if (MAXPGPATH - 1 < strlen(ptr) + j)
 	{
-		if( MAXPGPATH-1 < strlen(ptr) )
-			ptr[MAXPGPATH-1] = '\0';
+		if (MAXPGPATH - 1 < strlen(ptr))
+			ptr[MAXPGPATH - 1] = '\0';
 		else
-			theIniFileName[MAXPGPATH-1-strlen(ptr)] = '\0';
+			theIniFileName[MAXPGPATH - 1 - strlen(ptr)] = '\0';
 	}
 
-	sprintf( buf, "%s/%s",ptr,theIniFileName );
+	sprintf(buf, "%s/%s", ptr, theIniFileName);
 
-	  /* This code makes it so that a file in the users home dir
-	   * overrides a the "default" file as passed in
-	  */
-	aFile = (FILE*)(buf ? fopen(buf, PG_BINARY_R) : NULL);
-	if(!aFile) {
-		sprintf(buf,"%s",theIniFileName);
-		aFile = (FILE*)(buf ? fopen(buf, PG_BINARY_R) : NULL);
+	/*
+	 * This code makes it so that a file in the users home dir overrides a
+	 * the "default" file as passed in
+	 */
+	aFile = (FILE *) (buf ? fopen(buf, PG_BINARY_R) : NULL);
+	if (!aFile)
+	{
+		sprintf(buf, "%s", theIniFileName);
+		aFile = (FILE *) (buf ? fopen(buf, PG_BINARY_R) : NULL);
 	}
 
 
 	aLength = (theDefault == NULL) ? 0 : strlen(theDefault);
 
-	if(theReturnBufferLength == 0 || theReturnBuffer == NULL)
+	if (theReturnBufferLength == 0 || theReturnBuffer == NULL)
 	{
-		if(aFile)
-		{
+		if (aFile)
 			fclose(aFile);
-		}
 		return 0;
 	}
 
-	if(aFile == NULL)
+	if (aFile == NULL)
 	{
 		/* no ini file specified, return the default */
 
-		++aLength;	/* room for NULL char */
+		++aLength;				/* room for NULL char */
 		aLength = theReturnBufferLength < aLength ?
 			theReturnBufferLength : aLength;
 		strncpy(theReturnBuffer, theDefault, aLength);
@@ -123,86 +127,77 @@ GetPrivateProfileString(char *theSection,	/* section name */
 	}
 
 
-	while(fgets(aLine, sizeof(aLine), aFile) != NULL)
+	while (fgets(aLine, sizeof(aLine), aFile) != NULL)
 	{
 		aLineLength = strlen(aLine);
 		/* strip final '\n' */
-		if(aLineLength > 0 && aLine[aLineLength - 1] == '\n')
-		{
+		if (aLineLength > 0 && aLine[aLineLength - 1] == '\n')
 			aLine[aLineLength - 1] = '\0';
-		}
-		switch(*aLine)
+		switch (*aLine)
 		{
-			case ' ': /* blank line */
-			case ';': /* comment line */
+			case ' ':			/* blank line */
+			case ';':			/* comment line */
 				continue;
-			break;
+				break;
 
-			case '[':	/* section marker */
+			case '[':			/* section marker */
 
-				if( (aString = strchr(aLine, ']')) )
+				if ((aString = strchr(aLine, ']')))
 				{
 					aStart = aLine + 1;
 					aString--;
-					while (isspace((unsigned char) *aStart)) aStart++;
-					while (isspace((unsigned char) *aString)) aString--;
-					*(aString+1) = '\0';
+					while (isspace((unsigned char) *aStart))
+						aStart++;
+					while (isspace((unsigned char) *aString))
+						aString--;
+					*(aString + 1) = '\0';
 
 					/* accept as matched if NULL key or exact match */
 
-					if(!theSection || !strcmp(aStart, theSection))
-					{
+					if (!theSection || !strcmp(aStart, theSection))
 						aSectionFound = TRUE;
-					}
 				}
 
-			break;
+				break;
 
 			default:
 
 				/* try to match value keys if in proper section */
 
-				if(aSectionFound)
+				if (aSectionFound)
 				{
 					/* try to match requested key */
 
-					if( (aString = aValue = strchr(aLine, '=')) )
+					if ((aString = aValue = strchr(aLine, '=')))
 					{
 						*aValue = '\0';
 						++aValue;
 
 						/* strip leading blanks in value field */
 
-						while(*aValue == ' ' && aValue < aLine + sizeof(aLine))
-						{
+						while (*aValue == ' ' && aValue < aLine + sizeof(aLine))
 							*aValue++ = '\0';
-						}
-						if(aValue >= aLine + sizeof(aLine))
-						{
+						if (aValue >= aLine + sizeof(aLine))
 							aValue = "";
-						}
 					}
 					else
-					{
 						aValue = "";
-					}
 
 					aStart = aLine;
-					while (isspace((unsigned char) *aStart)) aStart++;
+					while (isspace((unsigned char) *aStart))
+						aStart++;
 
 					/* strip trailing blanks from key */
 
-					if(aString)
+					if (aString)
 					{
-						while(--aString >= aStart && *aString == ' ')
-						{
+						while (--aString >= aStart && *aString == ' ')
 							*aString = '\0';
-						}
 					}
 
 					/* see if key is matched */
 
-					if(theKey == NULL || !strcmp(theKey, aStart))
+					if (theKey == NULL || !strcmp(theKey, aStart))
 					{
 						/* matched -- first, terminate value part */
 
@@ -213,7 +208,7 @@ GetPrivateProfileString(char *theSection,	/* section name */
 
 						aString = aValue + aLength - 1;
 
-						while(--aString > aValue && *aString == ' ')
+						while (--aString > aValue && *aString == ' ')
 						{
 							*aString = '\0';
 							--aLength;
@@ -221,7 +216,7 @@ GetPrivateProfileString(char *theSection,	/* section name */
 
 						/* unquote value if quoted */
 
-						if(aLength >= 2 && aValue[0] == '"' &&
+						if (aLength >= 2 && aValue[0] == '"' &&
 							aValue[aLength - 1] == '"')
 						{
 							/* string quoted with double quotes */
@@ -234,7 +229,7 @@ GetPrivateProfileString(char *theSection,	/* section name */
 						{
 							/* single quotes allowed also... */
 
-							if(aLength >= 2 && aValue[0] == '\'' &&
+							if (aLength >= 2 && aValue[0] == '\'' &&
 								aValue[aLength - 1] == '\'')
 							{
 								aValue[aLength - 1] = '\0';
@@ -246,23 +241,23 @@ GetPrivateProfileString(char *theSection,	/* section name */
 						/* compute maximum length copyable */
 
 						aLineLength = (aLength <
-							theReturnBufferLength - aReturnLength) ? aLength :
+						theReturnBufferLength - aReturnLength) ? aLength :
 							theReturnBufferLength - aReturnLength;
 
 						/* do the copy to return buffer */
 
-						if(aLineLength)
+						if (aLineLength)
 						{
 							strncpy(&theReturnBuffer[aReturnLength],
-								aValue, aLineLength);
+									aValue, aLineLength);
 							aReturnLength += aLineLength;
-							if(aReturnLength < theReturnBufferLength)
+							if (aReturnLength < theReturnBufferLength)
 							{
 								theReturnBuffer[aReturnLength] = '\0';
 								++aReturnLength;
 							}
 						}
-						if(aFile)
+						if (aFile)
 						{
 							fclose(aFile);
 							aFile = NULL;
@@ -272,17 +267,16 @@ GetPrivateProfileString(char *theSection,	/* section name */
 					}
 				}
 
-			break;
+				break;
 		}
 	}
 
-	if(aFile)
-	{
+	if (aFile)
 		fclose(aFile);
-	}
 
-	if(!aKeyFound) {	/* key wasn't found return default */
-		++aLength;	/* room for NULL char */
+	if (!aKeyFound)
+	{							/* key wasn't found return default */
+		++aLength;				/* room for NULL char */
 		aLength = theReturnBufferLength < aLength ?
 			theReturnBufferLength : aLength;
 		strncpy(theReturnBuffer, theDefault, aLength);
@@ -293,10 +287,11 @@ GetPrivateProfileString(char *theSection,	/* section name */
 }
 
 DWORD
-WritePrivateProfileString(char *theSection,	/* section name */
-			  char *theKey,		/* write key name */
-			  char *theBuffer,	/* input buffer */
-			  char *theIniFileName)	/* pathname of ini file to write */
+WritePrivateProfileString(char *theSection,		/* section name */
+						  char *theKey, /* write key name */
+						  char *theBuffer,		/* input buffer */
+						  char *theIniFileName) /* pathname of ini file to
+												 * write */
 {
 	return 0;
 }
@@ -307,69 +302,74 @@ WritePrivateProfileString(char *theSection,	/* section name */
  * I find out different.
  */
 DWORD
-WritePrivateProfileString(char *theSection,	/* section name */
-			  char *theKey,		/* write key name */
-			  char *theBuffer,	/* input buffer */
-			  char *theIniFileName)	/* pathname of ini file to write */
+WritePrivateProfileString(char *theSection,		/* section name */
+						  char *theKey, /* write key name */
+						  char *theBuffer,		/* input buffer */
+						  char *theIniFileName) /* pathname of ini file to
+												 * write */
 {
-	char buf[MAXPGPATH];
-	char* ptr = 0;
-	FILE* aFile = 0;
-	size_t aLength;
-	char aLine[2048];
-	char *aValue;
-	char *aString;
-	size_t aLineLength;
-	size_t aReturnLength = 0;
-
-	BOOL aSectionFound = FALSE;
-	BOOL keyFound = FALSE;
-	int j = 0;
+	char		buf[MAXPGPATH];
+	char	   *ptr = 0;
+	FILE	   *aFile = 0;
+	size_t		aLength;
+	char		aLine[2048];
+	char	   *aValue;
+	char	   *aString;
+	size_t		aLineLength;
+	size_t		aReturnLength = 0;
+
+	BOOL		aSectionFound = FALSE;
+	BOOL		keyFound = FALSE;
+	int			j = 0;
 
 	/* If this isn't correct processing we'll change it later  */
-	if(theSection == NULL || theKey == NULL || theBuffer == NULL ||
-		theIniFileName == NULL) return 0;
+	if (theSection == NULL || theKey == NULL || theBuffer == NULL ||
+		theIniFileName == NULL)
+		return 0;
 
 	aLength = strlen(theBuffer);
-	if(aLength == 0) return 0;
+	if (aLength == 0)
+		return 0;
 
 	j = strlen(theIniFileName) + 1;
-	ptr = (char*)getpwuid(getuid());	/* get user info */
+	ptr = (char *) getpwuid(getuid());	/* get user info */
 
-	if( ptr == NULL)
+	if (ptr == NULL)
 	{
-		if( MAXPGPATH-1 < j )
-			theIniFileName[MAXPGPATH-1] = '\0';
+		if (MAXPGPATH - 1 < j)
+			theIniFileName[MAXPGPATH - 1] = '\0';
 
-		sprintf(buf,"%s",theIniFileName);
+		sprintf(buf, "%s", theIniFileName);
 	}
-	ptr = ((struct passwd*)ptr)->pw_dir;	/* get user home dir */
-	if( ptr == NULL || *ptr == '\0' )
+	ptr = ((struct passwd *) ptr)->pw_dir;		/* get user home dir */
+	if (ptr == NULL || *ptr == '\0')
 		ptr = "/home";
 
 	/* This doesn't make it so we find an ini file but allows normal */
-	/*  processing to continue further on down. The likelihood is that */
+	/* processing to continue further on down. The likelihood is that */
 	/* the file won't be found and thus the default value will be */
 	/* returned. */
 	/* */
-	if( MAXPGPATH-1 < strlen(ptr) + j )
+	if (MAXPGPATH - 1 < strlen(ptr) + j)
 	{
-		if( MAXPGPATH-1 < strlen(ptr) )
-			ptr[MAXPGPATH-1] = '\0';
+		if (MAXPGPATH - 1 < strlen(ptr))
+			ptr[MAXPGPATH - 1] = '\0';
 		else
-			theIniFileName[MAXPGPATH-1-strlen(ptr)] = '\0';
+			theIniFileName[MAXPGPATH - 1 - strlen(ptr)] = '\0';
 	}
 
-	sprintf( buf, "%s/%s",ptr,theIniFileName );
+	sprintf(buf, "%s/%s", ptr, theIniFileName);
 
 	/* This code makes it so that a file in the users home dir */
-	/*  overrides a the "default" file as passed in */
+	/* overrides a the "default" file as passed in */
 	/* */
-	aFile = (FILE*)(buf ? fopen(buf, "r+") : NULL);
-	if(!aFile) {
-		sprintf(buf,"%s",theIniFileName);
-		aFile = (FILE*)(buf ? fopen(buf, "r+") : NULL);
-		if(!aFile) return 0;
+	aFile = (FILE *) (buf ? fopen(buf, "r+") : NULL);
+	if (!aFile)
+	{
+		sprintf(buf, "%s", theIniFileName);
+		aFile = (FILE *) (buf ? fopen(buf, "r+") : NULL);
+		if (!aFile)
+			return 0;
 	}
 
 
@@ -379,104 +379,92 @@ WritePrivateProfileString(char *theSection,	/* section name */
 	/* exists we have to overwrite it. If it doesn't exist */
 	/* we just write a new line to the file. */
 	/* */
-	while(fgets(aLine, sizeof(aLine), aFile) != NULL)
+	while (fgets(aLine, sizeof(aLine), aFile) != NULL)
 	{
 		aLineLength = strlen(aLine);
 		/* strip final '\n' */
-		if(aLineLength > 0 && aLine[aLineLength - 1] == '\n')
-		{
+		if (aLineLength > 0 && aLine[aLineLength - 1] == '\n')
 			aLine[aLineLength - 1] = '\0';
-		}
-		switch(*aLine)
+		switch (*aLine)
 		{
-			case ' ': /* blank line */
-			case ';': /* comment line */
+			case ' ':			/* blank line */
+			case ';':			/* comment line */
 				continue;
-			break;
+				break;
 
-			case '[':	/* section marker */
+			case '[':			/* section marker */
 
-				if( (aString = strchr(aLine, ']')) )
+				if ((aString = strchr(aLine, ']')))
 				{
 					*aString = '\0';
 
 					/* accept as matched if key exact match */
 
-					if(!strcmp(aLine + 1, theSection))
-					{
+					if (!strcmp(aLine + 1, theSection))
 						aSectionFound = TRUE;
-					}
 				}
 
-			break;
+				break;
 
 			default:
 
 				/* try to match value keys if in proper section */
 
-				if(aSectionFound)
+				if (aSectionFound)
 				{
 					/* try to match requested key */
 
-					if( (aString = aValue = strchr(aLine, '=')) )
+					if ((aString = aValue = strchr(aLine, '=')))
 					{
 						*aValue = '\0';
 						++aValue;
 
 						/* strip leading blanks in value field */
 
-						while(*aValue == ' ' && aValue < aLine + sizeof(aLine))
-						{
+						while (*aValue == ' ' && aValue < aLine + sizeof(aLine))
 							*aValue++ = '\0';
-						}
-						if(aValue >= aLine + sizeof(aLine))
-						{
+						if (aValue >= aLine + sizeof(aLine))
 							aValue = "";
-						}
 					}
 					else
-					{
 						aValue = "";
-					}
 
 					/* strip trailing blanks from key */
 
-					if(aString)
+					if (aString)
 					{
-						while(--aString >= aLine && *aString == ' ')
-						{
+						while (--aString >= aLine && *aString == ' ')
 							*aString = '\0';
-						}
 					}
 
 					/* see if key is matched */
 
-					if(!strcmp(theKey, aLine))
+					if (!strcmp(theKey, aLine))
 					{
 						keyFound = TRUE;
 						/* matched -- first, terminate value part */
 
 						/* overwrite current value */
-						fseek(aFile,-aLineLength,SEEK_CUR);
+						fseek(aFile, -aLineLength, SEEK_CUR);
 						/* overwrite key and value */
-						sprintf(aLine,"%s = %s\n",theKey,theBuffer);
-						fputs(aLine,aFile);
-						}
+						sprintf(aLine, "%s = %s\n", theKey, theBuffer);
+						fputs(aLine, aFile);
 					}
 				}
-
-			break;
 		}
+
+		break;
 	}
+}
 
-	if(!keyFound) {		/* theKey wasn't in file so  */
-	if(aFile)
-	{
+if (!keyFound)
+{								/* theKey wasn't in file so  */
+	if (aFile)
 		fclose(aFile);
-	}
 
 	return aReturnLength > 0 ? aReturnLength - 1 : 0;
 }
+
 #endif
 
 
diff --git a/src/interfaces/odbc/gpps.h b/src/interfaces/odbc/gpps.h
index c2c81965f09c95077bd6d2092a84b4202d067bae..03e2db9c4459be29a728f7e2b17acf9194c1b9f3 100644
--- a/src/interfaces/odbc/gpps.h
+++ b/src/interfaces/odbc/gpps.h
@@ -13,25 +13,32 @@
 #endif
 
 #ifdef __cplusplus
-extern "C" {
+extern		"C"
+{
 #endif
 
-DWORD
-GetPrivateProfileString(char *theSection,   /* section name */
-			char *theKey, /* search key name */
-			char *theDefault, /* default value if not found */
-			char *theReturnBuffer, /* return valuse stored here */
-			size_t theBufferLength,	/* byte length of return buffer */
-			char *theIniFileName); /* pathname of ini file to search */
+	DWORD
+	GetPrivateProfileString(char *theSection,	/* section name */
+							char *theKey,		/* search key name */
+							char *theDefault,	/* default value if not
+												 * found */
+							char *theReturnBuffer,		/* return valuse stored
+														 * here */
+							size_t theBufferLength,		/* byte length of return
+														 * buffer */
+							char *theIniFileName);		/* pathname of ini file
+														 * to search */
 
-DWORD
-WritePrivateProfileString(char *theSection,	/* section name */
-			  char *theKey,		/* write key name */
-			  char *theBuffer,	/* input buffer */
-			  char *theIniFileName); /* pathname of ini file to write */
+	DWORD
+	WritePrivateProfileString(char *theSection, /* section name */
+							  char *theKey,		/* write key name */
+							  char *theBuffer,	/* input buffer */
+							  char *theIniFileName);	/* pathname of ini file
+														 * to write */
 
 #ifdef __cplusplus
 }
+
 #endif
 
 #ifndef WIN32
diff --git a/src/interfaces/odbc/info.c b/src/interfaces/odbc/info.c
index 9ee92c0687f2e3735b313596ccab5f5abfa86bb9..f777a71707de95b023c0c4bf5623c747de4d8406 100644
--- a/src/interfaces/odbc/info.c
+++ b/src/interfaces/odbc/info.c
@@ -1,17 +1,17 @@
-/* Module:          info.c
+/* Module:			info.c
  *
- * Description:     This module contains routines related to
- *                  ODBC informational functions.
+ * Description:		This module contains routines related to
+ *					ODBC informational functions.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   SQLGetInfo, SQLGetTypeInfo, SQLGetFunctions, 
- *                  SQLTables, SQLColumns, SQLStatistics, SQLSpecialColumns,
- *                  SQLPrimaryKeys, SQLForeignKeys, 
- *                  SQLProcedureColumns(NI), SQLProcedures(NI), 
- *                  SQLTablePrivileges(NI), SQLColumnPrivileges(NI)
+ * API functions:	SQLGetInfo, SQLGetTypeInfo, SQLGetFunctions,
+ *					SQLTables, SQLColumns, SQLStatistics, SQLSpecialColumns,
+ *					SQLPrimaryKeys, SQLForeignKeys,
+ *					SQLProcedureColumns(NI), SQLProcedures(NI),
+ *					SQLTablePrivileges(NI), SQLColumnPrivileges(NI)
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -30,7 +30,7 @@
 #include <ctype.h>
 #else
 #include <windows.h>
-#include <sql.h> 
+#include <sql.h>
 #include <sqlext.h>
 #endif
 
@@ -56,589 +56,636 @@
 extern GLOBAL_VALUES globals;
 
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLGetInfo(
-        HDBC      hdbc,
-        UWORD     fInfoType,
-        PTR       rgbInfoValue,
-        SWORD     cbInfoValueMax,
-        SWORD FAR *pcbInfoValue)
+RETCODE SQL_API
+SQLGetInfo(
+		   HDBC hdbc,
+		   UWORD fInfoType,
+		   PTR rgbInfoValue,
+		   SWORD cbInfoValueMax,
+		   SWORD FAR * pcbInfoValue)
 {
-static char *func = "SQLGetInfo";
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-ConnInfo *ci;
-char *p = NULL, tmp[MAX_INFO_STRING];
-int len = 0, value = 0;
-RETCODE result;
-
-	mylog( "%s: entering...fInfoType=%d\n", func, fInfoType);
-
-	if ( ! conn) {
+	static char *func = "SQLGetInfo";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	ConnInfo   *ci;
+	char	   *p = NULL,
+				tmp[MAX_INFO_STRING];
+	int			len = 0,
+				value = 0;
+	RETCODE		result;
+
+	mylog("%s: entering...fInfoType=%d\n", func, fInfoType);
+
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 	ci = &conn->connInfo;
 
-    switch (fInfoType) {
-    case SQL_ACCESSIBLE_PROCEDURES: /* ODBC 1.0 */
-		p = "N";
-        break;
-
-    case SQL_ACCESSIBLE_TABLES: /* ODBC 1.0 */
-		p = "N";
-        break;
-
-    case SQL_ACTIVE_CONNECTIONS: /* ODBC 1.0 */
-        len = 2;
-        value = MAX_CONNECTIONS;
-        break;
-
-    case SQL_ACTIVE_STATEMENTS: /* ODBC 1.0 */
-        len = 2;
-        value = 0;
-        break;
-
-    case SQL_ALTER_TABLE: /* ODBC 2.0 */
-        len = 4;
-        value = SQL_AT_ADD_COLUMN;
-        break;
-
-    case SQL_BOOKMARK_PERSISTENCE: /* ODBC 2.0 */
-		/* very simple bookmark support */        
-		len = 4;
-        value = globals.use_declarefetch ? 0 : (SQL_BP_SCROLL);		
-        break;
-
-    case SQL_COLUMN_ALIAS: /* ODBC 2.0 */
-		p = "N";
-        break;
-
-    case SQL_CONCAT_NULL_BEHAVIOR: /* ODBC 1.0 */
-        len = 2;
-        value = SQL_CB_NON_NULL;
-        break;
-
-    case SQL_CONVERT_BIGINT:
-    case SQL_CONVERT_BINARY:
-    case SQL_CONVERT_BIT:
-    case SQL_CONVERT_CHAR:
-    case SQL_CONVERT_DATE:
-    case SQL_CONVERT_DECIMAL:
-    case SQL_CONVERT_DOUBLE:
-    case SQL_CONVERT_FLOAT:
-    case SQL_CONVERT_INTEGER:
-    case SQL_CONVERT_LONGVARBINARY:
-    case SQL_CONVERT_LONGVARCHAR:
-    case SQL_CONVERT_NUMERIC:
-    case SQL_CONVERT_REAL:
-    case SQL_CONVERT_SMALLINT:
-    case SQL_CONVERT_TIME:
-    case SQL_CONVERT_TIMESTAMP:
-    case SQL_CONVERT_TINYINT:
-    case SQL_CONVERT_VARBINARY:
-    case SQL_CONVERT_VARCHAR: /* ODBC 1.0 */
-		len = 4;
-        value = fInfoType;
-        break;
-
-    case SQL_CONVERT_FUNCTIONS: /* ODBC 1.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_CORRELATION_NAME: /* ODBC 1.0 */
-
-		/*	Saying no correlation name makes Query not work right.
-			value = SQL_CN_NONE;
-		*/
-		len = 2;
-        value = SQL_CN_ANY;
-        break;
-
-    case SQL_CURSOR_COMMIT_BEHAVIOR: /* ODBC 1.0 */
-        len = 2;
-        value = SQL_CB_CLOSE;
-        break;
-
-    case SQL_CURSOR_ROLLBACK_BEHAVIOR: /* ODBC 1.0 */
-        len = 2;
-        value = SQL_CB_CLOSE;
-        break;
-
-    case SQL_DATA_SOURCE_NAME: /* ODBC 1.0 */
-		p = CC_get_DSN(conn);
-        break;
-
-    case SQL_DATA_SOURCE_READ_ONLY: /* ODBC 1.0 */
-		p = CC_is_onlyread(conn) ? "Y" : "N";
-        break;
-
-    case SQL_DATABASE_NAME: /* Support for old ODBC 1.0 Apps */
-
-		/*	Returning the database name causes problems in MS Query.
-			It generates query like: "SELECT DISTINCT a FROM byronncrap3 crap3"
-
-			p = CC_get_database(conn);
-		*/
-		p = "";    
-		break;
-
-    case SQL_DBMS_NAME: /* ODBC 1.0 */
-		p = DBMS_NAME;
-        break;
-
-    case SQL_DBMS_VER: /* ODBC 1.0 */
-		/* The ODBC spec wants ##.##.#### ...whatever... so prepend the driver */
-		/* version number to the dbms version string */
-		sprintf(tmp, "%s %s", POSTGRESDRIVERVERSION, conn->pg_version);
-		p = tmp;
-        break;
-
-    case SQL_DEFAULT_TXN_ISOLATION: /* ODBC 1.0 */
-		len = 4;
-        value = SQL_TXN_READ_COMMITTED; /*SQL_TXN_SERIALIZABLE; */
-        break;
-
-    case SQL_DRIVER_NAME: /* ODBC 1.0 */
-        p = DRIVER_FILE_NAME;
-        break;
-
-    case SQL_DRIVER_ODBC_VER:
-		p = DRIVER_ODBC_VER;
-        break;
-
-    case SQL_DRIVER_VER: /* ODBC 1.0 */
-        p = POSTGRESDRIVERVERSION;
-        break;
-
-    case SQL_EXPRESSIONS_IN_ORDERBY: /* ODBC 1.0 */
-		p = "N";
-        break;
-
-    case SQL_FETCH_DIRECTION: /* ODBC 1.0 */
-		len = 4;
-        value = globals.use_declarefetch ? (SQL_FD_FETCH_NEXT) : (SQL_FD_FETCH_NEXT |
-                                   SQL_FD_FETCH_FIRST |
-                                   SQL_FD_FETCH_LAST |
-                                   SQL_FD_FETCH_PRIOR |
-                                   SQL_FD_FETCH_ABSOLUTE |
-								   SQL_FD_FETCH_RELATIVE | 
-								   SQL_FD_FETCH_BOOKMARK);
-        break;
-
-    case SQL_FILE_USAGE: /* ODBC 2.0 */
-		len = 2;
-        value = SQL_FILE_NOT_SUPPORTED;
-        break;
-
-    case SQL_GETDATA_EXTENSIONS: /* ODBC 2.0 */
-		len = 4;
-        value = (SQL_GD_ANY_COLUMN | SQL_GD_ANY_ORDER | SQL_GD_BOUND | SQL_GD_BLOCK);
-        break;
-
-    case SQL_GROUP_BY: /* ODBC 2.0 */
-		len = 2;
-        value = SQL_GB_GROUP_BY_EQUALS_SELECT;
-        break;
-
-    case SQL_IDENTIFIER_CASE: /* ODBC 1.0 */
-        /*	are identifiers case-sensitive (yes, but only when quoted.  If not quoted, they
-			default to lowercase)
-		*/
-		len = 2;
-        value = SQL_IC_LOWER;
-        break;
-
-    case SQL_IDENTIFIER_QUOTE_CHAR: /* ODBC 1.0 */
-        /* the character used to quote "identifiers" */
-		p = PG_VERSION_LE(conn, 6.2) ? " " : "\"";
-        break;
-
-    case SQL_KEYWORDS: /* ODBC 2.0 */
-		p = "";
-        break;
-
-    case SQL_LIKE_ESCAPE_CLAUSE: /* ODBC 2.0 */
-		/*	is there a character that escapes '%' and '_' in a LIKE clause?
-			not as far as I can tell
-		*/
-        p = "N";
-        break;
-
-    case SQL_LOCK_TYPES: /* ODBC 2.0 */
-		len = 4;
-        value = globals.lie ? (SQL_LCK_NO_CHANGE | SQL_LCK_EXCLUSIVE | SQL_LCK_UNLOCK) : SQL_LCK_NO_CHANGE;
-        break;
-
-    case SQL_MAX_BINARY_LITERAL_LEN: /* ODBC 2.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_MAX_CHAR_LITERAL_LEN: /* ODBC 2.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_MAX_COLUMN_NAME_LEN: /* ODBC 1.0 */
-		len = 2;
-        value = MAX_COLUMN_LEN;
-        break;
-
-    case SQL_MAX_COLUMNS_IN_GROUP_BY: /* ODBC 2.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_COLUMNS_IN_INDEX: /* ODBC 2.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_COLUMNS_IN_ORDER_BY: /* ODBC 2.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_COLUMNS_IN_SELECT: /* ODBC 2.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_COLUMNS_IN_TABLE: /* ODBC 2.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_CURSOR_NAME_LEN: /* ODBC 1.0 */
-		len = 2;
-        value = MAX_CURSOR_LEN;
-        break;
-
-    case SQL_MAX_INDEX_SIZE: /* ODBC 2.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_MAX_OWNER_NAME_LEN: /* ODBC 1.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_PROCEDURE_NAME_LEN: /* ODBC 1.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_QUALIFIER_NAME_LEN: /* ODBC 1.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_ROW_SIZE: /* ODBC 2.0 */
-		len = 4;
-		if (PG_VERSION_GE(conn, 7.1)) { /* Large Rowa in 7.1+ */
-			value = MAX_ROW_SIZE;
-		} else { /* Without the Toaster we're limited to the blocksize */
-			value = BLCKSZ;
-		}
-        break;
-
-    case SQL_MAX_ROW_SIZE_INCLUDES_LONG: /* ODBC 2.0 */
-        /*	does the preceding value include LONGVARCHAR and LONGVARBINARY
-			fields?   Well, it does include longvarchar, but not longvarbinary.
-		*/
-		p = "Y";
-        break;
-
-    case SQL_MAX_STATEMENT_LEN: /* ODBC 2.0 */
-        /* maybe this should be 0? */
-		len = 4;
-		if (PG_VERSION_GE(conn, 7.0)) { /* Long Queries in 7.0+ */
-			value = MAX_STATEMENT_LEN;
-		} else if (PG_VERSION_GE(conn, 6.5)) /* Prior to 7.0 we used 2*BLCKSZ */
-			value = (2*BLCKSZ);
-		else /* Prior to 6.5 we used BLCKSZ */
-			value = BLCKSZ;
-
-        break;
-
-    case SQL_MAX_TABLE_NAME_LEN: /* ODBC 1.0 */
-		len = 2;
-        value = MAX_TABLE_LEN;
-        break;
-
-    case SQL_MAX_TABLES_IN_SELECT: /* ODBC 2.0 */
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MAX_USER_NAME_LEN:
-		len = 2;
-        value = 0;
-        break;
-
-    case SQL_MULT_RESULT_SETS: /* ODBC 1.0 */
-        /* Don't support multiple result sets but say yes anyway? */
-		p = "Y";
-        break;
-
-    case SQL_MULTIPLE_ACTIVE_TXN: /* ODBC 1.0 */
-		p = "Y";
-        break;
-
-    case SQL_NEED_LONG_DATA_LEN: /* ODBC 2.0 */
-		/*	Dont need the length, SQLPutData can handle any size and multiple calls */
-		p = "N";
-        break;
-
-    case SQL_NON_NULLABLE_COLUMNS: /* ODBC 1.0 */
-		len = 2;
-        value = SQL_NNC_NON_NULL;
-        break;
-
-    case SQL_NULL_COLLATION: /* ODBC 2.0 */
-        /* where are nulls sorted? */
-		len = 2;
-        value = SQL_NC_END;
-        break;
-
-    case SQL_NUMERIC_FUNCTIONS: /* ODBC 1.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_ODBC_API_CONFORMANCE: /* ODBC 1.0 */
-		len = 2;
-        value = SQL_OAC_LEVEL1;
-        break;
-
-    case SQL_ODBC_SAG_CLI_CONFORMANCE: /* ODBC 1.0 */
-		len = 2;
-        value = SQL_OSCC_NOT_COMPLIANT;
-        break;
-
-    case SQL_ODBC_SQL_CONFORMANCE: /* ODBC 1.0 */
-		len = 2;
-        value = SQL_OSC_CORE;
-        break;
-
-    case SQL_ODBC_SQL_OPT_IEF: /* ODBC 1.0 */
-		p = "N";
-        break;
-
-	case SQL_OJ_CAPABILITIES: /* ODBC 2.01 */
-		len = 4;
-		if (PG_VERSION_GE(conn, 7.1)) { /* OJs in 7.1+ */
-			value = (SQL_OJ_LEFT |
-					SQL_OJ_RIGHT |
-					SQL_OJ_FULL |
-					SQL_OJ_NESTED |
-					SQL_OJ_NOT_ORDERED |
-					SQL_OJ_INNER |
-					SQL_OJ_ALL_COMPARISON_OPS);
-		} else { /* OJs not in <7.1 */
+	switch (fInfoType)
+	{
+		case SQL_ACCESSIBLE_PROCEDURES: /* ODBC 1.0 */
+			p = "N";
+			break;
+
+		case SQL_ACCESSIBLE_TABLES:		/* ODBC 1.0 */
+			p = "N";
+			break;
+
+		case SQL_ACTIVE_CONNECTIONS:	/* ODBC 1.0 */
+			len = 2;
+			value = MAX_CONNECTIONS;
+			break;
+
+		case SQL_ACTIVE_STATEMENTS:		/* ODBC 1.0 */
+			len = 2;
 			value = 0;
-		}
-		break;
+			break;
+
+		case SQL_ALTER_TABLE:	/* ODBC 2.0 */
+			len = 4;
+			value = SQL_AT_ADD_COLUMN;
+			break;
 
-    case SQL_ORDER_BY_COLUMNS_IN_SELECT: /* ODBC 2.0 */
-		p = (PG_VERSION_LE(conn, 6.3)) ? "Y" : "N";		
-        break;
+		case SQL_BOOKMARK_PERSISTENCE:	/* ODBC 2.0 */
+			/* very simple bookmark support */
+			len = 4;
+			value = globals.use_declarefetch ? 0 : (SQL_BP_SCROLL);
+			break;
+
+		case SQL_COLUMN_ALIAS:	/* ODBC 2.0 */
+			p = "N";
+			break;
+
+		case SQL_CONCAT_NULL_BEHAVIOR:	/* ODBC 1.0 */
+			len = 2;
+			value = SQL_CB_NON_NULL;
+			break;
+
+		case SQL_CONVERT_BIGINT:
+		case SQL_CONVERT_BINARY:
+		case SQL_CONVERT_BIT:
+		case SQL_CONVERT_CHAR:
+		case SQL_CONVERT_DATE:
+		case SQL_CONVERT_DECIMAL:
+		case SQL_CONVERT_DOUBLE:
+		case SQL_CONVERT_FLOAT:
+		case SQL_CONVERT_INTEGER:
+		case SQL_CONVERT_LONGVARBINARY:
+		case SQL_CONVERT_LONGVARCHAR:
+		case SQL_CONVERT_NUMERIC:
+		case SQL_CONVERT_REAL:
+		case SQL_CONVERT_SMALLINT:
+		case SQL_CONVERT_TIME:
+		case SQL_CONVERT_TIMESTAMP:
+		case SQL_CONVERT_TINYINT:
+		case SQL_CONVERT_VARBINARY:
+		case SQL_CONVERT_VARCHAR:		/* ODBC 1.0 */
+			len = 4;
+			value = fInfoType;
+			break;
+
+		case SQL_CONVERT_FUNCTIONS:		/* ODBC 1.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_CORRELATION_NAME:		/* ODBC 1.0 */
+
+			/*
+			 * Saying no correlation name makes Query not work right.
+			 * value = SQL_CN_NONE;
+			 */
+			len = 2;
+			value = SQL_CN_ANY;
+			break;
+
+		case SQL_CURSOR_COMMIT_BEHAVIOR:		/* ODBC 1.0 */
+			len = 2;
+			value = SQL_CB_CLOSE;
+			break;
+
+		case SQL_CURSOR_ROLLBACK_BEHAVIOR:		/* ODBC 1.0 */
+			len = 2;
+			value = SQL_CB_CLOSE;
+			break;
+
+		case SQL_DATA_SOURCE_NAME:		/* ODBC 1.0 */
+			p = CC_get_DSN(conn);
+			break;
+
+		case SQL_DATA_SOURCE_READ_ONLY: /* ODBC 1.0 */
+			p = CC_is_onlyread(conn) ? "Y" : "N";
+			break;
+
+		case SQL_DATABASE_NAME:/* Support for old ODBC 1.0 Apps */
+
+			/*
+			 * Returning the database name causes problems in MS Query. It
+			 * generates query like: "SELECT DISTINCT a FROM byronncrap3
+			 * crap3"
+			 *
+			 * p = CC_get_database(conn);
+			 */
+			p = "";
+			break;
+
+		case SQL_DBMS_NAME:		/* ODBC 1.0 */
+			p = DBMS_NAME;
+			break;
+
+		case SQL_DBMS_VER:		/* ODBC 1.0 */
+
+			/*
+			 * The ODBC spec wants ##.##.#### ...whatever... so prepend
+			 * the driver
+			 */
+			/* version number to the dbms version string */
+			sprintf(tmp, "%s %s", POSTGRESDRIVERVERSION, conn->pg_version);
+			p = tmp;
+			break;
+
+		case SQL_DEFAULT_TXN_ISOLATION: /* ODBC 1.0 */
+			len = 4;
+			value = SQL_TXN_READ_COMMITTED;		/* SQL_TXN_SERIALIZABLE; */
+			break;
+
+		case SQL_DRIVER_NAME:	/* ODBC 1.0 */
+			p = DRIVER_FILE_NAME;
+			break;
+
+		case SQL_DRIVER_ODBC_VER:
+			p = DRIVER_ODBC_VER;
+			break;
+
+		case SQL_DRIVER_VER:	/* ODBC 1.0 */
+			p = POSTGRESDRIVERVERSION;
+			break;
+
+		case SQL_EXPRESSIONS_IN_ORDERBY:		/* ODBC 1.0 */
+			p = "N";
+			break;
+
+		case SQL_FETCH_DIRECTION:		/* ODBC 1.0 */
+			len = 4;
+			value = globals.use_declarefetch ? (SQL_FD_FETCH_NEXT) : (SQL_FD_FETCH_NEXT |
+													 SQL_FD_FETCH_FIRST |
+													  SQL_FD_FETCH_LAST |
+													 SQL_FD_FETCH_PRIOR |
+												  SQL_FD_FETCH_ABSOLUTE |
+												  SQL_FD_FETCH_RELATIVE |
+												  SQL_FD_FETCH_BOOKMARK);
+			break;
+
+		case SQL_FILE_USAGE:	/* ODBC 2.0 */
+			len = 2;
+			value = SQL_FILE_NOT_SUPPORTED;
+			break;
+
+		case SQL_GETDATA_EXTENSIONS:	/* ODBC 2.0 */
+			len = 4;
+			value = (SQL_GD_ANY_COLUMN | SQL_GD_ANY_ORDER | SQL_GD_BOUND | SQL_GD_BLOCK);
+			break;
+
+		case SQL_GROUP_BY:		/* ODBC 2.0 */
+			len = 2;
+			value = SQL_GB_GROUP_BY_EQUALS_SELECT;
+			break;
+
+		case SQL_IDENTIFIER_CASE:		/* ODBC 1.0 */
+
+			/*
+			 * are identifiers case-sensitive (yes, but only when quoted.
+			 * If not quoted, they default to lowercase)
+			 */
+			len = 2;
+			value = SQL_IC_LOWER;
+			break;
+
+		case SQL_IDENTIFIER_QUOTE_CHAR: /* ODBC 1.0 */
+			/* the character used to quote "identifiers" */
+			p = PG_VERSION_LE(conn, 6.2) ? " " : "\"";
+			break;
+
+		case SQL_KEYWORDS:		/* ODBC 2.0 */
+			p = "";
+			break;
+
+		case SQL_LIKE_ESCAPE_CLAUSE:	/* ODBC 2.0 */
+
+			/*
+			 * is there a character that escapes '%' and '_' in a LIKE
+			 * clause? not as far as I can tell
+			 */
+			p = "N";
+			break;
+
+		case SQL_LOCK_TYPES:	/* ODBC 2.0 */
+			len = 4;
+			value = globals.lie ? (SQL_LCK_NO_CHANGE | SQL_LCK_EXCLUSIVE | SQL_LCK_UNLOCK) : SQL_LCK_NO_CHANGE;
+			break;
+
+		case SQL_MAX_BINARY_LITERAL_LEN:		/* ODBC 2.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_MAX_CHAR_LITERAL_LEN:	/* ODBC 2.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_MAX_COLUMN_NAME_LEN:	/* ODBC 1.0 */
+			len = 2;
+			value = MAX_COLUMN_LEN;
+			break;
+
+		case SQL_MAX_COLUMNS_IN_GROUP_BY:		/* ODBC 2.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_COLUMNS_IN_INDEX:	/* ODBC 2.0 */
+			len = 2;
+			value = 0;
+			break;
 
-    case SQL_OUTER_JOINS: /* ODBC 1.0 */
-		if (PG_VERSION_GE(conn, 7.1)) { /* OJs in 7.1+ */
+		case SQL_MAX_COLUMNS_IN_ORDER_BY:		/* ODBC 2.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_COLUMNS_IN_SELECT: /* ODBC 2.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_COLUMNS_IN_TABLE:	/* ODBC 2.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_CURSOR_NAME_LEN:	/* ODBC 1.0 */
+			len = 2;
+			value = MAX_CURSOR_LEN;
+			break;
+
+		case SQL_MAX_INDEX_SIZE:		/* ODBC 2.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_MAX_OWNER_NAME_LEN:	/* ODBC 1.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_PROCEDURE_NAME_LEN:		/* ODBC 1.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_QUALIFIER_NAME_LEN:		/* ODBC 1.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_ROW_SIZE:	/* ODBC 2.0 */
+			len = 4;
+			if (PG_VERSION_GE(conn, 7.1))
+			{					/* Large Rowa in 7.1+ */
+				value = MAX_ROW_SIZE;
+			}
+			else
+			{					/* Without the Toaster we're limited to
+								 * the blocksize */
+				value = BLCKSZ;
+			}
+			break;
+
+		case SQL_MAX_ROW_SIZE_INCLUDES_LONG:	/* ODBC 2.0 */
+
+			/*
+			 * does the preceding value include LONGVARCHAR and
+			 * LONGVARBINARY fields?   Well, it does include longvarchar,
+			 * but not longvarbinary.
+			 */
 			p = "Y";
-		} else { /* OJs not in <7.1 */
+			break;
+
+		case SQL_MAX_STATEMENT_LEN:		/* ODBC 2.0 */
+			/* maybe this should be 0? */
+			len = 4;
+			if (PG_VERSION_GE(conn, 7.0))
+			{					/* Long Queries in 7.0+ */
+				value = MAX_STATEMENT_LEN;
+			}
+			else if (PG_VERSION_GE(conn, 6.5))	/* Prior to 7.0 we used
+												 * 2*BLCKSZ */
+				value = (2 * BLCKSZ);
+			else
+/* Prior to 6.5 we used BLCKSZ */
+				value = BLCKSZ;
+
+			break;
+
+		case SQL_MAX_TABLE_NAME_LEN:	/* ODBC 1.0 */
+			len = 2;
+			value = MAX_TABLE_LEN;
+			break;
+
+		case SQL_MAX_TABLES_IN_SELECT:	/* ODBC 2.0 */
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MAX_USER_NAME_LEN:
+			len = 2;
+			value = 0;
+			break;
+
+		case SQL_MULT_RESULT_SETS:		/* ODBC 1.0 */
+			/* Don't support multiple result sets but say yes anyway? */
+			p = "Y";
+			break;
+
+		case SQL_MULTIPLE_ACTIVE_TXN:	/* ODBC 1.0 */
+			p = "Y";
+			break;
+
+		case SQL_NEED_LONG_DATA_LEN:	/* ODBC 2.0 */
+
+			/*
+			 * Dont need the length, SQLPutData can handle any size and
+			 * multiple calls
+			 */
 			p = "N";
-		}
-        break;
-
-    case SQL_OWNER_TERM: /* ODBC 1.0 */
-		p = "owner";
-        break;
-
-    case SQL_OWNER_USAGE: /* ODBC 2.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_POS_OPERATIONS: /* ODBC 2.0 */
-		len = 4;
-        value = globals.lie ? (SQL_POS_POSITION | SQL_POS_REFRESH | SQL_POS_UPDATE | SQL_POS_DELETE | SQL_POS_ADD) : (SQL_POS_POSITION | SQL_POS_REFRESH);
-        break;
-
-    case SQL_POSITIONED_STATEMENTS: /* ODBC 2.0 */
-		len = 4;
-        value = globals.lie ? (SQL_PS_POSITIONED_DELETE | 
-								SQL_PS_POSITIONED_UPDATE | 
-								SQL_PS_SELECT_FOR_UPDATE) : 0;
-        break;
-
-    case SQL_PROCEDURE_TERM: /* ODBC 1.0 */
-        p = "procedure";
-        break;
-
-    case SQL_PROCEDURES: /* ODBC 1.0 */
-		p = "Y";
-        break;
-
-    case SQL_QUALIFIER_LOCATION: /* ODBC 2.0 */
-		len = 2;
-        value = SQL_QL_START;
-        break;
-
-    case SQL_QUALIFIER_NAME_SEPARATOR: /* ODBC 1.0 */
-		p = "";
-        break;
-
-    case SQL_QUALIFIER_TERM: /* ODBC 1.0 */
-		p = "";
-        break;
-
-    case SQL_QUALIFIER_USAGE: /* ODBC 2.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_QUOTED_IDENTIFIER_CASE: /* ODBC 2.0 */
-        /* are "quoted" identifiers case-sensitive?  YES! */
-		len = 2;
-        value = SQL_IC_SENSITIVE;
-        break;
-
-    case SQL_ROW_UPDATES: /* ODBC 1.0 */
-        /*  Driver doesn't support keyset-driven or mixed cursors, so
-			not much point in saying row updates are supported
-		*/
-        p = globals.lie ? "Y" : "N";
-        break;
-
-    case SQL_SCROLL_CONCURRENCY: /* ODBC 1.0 */
-		len = 4;
-        value = globals.lie ? (SQL_SCCO_READ_ONLY | 
-								SQL_SCCO_LOCK | 
-								SQL_SCCO_OPT_ROWVER | 
-								SQL_SCCO_OPT_VALUES) : (SQL_SCCO_READ_ONLY);
-        break;
-
-    case SQL_SCROLL_OPTIONS: /* ODBC 1.0 */
-		len = 4;
-        value = globals.lie ? (SQL_SO_FORWARD_ONLY | 
-								SQL_SO_STATIC | 
-								SQL_SO_KEYSET_DRIVEN | 
-								SQL_SO_DYNAMIC | 
-								SQL_SO_MIXED) : (globals.use_declarefetch ? SQL_SO_FORWARD_ONLY : (SQL_SO_FORWARD_ONLY | SQL_SO_STATIC));
-        break;
-
-    case SQL_SEARCH_PATTERN_ESCAPE: /* ODBC 1.0 */
-		p = "";
-        break;
-
-    case SQL_SERVER_NAME: /* ODBC 1.0 */
-		p = CC_get_server(conn);
-        break;
-
-    case SQL_SPECIAL_CHARACTERS: /* ODBC 2.0 */
-        p = "_";
-        break;
-
-    case SQL_STATIC_SENSITIVITY: /* ODBC 2.0 */
-		len = 4;
-        value = globals.lie ? (SQL_SS_ADDITIONS | SQL_SS_DELETIONS | SQL_SS_UPDATES) : 0;
-        break;
-
-    case SQL_STRING_FUNCTIONS: /* ODBC 1.0 */
-		len = 4;
-        value = (SQL_FN_STR_CONCAT |
-				SQL_FN_STR_LCASE | 
-				SQL_FN_STR_LENGTH | 
-				SQL_FN_STR_LOCATE | 
-				SQL_FN_STR_LTRIM | 
-				SQL_FN_STR_RTRIM |
-				SQL_FN_STR_SUBSTRING |
-				SQL_FN_STR_UCASE);
-        break;
-
-    case SQL_SUBQUERIES: /* ODBC 2.0 */
-		/* postgres 6.3 supports subqueries */
-		len = 4;
-        value = (SQL_SQ_QUANTIFIED |
-				SQL_SQ_IN |
-				SQL_SQ_EXISTS |
-				SQL_SQ_COMPARISON);
-        break;
-
-    case SQL_SYSTEM_FUNCTIONS: /* ODBC 1.0 */
-		len = 4;
-		value = 0;
-        break;
-
-    case SQL_TABLE_TERM: /* ODBC 1.0 */
-		p = "table";
-        break;
-
-    case SQL_TIMEDATE_ADD_INTERVALS: /* ODBC 2.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_TIMEDATE_DIFF_INTERVALS: /* ODBC 2.0 */
-		len = 4;
-        value = 0;
-        break;
-
-    case SQL_TIMEDATE_FUNCTIONS: /* ODBC 1.0 */
-		len = 4;
-        value = (SQL_FN_TD_NOW);
-        break;
-
-    case SQL_TXN_CAPABLE: /* ODBC 1.0 */
-        /* Postgres can deal with create or drop table statements in a transaction */
-		len = 2;
-        value = SQL_TC_ALL;
-        break;
-
-    case SQL_TXN_ISOLATION_OPTION: /* ODBC 1.0 */
-		len = 4;
-        value = SQL_TXN_READ_COMMITTED; /* SQL_TXN_SERIALIZABLE; */
-        break;
-
-    case SQL_UNION: /* ODBC 2.0 */
-		/*  unions with all supported in postgres 6.3 */
-		len = 4;
-        value = (SQL_U_UNION | SQL_U_UNION_ALL);
-        break;
-
-    case SQL_USER_NAME: /* ODBC 1.0 */
-		p = CC_get_username(conn);
-        break;
-
-    default:
-        /* unrecognized key */
-        conn->errormsg = "Unrecognized key passed to SQLGetInfo.";
-        conn->errornumber = CONN_NOT_IMPLEMENTED_ERROR;
-		CC_log_error(func, "", conn);
-        return SQL_ERROR;
-    }
+			break;
+
+		case SQL_NON_NULLABLE_COLUMNS:	/* ODBC 1.0 */
+			len = 2;
+			value = SQL_NNC_NON_NULL;
+			break;
+
+		case SQL_NULL_COLLATION:		/* ODBC 2.0 */
+			/* where are nulls sorted? */
+			len = 2;
+			value = SQL_NC_END;
+			break;
+
+		case SQL_NUMERIC_FUNCTIONS:		/* ODBC 1.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_ODBC_API_CONFORMANCE:	/* ODBC 1.0 */
+			len = 2;
+			value = SQL_OAC_LEVEL1;
+			break;
+
+		case SQL_ODBC_SAG_CLI_CONFORMANCE:		/* ODBC 1.0 */
+			len = 2;
+			value = SQL_OSCC_NOT_COMPLIANT;
+			break;
+
+		case SQL_ODBC_SQL_CONFORMANCE:	/* ODBC 1.0 */
+			len = 2;
+			value = SQL_OSC_CORE;
+			break;
+
+		case SQL_ODBC_SQL_OPT_IEF:		/* ODBC 1.0 */
+			p = "N";
+			break;
+
+		case SQL_OJ_CAPABILITIES:		/* ODBC 2.01 */
+			len = 4;
+			if (PG_VERSION_GE(conn, 7.1))
+			{					/* OJs in 7.1+ */
+				value = (SQL_OJ_LEFT |
+						 SQL_OJ_RIGHT |
+						 SQL_OJ_FULL |
+						 SQL_OJ_NESTED |
+						 SQL_OJ_NOT_ORDERED |
+						 SQL_OJ_INNER |
+						 SQL_OJ_ALL_COMPARISON_OPS);
+			}
+			else
+			{					/* OJs not in <7.1 */
+				value = 0;
+			}
+			break;
+
+		case SQL_ORDER_BY_COLUMNS_IN_SELECT:	/* ODBC 2.0 */
+			p = (PG_VERSION_LE(conn, 6.3)) ? "Y" : "N";
+			break;
+
+		case SQL_OUTER_JOINS:	/* ODBC 1.0 */
+			if (PG_VERSION_GE(conn, 7.1))
+			{					/* OJs in 7.1+ */
+				p = "Y";
+			}
+			else
+			{					/* OJs not in <7.1 */
+				p = "N";
+			}
+			break;
+
+		case SQL_OWNER_TERM:	/* ODBC 1.0 */
+			p = "owner";
+			break;
+
+		case SQL_OWNER_USAGE:	/* ODBC 2.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_POS_OPERATIONS:		/* ODBC 2.0 */
+			len = 4;
+			value = globals.lie ? (SQL_POS_POSITION | SQL_POS_REFRESH | SQL_POS_UPDATE | SQL_POS_DELETE | SQL_POS_ADD) : (SQL_POS_POSITION | SQL_POS_REFRESH);
+			break;
+
+		case SQL_POSITIONED_STATEMENTS: /* ODBC 2.0 */
+			len = 4;
+			value = globals.lie ? (SQL_PS_POSITIONED_DELETE |
+								   SQL_PS_POSITIONED_UPDATE |
+								   SQL_PS_SELECT_FOR_UPDATE) : 0;
+			break;
+
+		case SQL_PROCEDURE_TERM:		/* ODBC 1.0 */
+			p = "procedure";
+			break;
+
+		case SQL_PROCEDURES:	/* ODBC 1.0 */
+			p = "Y";
+			break;
+
+		case SQL_QUALIFIER_LOCATION:	/* ODBC 2.0 */
+			len = 2;
+			value = SQL_QL_START;
+			break;
+
+		case SQL_QUALIFIER_NAME_SEPARATOR:		/* ODBC 1.0 */
+			p = "";
+			break;
+
+		case SQL_QUALIFIER_TERM:		/* ODBC 1.0 */
+			p = "";
+			break;
+
+		case SQL_QUALIFIER_USAGE:		/* ODBC 2.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_QUOTED_IDENTIFIER_CASE:		/* ODBC 2.0 */
+			/* are "quoted" identifiers case-sensitive?  YES! */
+			len = 2;
+			value = SQL_IC_SENSITIVE;
+			break;
+
+		case SQL_ROW_UPDATES:	/* ODBC 1.0 */
+
+			/*
+			 * Driver doesn't support keyset-driven or mixed cursors, so
+			 * not much point in saying row updates are supported
+			 */
+			p = globals.lie ? "Y" : "N";
+			break;
+
+		case SQL_SCROLL_CONCURRENCY:	/* ODBC 1.0 */
+			len = 4;
+			value = globals.lie ? (SQL_SCCO_READ_ONLY |
+								   SQL_SCCO_LOCK |
+								   SQL_SCCO_OPT_ROWVER |
+							 SQL_SCCO_OPT_VALUES) : (SQL_SCCO_READ_ONLY);
+			break;
+
+		case SQL_SCROLL_OPTIONS:		/* ODBC 1.0 */
+			len = 4;
+			value = globals.lie ? (SQL_SO_FORWARD_ONLY |
+								   SQL_SO_STATIC |
+								   SQL_SO_KEYSET_DRIVEN |
+								   SQL_SO_DYNAMIC |
+								   SQL_SO_MIXED) : (globals.use_declarefetch ? SQL_SO_FORWARD_ONLY : (SQL_SO_FORWARD_ONLY | SQL_SO_STATIC));
+			break;
+
+		case SQL_SEARCH_PATTERN_ESCAPE: /* ODBC 1.0 */
+			p = "";
+			break;
+
+		case SQL_SERVER_NAME:	/* ODBC 1.0 */
+			p = CC_get_server(conn);
+			break;
+
+		case SQL_SPECIAL_CHARACTERS:	/* ODBC 2.0 */
+			p = "_";
+			break;
+
+		case SQL_STATIC_SENSITIVITY:	/* ODBC 2.0 */
+			len = 4;
+			value = globals.lie ? (SQL_SS_ADDITIONS | SQL_SS_DELETIONS | SQL_SS_UPDATES) : 0;
+			break;
+
+		case SQL_STRING_FUNCTIONS:		/* ODBC 1.0 */
+			len = 4;
+			value = (SQL_FN_STR_CONCAT |
+					 SQL_FN_STR_LCASE |
+					 SQL_FN_STR_LENGTH |
+					 SQL_FN_STR_LOCATE |
+					 SQL_FN_STR_LTRIM |
+					 SQL_FN_STR_RTRIM |
+					 SQL_FN_STR_SUBSTRING |
+					 SQL_FN_STR_UCASE);
+			break;
+
+		case SQL_SUBQUERIES:	/* ODBC 2.0 */
+			/* postgres 6.3 supports subqueries */
+			len = 4;
+			value = (SQL_SQ_QUANTIFIED |
+					 SQL_SQ_IN |
+					 SQL_SQ_EXISTS |
+					 SQL_SQ_COMPARISON);
+			break;
+
+		case SQL_SYSTEM_FUNCTIONS:		/* ODBC 1.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_TABLE_TERM:	/* ODBC 1.0 */
+			p = "table";
+			break;
+
+		case SQL_TIMEDATE_ADD_INTERVALS:		/* ODBC 2.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_TIMEDATE_DIFF_INTERVALS:		/* ODBC 2.0 */
+			len = 4;
+			value = 0;
+			break;
+
+		case SQL_TIMEDATE_FUNCTIONS:	/* ODBC 1.0 */
+			len = 4;
+			value = (SQL_FN_TD_NOW);
+			break;
+
+		case SQL_TXN_CAPABLE:	/* ODBC 1.0 */
+
+			/*
+			 * Postgres can deal with create or drop table statements in a
+			 * transaction
+			 */
+			len = 2;
+			value = SQL_TC_ALL;
+			break;
+
+		case SQL_TXN_ISOLATION_OPTION:	/* ODBC 1.0 */
+			len = 4;
+			value = SQL_TXN_READ_COMMITTED;		/* SQL_TXN_SERIALIZABLE; */
+			break;
+
+		case SQL_UNION: /* ODBC 2.0 */
+			/* unions with all supported in postgres 6.3 */
+			len = 4;
+			value = (SQL_U_UNION | SQL_U_UNION_ALL);
+			break;
+
+		case SQL_USER_NAME:		/* ODBC 1.0 */
+			p = CC_get_username(conn);
+			break;
+
+		default:
+			/* unrecognized key */
+			conn->errormsg = "Unrecognized key passed to SQLGetInfo.";
+			conn->errornumber = CONN_NOT_IMPLEMENTED_ERROR;
+			CC_log_error(func, "", conn);
+			return SQL_ERROR;
+	}
 
 	result = SQL_SUCCESS;
 
-	mylog("SQLGetInfo: p='%s', len=%d, value=%d, cbMax=%d\n", p?p:"<NULL>", len, value, cbInfoValueMax);
+	mylog("SQLGetInfo: p='%s', len=%d, value=%d, cbMax=%d\n", p ? p : "<NULL>", len, value, cbInfoValueMax);
 
-	/*	NOTE, that if rgbInfoValue is NULL, then no warnings or errors should
-		result and just pcbInfoValue is returned, which indicates what length 
-		would be required if a real buffer had been passed in.
-	*/
-	if (p) {  /* char/binary data */
+	/*
+	 * NOTE, that if rgbInfoValue is NULL, then no warnings or errors
+	 * should result and just pcbInfoValue is returned, which indicates
+	 * what length would be required if a real buffer had been passed in.
+	 */
+	if (p)
+	{							/* char/binary data */
 		len = strlen(p);
 
-		if (rgbInfoValue) {
-			strncpy_null((char *)rgbInfoValue, p, (size_t)cbInfoValueMax);
+		if (rgbInfoValue)
+		{
+			strncpy_null((char *) rgbInfoValue, p, (size_t) cbInfoValueMax);
 
-			if (len >= cbInfoValueMax)  {
+			if (len >= cbInfoValueMax)
+			{
 				result = SQL_SUCCESS_WITH_INFO;
 				conn->errornumber = STMT_TRUNCATED;
 				conn->errormsg = "The buffer was too small for the result.";
@@ -646,41 +693,46 @@ RETCODE result;
 		}
 	}
 
-	else {	/* numeric data */
-		
-		if (rgbInfoValue) {
-		
-			if (len == 2 ) 
-				*((WORD *)rgbInfoValue) = (WORD) value;
+	else
+	{							/* numeric data */
+
+		if (rgbInfoValue)
+		{
+
+			if (len == 2)
+				*((WORD *) rgbInfoValue) = (WORD) value;
 			else if (len == 4)
-				*((DWORD *)rgbInfoValue) = (DWORD) value;
+				*((DWORD *) rgbInfoValue) = (DWORD) value;
 		}
 	}
 
-	if (pcbInfoValue) 
+	if (pcbInfoValue)
 		*pcbInfoValue = len;
 
 	return result;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
 
-RETCODE SQL_API SQLGetTypeInfo(
-        HSTMT   hstmt,
-        SWORD   fSqlType)
+RETCODE SQL_API
+SQLGetTypeInfo(
+			   HSTMT hstmt,
+			   SWORD fSqlType)
 {
-static char *func = "SQLGetTypeInfo";
-StatementClass *stmt = (StatementClass *) hstmt;
-TupleNode *row;
-int i;
+	static char *func = "SQLGetTypeInfo";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	TupleNode  *row;
+	int			i;
+
 /* Int4 type; */
-Int4 pgType; 
-Int2 sqlType;
+	Int4		pgType;
+	Int2		sqlType;
 
 	mylog("%s: entering...fSqlType = %d\n", func, fSqlType);
 
-	if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -688,7 +740,8 @@ Int2 sqlType;
 
 	stmt->manual_result = TRUE;
 	stmt->result = QR_Constructor();
-	if( ! stmt->result) {
+	if (!stmt->result)
+	{
 		SC_log_error(func, "Error creating result.", stmt);
 		return SQL_ERROR;
 	}
@@ -712,13 +765,15 @@ Int2 sqlType;
 	QR_set_field_info(stmt->result, 13, "MINIMUM_SCALE", PG_TYPE_INT2, 2);
 	QR_set_field_info(stmt->result, 14, "MAXIMUM_SCALE", PG_TYPE_INT2, 2);
 
-	for(i=0, sqlType = sqlTypes[0]; sqlType; sqlType = sqlTypes[++i]) {
+	for (i = 0, sqlType = sqlTypes[0]; sqlType; sqlType = sqlTypes[++i])
+	{
 		pgType = sqltype_to_pgtype(sqlType);
 
-		if (fSqlType == SQL_ALL_TYPES || fSqlType == sqlType) {
-			row = (TupleNode *)malloc(sizeof(TupleNode) + (15 - 1)*sizeof(TupleField));
+		if (fSqlType == SQL_ALL_TYPES || fSqlType == sqlType)
+		{
+			row = (TupleNode *) malloc(sizeof(TupleNode) + (15 - 1) * sizeof(TupleField));
 
-			/*	These values can't be NULL */
+			/* These values can't be NULL */
 			set_tuplefield_string(&row->tuple[0], pgtype_to_name(stmt, pgType));
 			set_tuplefield_int2(&row->tuple[1], (Int2) sqlType);
 			set_tuplefield_int2(&row->tuple[6], pgtype_nullable(stmt, pgType));
@@ -726,10 +781,13 @@ Int2 sqlType;
 			set_tuplefield_int2(&row->tuple[8], pgtype_searchable(stmt, pgType));
 			set_tuplefield_int2(&row->tuple[10], pgtype_money(stmt, pgType));
 
-			/*	Localized data-source dependent data type name (always NULL) */
-			set_tuplefield_null(&row->tuple[12]);	
+			/*
+			 * Localized data-source dependent data type name (always
+			 * NULL)
+			 */
+			set_tuplefield_null(&row->tuple[12]);
 
-			/*	These values can be NULL */
+			/* These values can be NULL */
 			set_nullfield_int4(&row->tuple[2], pgtype_precision(stmt, pgType, PG_STATIC, PG_STATIC));
 			set_nullfield_string(&row->tuple[3], pgtype_literal_prefix(stmt, pgType));
 			set_nullfield_string(&row->tuple[4], pgtype_literal_suffix(stmt, pgType));
@@ -744,30 +802,34 @@ Int2 sqlType;
 	}
 
 
-    stmt->status = STMT_FINISHED;
-    stmt->currTuple = -1;
+	stmt->status = STMT_FINISHED;
+	stmt->currTuple = -1;
 	stmt->rowset_start = -1;
 	stmt->current_col = -1;
 
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLGetFunctions(
-        HDBC      hdbc,
-        UWORD     fFunction,
-        UWORD FAR *pfExists)
+RETCODE SQL_API
+SQLGetFunctions(
+				HDBC hdbc,
+				UWORD fFunction,
+				UWORD FAR * pfExists)
 {
-static char *func="SQLGetFunctions";
+	static char *func = "SQLGetFunctions";
 
-	mylog( "%s: entering...\n", func);
+	mylog("%s: entering...\n", func);
 
-    if (fFunction == SQL_API_ALL_FUNCTIONS) {
+	if (fFunction == SQL_API_ALL_FUNCTIONS)
+	{
 
-		if (globals.lie) {
-			int i;
-			memset(pfExists, 0, sizeof(UWORD)*100);
+		if (globals.lie)
+		{
+			int			i;
+
+			memset(pfExists, 0, sizeof(UWORD) * 100);
 
 			pfExists[SQL_API_SQLALLOCENV] = TRUE;
 			pfExists[SQL_API_SQLFREEENV] = TRUE;
@@ -776,179 +838,309 @@ static char *func="SQLGetFunctions";
 			for (i = SQL_EXT_API_START; i <= SQL_EXT_API_LAST; i++)
 				pfExists[i] = TRUE;
 		}
-		else {
-			memset(pfExists, 0, sizeof(UWORD)*100);
+		else
+		{
+			memset(pfExists, 0, sizeof(UWORD) * 100);
 
 			/* ODBC core functions */
-			pfExists[SQL_API_SQLALLOCCONNECT]     = TRUE;
-			pfExists[SQL_API_SQLALLOCENV]         = TRUE;
-			pfExists[SQL_API_SQLALLOCSTMT]        = TRUE;
-			pfExists[SQL_API_SQLBINDCOL]          = TRUE;  
-			pfExists[SQL_API_SQLCANCEL]           = TRUE;
-			pfExists[SQL_API_SQLCOLATTRIBUTES]    = TRUE;
-			pfExists[SQL_API_SQLCONNECT]          = TRUE;
-			pfExists[SQL_API_SQLDESCRIBECOL]      = TRUE;  /* partial */
-			pfExists[SQL_API_SQLDISCONNECT]       = TRUE;
-			pfExists[SQL_API_SQLERROR]            = TRUE;
-			pfExists[SQL_API_SQLEXECDIRECT]       = TRUE;
-			pfExists[SQL_API_SQLEXECUTE]          = TRUE;
-			pfExists[SQL_API_SQLFETCH]            = TRUE;
-			pfExists[SQL_API_SQLFREECONNECT]      = TRUE;
-			pfExists[SQL_API_SQLFREEENV]          = TRUE;
-			pfExists[SQL_API_SQLFREESTMT]         = TRUE;
-			pfExists[SQL_API_SQLGETCURSORNAME]    = TRUE;
-			pfExists[SQL_API_SQLNUMRESULTCOLS]    = TRUE;
-			pfExists[SQL_API_SQLPREPARE]          = TRUE;  /* complete? */
-			pfExists[SQL_API_SQLROWCOUNT]         = TRUE;
-			pfExists[SQL_API_SQLSETCURSORNAME]    = TRUE;
-			pfExists[SQL_API_SQLSETPARAM]         = FALSE; /* odbc 1.0 */
-			pfExists[SQL_API_SQLTRANSACT]         = TRUE;
+			pfExists[SQL_API_SQLALLOCCONNECT] = TRUE;
+			pfExists[SQL_API_SQLALLOCENV] = TRUE;
+			pfExists[SQL_API_SQLALLOCSTMT] = TRUE;
+			pfExists[SQL_API_SQLBINDCOL] = TRUE;
+			pfExists[SQL_API_SQLCANCEL] = TRUE;
+			pfExists[SQL_API_SQLCOLATTRIBUTES] = TRUE;
+			pfExists[SQL_API_SQLCONNECT] = TRUE;
+			pfExists[SQL_API_SQLDESCRIBECOL] = TRUE;	/* partial */
+			pfExists[SQL_API_SQLDISCONNECT] = TRUE;
+			pfExists[SQL_API_SQLERROR] = TRUE;
+			pfExists[SQL_API_SQLEXECDIRECT] = TRUE;
+			pfExists[SQL_API_SQLEXECUTE] = TRUE;
+			pfExists[SQL_API_SQLFETCH] = TRUE;
+			pfExists[SQL_API_SQLFREECONNECT] = TRUE;
+			pfExists[SQL_API_SQLFREEENV] = TRUE;
+			pfExists[SQL_API_SQLFREESTMT] = TRUE;
+			pfExists[SQL_API_SQLGETCURSORNAME] = TRUE;
+			pfExists[SQL_API_SQLNUMRESULTCOLS] = TRUE;
+			pfExists[SQL_API_SQLPREPARE] = TRUE;		/* complete? */
+			pfExists[SQL_API_SQLROWCOUNT] = TRUE;
+			pfExists[SQL_API_SQLSETCURSORNAME] = TRUE;
+			pfExists[SQL_API_SQLSETPARAM] = FALSE;		/* odbc 1.0 */
+			pfExists[SQL_API_SQLTRANSACT] = TRUE;
 
 			/* ODBC level 1 functions */
-			pfExists[SQL_API_SQLBINDPARAMETER]    = TRUE;
-			pfExists[SQL_API_SQLCOLUMNS]          = TRUE;
-			pfExists[SQL_API_SQLDRIVERCONNECT]    = TRUE;
-			pfExists[SQL_API_SQLGETCONNECTOPTION] = TRUE;  /* partial */
-			pfExists[SQL_API_SQLGETDATA]          = TRUE;
-			pfExists[SQL_API_SQLGETFUNCTIONS]     = TRUE;                                                       
-			pfExists[SQL_API_SQLGETINFO]          = TRUE;
-			pfExists[SQL_API_SQLGETSTMTOPTION]    = TRUE;  /* partial */
-			pfExists[SQL_API_SQLGETTYPEINFO]      = TRUE;
-			pfExists[SQL_API_SQLPARAMDATA]        = TRUE;
-			pfExists[SQL_API_SQLPUTDATA]          = TRUE;
-			pfExists[SQL_API_SQLSETCONNECTOPTION] = TRUE;  /* partial */
-			pfExists[SQL_API_SQLSETSTMTOPTION]    = TRUE;
-			pfExists[SQL_API_SQLSPECIALCOLUMNS]   = TRUE;
-			pfExists[SQL_API_SQLSTATISTICS]       = TRUE;
-			pfExists[SQL_API_SQLTABLES]           = TRUE;
+			pfExists[SQL_API_SQLBINDPARAMETER] = TRUE;
+			pfExists[SQL_API_SQLCOLUMNS] = TRUE;
+			pfExists[SQL_API_SQLDRIVERCONNECT] = TRUE;
+			pfExists[SQL_API_SQLGETCONNECTOPTION] = TRUE;		/* partial */
+			pfExists[SQL_API_SQLGETDATA] = TRUE;
+			pfExists[SQL_API_SQLGETFUNCTIONS] = TRUE;
+			pfExists[SQL_API_SQLGETINFO] = TRUE;
+			pfExists[SQL_API_SQLGETSTMTOPTION] = TRUE;	/* partial */
+			pfExists[SQL_API_SQLGETTYPEINFO] = TRUE;
+			pfExists[SQL_API_SQLPARAMDATA] = TRUE;
+			pfExists[SQL_API_SQLPUTDATA] = TRUE;
+			pfExists[SQL_API_SQLSETCONNECTOPTION] = TRUE;		/* partial */
+			pfExists[SQL_API_SQLSETSTMTOPTION] = TRUE;
+			pfExists[SQL_API_SQLSPECIALCOLUMNS] = TRUE;
+			pfExists[SQL_API_SQLSTATISTICS] = TRUE;
+			pfExists[SQL_API_SQLTABLES] = TRUE;
 
 			/* ODBC level 2 functions */
-			pfExists[SQL_API_SQLBROWSECONNECT]    = FALSE;
+			pfExists[SQL_API_SQLBROWSECONNECT] = FALSE;
 			pfExists[SQL_API_SQLCOLUMNPRIVILEGES] = FALSE;
-			pfExists[SQL_API_SQLDATASOURCES]      = FALSE;  /* only implemented by DM */
-			pfExists[SQL_API_SQLDESCRIBEPARAM]    = FALSE;	/* not properly implemented */
-			pfExists[SQL_API_SQLDRIVERS]          = FALSE;  /* only implemented by DM */
-			pfExists[SQL_API_SQLEXTENDEDFETCH]    = TRUE;
-			pfExists[SQL_API_SQLFOREIGNKEYS]      = TRUE;
-			pfExists[SQL_API_SQLMORERESULTS]      = TRUE;
-			pfExists[SQL_API_SQLNATIVESQL]        = TRUE;
-			pfExists[SQL_API_SQLNUMPARAMS]        = TRUE;
-			pfExists[SQL_API_SQLPARAMOPTIONS]     = FALSE;
-			pfExists[SQL_API_SQLPRIMARYKEYS]      = TRUE;
+			pfExists[SQL_API_SQLDATASOURCES] = FALSE;	/* only implemented by
+														 * DM */
+			pfExists[SQL_API_SQLDESCRIBEPARAM] = FALSE; /* not properly
+														 * implemented */
+			pfExists[SQL_API_SQLDRIVERS] = FALSE;		/* only implemented by
+														 * DM */
+			pfExists[SQL_API_SQLEXTENDEDFETCH] = TRUE;
+			pfExists[SQL_API_SQLFOREIGNKEYS] = TRUE;
+			pfExists[SQL_API_SQLMORERESULTS] = TRUE;
+			pfExists[SQL_API_SQLNATIVESQL] = TRUE;
+			pfExists[SQL_API_SQLNUMPARAMS] = TRUE;
+			pfExists[SQL_API_SQLPARAMOPTIONS] = FALSE;
+			pfExists[SQL_API_SQLPRIMARYKEYS] = TRUE;
 			pfExists[SQL_API_SQLPROCEDURECOLUMNS] = FALSE;
-			pfExists[SQL_API_SQLPROCEDURES]       = FALSE;
-			pfExists[SQL_API_SQLSETPOS]           = TRUE;
-			pfExists[SQL_API_SQLSETSCROLLOPTIONS] = TRUE;	/* odbc 1.0 */
-			pfExists[SQL_API_SQLTABLEPRIVILEGES]  = FALSE;
+			pfExists[SQL_API_SQLPROCEDURES] = FALSE;
+			pfExists[SQL_API_SQLSETPOS] = TRUE;
+			pfExists[SQL_API_SQLSETSCROLLOPTIONS] = TRUE;		/* odbc 1.0 */
+			pfExists[SQL_API_SQLTABLEPRIVILEGES] = FALSE;
 		}
-    } else {
+	}
+	else
+	{
 
 		if (globals.lie)
 			*pfExists = TRUE;
 
-		else {
-
-			switch(fFunction) {
-			case SQL_API_SQLALLOCCONNECT:     *pfExists = TRUE; break;
-			case SQL_API_SQLALLOCENV:         *pfExists = TRUE; break;
-			case SQL_API_SQLALLOCSTMT:        *pfExists = TRUE; break;
-			case SQL_API_SQLBINDCOL:          *pfExists = TRUE; break;
-			case SQL_API_SQLCANCEL:           *pfExists = TRUE; break;
-			case SQL_API_SQLCOLATTRIBUTES:    *pfExists = TRUE; break;
-			case SQL_API_SQLCONNECT:          *pfExists = TRUE; break;
-			case SQL_API_SQLDESCRIBECOL:      *pfExists = TRUE; break;  /* partial */
-			case SQL_API_SQLDISCONNECT:       *pfExists = TRUE; break;
-			case SQL_API_SQLERROR:            *pfExists = TRUE; break;
-			case SQL_API_SQLEXECDIRECT:       *pfExists = TRUE; break;
-			case SQL_API_SQLEXECUTE:          *pfExists = TRUE; break;
-			case SQL_API_SQLFETCH:            *pfExists = TRUE; break;
-			case SQL_API_SQLFREECONNECT:      *pfExists = TRUE; break;
-			case SQL_API_SQLFREEENV:          *pfExists = TRUE; break;
-			case SQL_API_SQLFREESTMT:         *pfExists = TRUE; break;
-			case SQL_API_SQLGETCURSORNAME:    *pfExists = TRUE; break;
-			case SQL_API_SQLNUMRESULTCOLS:    *pfExists = TRUE; break;
-			case SQL_API_SQLPREPARE:          *pfExists = TRUE; break;
-			case SQL_API_SQLROWCOUNT:         *pfExists = TRUE; break;
-			case SQL_API_SQLSETCURSORNAME:    *pfExists = TRUE; break;
-			case SQL_API_SQLSETPARAM:         *pfExists = FALSE; break; /* odbc 1.0 */
-			case SQL_API_SQLTRANSACT:         *pfExists = TRUE; break;
-
-				/* ODBC level 1 functions */
-			case SQL_API_SQLBINDPARAMETER:    *pfExists = TRUE; break;
-			case SQL_API_SQLCOLUMNS:          *pfExists = TRUE; break;
-			case SQL_API_SQLDRIVERCONNECT:    *pfExists = TRUE; break;
-			case SQL_API_SQLGETCONNECTOPTION: *pfExists = TRUE; break;  /* partial */
-			case SQL_API_SQLGETDATA:          *pfExists = TRUE; break;
-			case SQL_API_SQLGETFUNCTIONS:     *pfExists = TRUE; break;
-			case SQL_API_SQLGETINFO:          *pfExists = TRUE; break;
-			case SQL_API_SQLGETSTMTOPTION:    *pfExists = TRUE; break;  /* partial */
-			case SQL_API_SQLGETTYPEINFO:      *pfExists = TRUE; break;
-			case SQL_API_SQLPARAMDATA:        *pfExists = TRUE; break;
-			case SQL_API_SQLPUTDATA:          *pfExists = TRUE; break;
-			case SQL_API_SQLSETCONNECTOPTION: *pfExists = TRUE; break;  /* partial */
-			case SQL_API_SQLSETSTMTOPTION:    *pfExists = TRUE; break;
-			case SQL_API_SQLSPECIALCOLUMNS:   *pfExists = TRUE; break;
-			case SQL_API_SQLSTATISTICS:       *pfExists = TRUE; break;
-			case SQL_API_SQLTABLES:           *pfExists = TRUE; break;
-
-				/* ODBC level 2 functions */
-			case SQL_API_SQLBROWSECONNECT:    *pfExists = FALSE; break;
-			case SQL_API_SQLCOLUMNPRIVILEGES: *pfExists = FALSE; break;
-			case SQL_API_SQLDATASOURCES:      *pfExists = FALSE; break;  /* only implemented by DM */
-			case SQL_API_SQLDESCRIBEPARAM:    *pfExists = FALSE; break;  /* not properly implemented */
-			case SQL_API_SQLDRIVERS:          *pfExists = FALSE; break;  /* only implemented by DM */
-			case SQL_API_SQLEXTENDEDFETCH:    *pfExists = TRUE; break;
-			case SQL_API_SQLFOREIGNKEYS:      *pfExists = TRUE; break;
-			case SQL_API_SQLMORERESULTS:      *pfExists = TRUE; break;
-			case SQL_API_SQLNATIVESQL:        *pfExists = TRUE; break;
-			case SQL_API_SQLNUMPARAMS:        *pfExists = TRUE; break;
-			case SQL_API_SQLPARAMOPTIONS:     *pfExists = FALSE; break;
-			case SQL_API_SQLPRIMARYKEYS:      *pfExists = TRUE; break;
-			case SQL_API_SQLPROCEDURECOLUMNS: *pfExists = FALSE; break;
-			case SQL_API_SQLPROCEDURES:       *pfExists = FALSE; break;
-			case SQL_API_SQLSETPOS:           *pfExists = TRUE; break;
-			case SQL_API_SQLSETSCROLLOPTIONS: *pfExists = TRUE; break;	/* odbc 1.0 */
-			case SQL_API_SQLTABLEPRIVILEGES:  *pfExists = FALSE; break;
+		else
+		{
+
+			switch (fFunction)
+			{
+				case SQL_API_SQLALLOCCONNECT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLALLOCENV:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLALLOCSTMT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLBINDCOL:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLCANCEL:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLCOLATTRIBUTES:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLCONNECT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLDESCRIBECOL:
+					*pfExists = TRUE;
+					break;		/* partial */
+				case SQL_API_SQLDISCONNECT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLERROR:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLEXECDIRECT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLEXECUTE:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLFETCH:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLFREECONNECT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLFREEENV:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLFREESTMT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLGETCURSORNAME:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLNUMRESULTCOLS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLPREPARE:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLROWCOUNT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLSETCURSORNAME:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLSETPARAM:
+					*pfExists = FALSE;
+					break;		/* odbc 1.0 */
+				case SQL_API_SQLTRANSACT:
+					*pfExists = TRUE;
+					break;
+
+					/* ODBC level 1 functions */
+				case SQL_API_SQLBINDPARAMETER:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLCOLUMNS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLDRIVERCONNECT:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLGETCONNECTOPTION:
+					*pfExists = TRUE;
+					break;		/* partial */
+				case SQL_API_SQLGETDATA:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLGETFUNCTIONS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLGETINFO:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLGETSTMTOPTION:
+					*pfExists = TRUE;
+					break;		/* partial */
+				case SQL_API_SQLGETTYPEINFO:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLPARAMDATA:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLPUTDATA:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLSETCONNECTOPTION:
+					*pfExists = TRUE;
+					break;		/* partial */
+				case SQL_API_SQLSETSTMTOPTION:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLSPECIALCOLUMNS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLSTATISTICS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLTABLES:
+					*pfExists = TRUE;
+					break;
+
+					/* ODBC level 2 functions */
+				case SQL_API_SQLBROWSECONNECT:
+					*pfExists = FALSE;
+					break;
+				case SQL_API_SQLCOLUMNPRIVILEGES:
+					*pfExists = FALSE;
+					break;
+				case SQL_API_SQLDATASOURCES:
+					*pfExists = FALSE;
+					break;		/* only implemented by DM */
+				case SQL_API_SQLDESCRIBEPARAM:
+					*pfExists = FALSE;
+					break;		/* not properly implemented */
+				case SQL_API_SQLDRIVERS:
+					*pfExists = FALSE;
+					break;		/* only implemented by DM */
+				case SQL_API_SQLEXTENDEDFETCH:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLFOREIGNKEYS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLMORERESULTS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLNATIVESQL:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLNUMPARAMS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLPARAMOPTIONS:
+					*pfExists = FALSE;
+					break;
+				case SQL_API_SQLPRIMARYKEYS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLPROCEDURECOLUMNS:
+					*pfExists = FALSE;
+					break;
+				case SQL_API_SQLPROCEDURES:
+					*pfExists = FALSE;
+					break;
+				case SQL_API_SQLSETPOS:
+					*pfExists = TRUE;
+					break;
+				case SQL_API_SQLSETSCROLLOPTIONS:
+					*pfExists = TRUE;
+					break;		/* odbc 1.0 */
+				case SQL_API_SQLTABLEPRIVILEGES:
+					*pfExists = FALSE;
+					break;
 			}
 		}
-    }
+	}
 
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
 
 
-RETCODE SQL_API SQLTables(
-                          HSTMT       hstmt,
-                          UCHAR FAR * szTableQualifier,
-                          SWORD       cbTableQualifier,
-                          UCHAR FAR * szTableOwner,
-                          SWORD       cbTableOwner,
-                          UCHAR FAR * szTableName,
-                          SWORD       cbTableName,
-                          UCHAR FAR * szTableType,
-                          SWORD       cbTableType)
+RETCODE SQL_API
+SQLTables(
+		  HSTMT hstmt,
+		  UCHAR FAR * szTableQualifier,
+		  SWORD cbTableQualifier,
+		  UCHAR FAR * szTableOwner,
+		  SWORD cbTableOwner,
+		  UCHAR FAR * szTableName,
+		  SWORD cbTableName,
+		  UCHAR FAR * szTableType,
+		  SWORD cbTableType)
 {
-static char *func = "SQLTables";
-StatementClass *stmt = (StatementClass *) hstmt;
-StatementClass *tbl_stmt;
-TupleNode *row;
-HSTMT htbl_stmt;
-RETCODE result;
-char *tableType;
-char tables_query[STD_STATEMENT_LEN];
-char table_name[MAX_INFO_STRING], table_owner[MAX_INFO_STRING], relkind_or_hasrules[MAX_INFO_STRING];
-ConnectionClass *conn;
-ConnInfo *ci;
-char *prefix[32], prefixes[MEDIUM_REGISTRY_LEN];
-char *table_type[32], table_types[MAX_INFO_STRING];
-char show_system_tables, show_regular_tables, show_views;
-char regular_table, view, systable;
-int i;
-
-mylog("%s: entering...stmt=%u\n", func, stmt);
-
-	if( ! stmt) {
+	static char *func = "SQLTables";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	StatementClass *tbl_stmt;
+	TupleNode  *row;
+	HSTMT		htbl_stmt;
+	RETCODE		result;
+	char	   *tableType;
+	char		tables_query[STD_STATEMENT_LEN];
+	char		table_name[MAX_INFO_STRING],
+				table_owner[MAX_INFO_STRING],
+				relkind_or_hasrules[MAX_INFO_STRING];
+	ConnectionClass *conn;
+	ConnInfo   *ci;
+	char	   *prefix[32],
+				prefixes[MEDIUM_REGISTRY_LEN];
+	char	   *table_type[32],
+				table_types[MAX_INFO_STRING];
+	char		show_system_tables,
+				show_regular_tables,
+				show_views;
+	char		regular_table,
+				view,
+				systable;
+	int			i;
+
+	mylog("%s: entering...stmt=%u\n", func, stmt);
+
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -959,8 +1151,9 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 	conn = (ConnectionClass *) (stmt->hdbc);
 	ci = &stmt->hdbc->connInfo;
 
-	result = SQLAllocStmt( stmt->hdbc, &htbl_stmt);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(stmt->hdbc, &htbl_stmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		stmt->errormsg = "Couldn't allocate statement for SQLTables result.";
 		SC_log_error(func, "", stmt);
@@ -969,14 +1162,17 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 	tbl_stmt = (StatementClass *) htbl_stmt;
 
 	/* ********************************************************************** */
-	/*	Create the query to find out the tables */
+	/* Create the query to find out the tables */
 	/* ********************************************************************** */
 
-	if (PG_VERSION_GE(conn, 7.1)) { /* view is represented by its relkind since 7.1 */
+	if (PG_VERSION_GE(conn, 7.1))
+	{							/* view is represented by its relkind
+								 * since 7.1 */
 		strcpy(tables_query, "select relname, usename, relkind from pg_class, pg_user");
 		strcat(tables_query, " where relkind in ('r', 'v')");
 	}
-	else {
+	else
+	{
 		strcpy(tables_query, "select relname, usename, relhasrules from pg_class, pg_user");
 		strcat(tables_query, " where relkind = 'r'");
 	}
@@ -985,58 +1181,64 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 	my_strcat(tables_query, " and relname like '%.*s'", szTableName, cbTableName);
 
 
-	/*	Parse the extra systable prefix  */
+	/* Parse the extra systable prefix	*/
 	strcpy(prefixes, globals.extra_systable_prefixes);
 	i = 0;
 	prefix[i] = strtok(prefixes, ";");
-	while (prefix[i] && i<32) {
+	while (prefix[i] && i < 32)
+	{
 		prefix[++i] = strtok(NULL, ";");
 	}
 
-	/*	Parse the desired table types to return */
+	/* Parse the desired table types to return */
 	show_system_tables = FALSE;
 	show_regular_tables = FALSE;
 	show_views = FALSE;
 
-	/*	make_string mallocs memory */
+	/* make_string mallocs memory */
 	tableType = make_string(szTableType, cbTableType, NULL);
-	if (tableType) {
+	if (tableType)
+	{
 		strcpy(table_types, tableType);
 		free(tableType);
 		i = 0;
 		table_type[i] = strtok(table_types, ",");
-		while (table_type[i] && i<32) {
+		while (table_type[i] && i < 32)
 			table_type[++i] = strtok(NULL, ",");
-		}
 
-		/*	Check for desired table types to return */
+		/* Check for desired table types to return */
 		i = 0;
-		while (table_type[i]) {
-			if ( strstr(table_type[i], "SYSTEM TABLE"))
+		while (table_type[i])
+		{
+			if (strstr(table_type[i], "SYSTEM TABLE"))
 				show_system_tables = TRUE;
-			else if ( strstr(table_type[i], "TABLE"))
+			else if (strstr(table_type[i], "TABLE"))
 				show_regular_tables = TRUE;
-			else if ( strstr(table_type[i], "VIEW"))
+			else if (strstr(table_type[i], "VIEW"))
 				show_views = TRUE;
 
 			i++;
 		}
 	}
-	else {
+	else
+	{
 		show_regular_tables = TRUE;
 		show_views = TRUE;
 	}
 
-	/*  If not interested in SYSTEM TABLES then filter them out
-		to save some time on the query.  If treating system tables
-		as regular tables, then dont filter either.
-	*/
-	if ( ! atoi(ci->show_system_tables) && ! show_system_tables) {
+	/*
+	 * If not interested in SYSTEM TABLES then filter them out to save
+	 * some time on the query.	If treating system tables as regular
+	 * tables, then dont filter either.
+	 */
+	if (!atoi(ci->show_system_tables) && !show_system_tables)
+	{
 		strcat(tables_query, " and relname !~ '^" POSTGRES_SYS_PREFIX);
 
-		/*	Also filter out user-defined system table types */
+		/* Also filter out user-defined system table types */
 		i = 0;
-		while(prefix[i]) {
+		while (prefix[i])
+		{
 			strcat(tables_query, "|^");
 			strcat(tables_query, prefix[i]);
 			i++;
@@ -1047,8 +1249,9 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 
 
 	/* match users */
-	if (PG_VERSION_LT(conn, 7.1)) /* filter out large objects in older versions */ 
-		strcat(tables_query, " and relname !~ '^xinv[0-9]+'"); 
+	if (PG_VERSION_LT(conn, 7.1))		/* filter out large objects in
+										 * older versions */
+		strcat(tables_query, " and relname !~ '^xinv[0-9]+'");
 
 	strcat(tables_query, " and usesysid = relowner");
 	strcat(tables_query, " order by relname");
@@ -1056,7 +1259,8 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 	/* ********************************************************************** */
 
 	result = SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = SC_create_errormsg(htbl_stmt);
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
@@ -1064,37 +1268,41 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 		return SQL_ERROR;
 	}
 
-    result = SQLBindCol(htbl_stmt, 1, SQL_C_CHAR,
-                        table_name, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(htbl_stmt, 1, SQL_C_CHAR,
+						table_name, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = tbl_stmt->errormsg;
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(htbl_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(htbl_stmt, 2, SQL_C_CHAR,
-                        table_owner, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(htbl_stmt, 2, SQL_C_CHAR,
+						table_owner, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = tbl_stmt->errormsg;
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(htbl_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
-    result = SQLBindCol(htbl_stmt, 3, SQL_C_CHAR,
-                        relkind_or_hasrules, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		return SQL_ERROR;
+	}
+	result = SQLBindCol(htbl_stmt, 3, SQL_C_CHAR,
+						relkind_or_hasrules, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = tbl_stmt->errormsg;
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(htbl_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
 	stmt->result = QR_Constructor();
-	if(!stmt->result) {
+	if (!stmt->result)
+	{
 		stmt->errormsg = "Couldn't allocate memory for SQLTables result.";
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		SC_log_error(func, "", stmt);
@@ -1103,9 +1311,13 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 	}
 
 	/* the binding structure for a statement is not set up until */
-	/* a statement is actually executed, so we'll have to do this ourselves. */
+
+	/*
+	 * a statement is actually executed, so we'll have to do this
+	 * ourselves.
+	 */
 	extend_bindings(stmt, 5);
-	
+
 	/* set the field names */
 	QR_set_num_fields(stmt->result, 5);
 	QR_set_field_info(stmt->result, 0, "TABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
@@ -1116,23 +1328,28 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 
 	/* add the tuples */
 	result = SQLFetch(htbl_stmt);
-	while((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)) {
+	while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO))
+	{
 
-		/*	Determine if this table name is a system table.
-			If treating system tables as regular tables, then 
-			no need to do this test.
-		*/		
+		/*
+		 * Determine if this table name is a system table. If treating
+		 * system tables as regular tables, then no need to do this test.
+		 */
 		systable = FALSE;
-		if( ! atoi(ci->show_system_tables)) {
+		if (!atoi(ci->show_system_tables))
+		{
 
-			if ( strncmp(table_name, POSTGRES_SYS_PREFIX, strlen(POSTGRES_SYS_PREFIX)) == 0)
+			if (strncmp(table_name, POSTGRES_SYS_PREFIX, strlen(POSTGRES_SYS_PREFIX)) == 0)
 				systable = TRUE;
 
-			else {			/* Check extra system table prefixes */
+			else
+			{					/* Check extra system table prefixes */
 				i = 0;
-				while (prefix[i]) {
+				while (prefix[i])
+				{
 					mylog("table_name='%s', prefix[%d]='%s'\n", table_name, i, prefix[i]);
-					if (strncmp(table_name, prefix[i], strlen(prefix[i])) == 0) {
+					if (strncmp(table_name, prefix[i], strlen(prefix[i])) == 0)
+					{
 						systable = TRUE;
 						break;
 					}
@@ -1141,24 +1358,29 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 			}
 		}
 
-		/*	Determine if the table name is a view */
-		if (PG_VERSION_GE(conn, 7.1)) /* view is represented by its relkind since 7.1 */
+		/* Determine if the table name is a view */
+		if (PG_VERSION_GE(conn, 7.1))	/* view is represented by its
+										 * relkind since 7.1 */
 			view = (relkind_or_hasrules[0] == 'v');
 		else
 			view = (relkind_or_hasrules[0] == '1');
 
-		/*	It must be a regular table */
-		regular_table = ( ! systable && ! view);
+		/* It must be a regular table */
+		regular_table = (!systable && !view);
+
 
+		/* Include the row in the result set if meets all criteria */
 
-		/*	Include the row in the result set if meets all criteria */
-		/*	NOTE: Unsupported table types (i.e., LOCAL TEMPORARY, ALIAS, etc)
-					will return nothing */
-		if ( (systable && show_system_tables) ||
-			 (view && show_views) || 
-			 (regular_table && show_regular_tables)) {
+		/*
+		 * NOTE: Unsupported table types (i.e., LOCAL TEMPORARY, ALIAS,
+		 * etc) will return nothing
+		 */
+		if ((systable && show_system_tables) ||
+			(view && show_views) ||
+			(regular_table && show_regular_tables))
+		{
 
-			row = (TupleNode *)malloc(sizeof(TupleNode) + (5 - 1) * sizeof(TupleField));
+			row = (TupleNode *) malloc(sizeof(TupleNode) + (5 - 1) * sizeof(TupleField));
 
 			set_tuplefield_string(&row->tuple[0], "");
 
@@ -1178,8 +1400,9 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 			QR_add_tuple(stmt->result, row);
 		}
 		result = SQLFetch(htbl_stmt);
-    }
-	if(result != SQL_NO_DATA_FOUND) {
+	}
+	if (result != SQL_NO_DATA_FOUND)
+	{
 		stmt->errormsg = SC_create_errormsg(htbl_stmt);
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
@@ -1204,36 +1427,48 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 
 
 
-RETCODE SQL_API SQLColumns(
-                           HSTMT        hstmt,
-                           UCHAR FAR *  szTableQualifier,
-                           SWORD        cbTableQualifier,
-                           UCHAR FAR *  szTableOwner,
-                           SWORD        cbTableOwner,
-                           UCHAR FAR *  szTableName,
-                           SWORD        cbTableName,
-                           UCHAR FAR *  szColumnName,
-                           SWORD        cbColumnName)
+RETCODE SQL_API
+SQLColumns(
+		   HSTMT hstmt,
+		   UCHAR FAR * szTableQualifier,
+		   SWORD cbTableQualifier,
+		   UCHAR FAR * szTableOwner,
+		   SWORD cbTableOwner,
+		   UCHAR FAR * szTableName,
+		   SWORD cbTableName,
+		   UCHAR FAR * szColumnName,
+		   SWORD cbColumnName)
 {
-static char *func = "SQLColumns";
-StatementClass *stmt = (StatementClass *) hstmt;
-TupleNode *row;
-HSTMT hcol_stmt;
-StatementClass *col_stmt;
-char columns_query[STD_STATEMENT_LEN];
-RETCODE result;
-char table_owner[MAX_INFO_STRING], table_name[MAX_INFO_STRING], field_name[MAX_INFO_STRING], field_type_name[MAX_INFO_STRING];
-Int2 field_number, result_cols, scale;
-Int4 field_type, the_type, field_length, mod_length, precision;
-char useStaticPrecision;
-char not_null[MAX_INFO_STRING], relhasrules[MAX_INFO_STRING];
-ConnInfo *ci;
-ConnectionClass *conn;
+	static char *func = "SQLColumns";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	TupleNode  *row;
+	HSTMT		hcol_stmt;
+	StatementClass *col_stmt;
+	char		columns_query[STD_STATEMENT_LEN];
+	RETCODE		result;
+	char		table_owner[MAX_INFO_STRING],
+				table_name[MAX_INFO_STRING],
+				field_name[MAX_INFO_STRING],
+				field_type_name[MAX_INFO_STRING];
+	Int2		field_number,
+				result_cols,
+				scale;
+	Int4		field_type,
+				the_type,
+				field_length,
+				mod_length,
+				precision;
+	char		useStaticPrecision;
+	char		not_null[MAX_INFO_STRING],
+				relhasrules[MAX_INFO_STRING];
+	ConnInfo   *ci;
+	ConnectionClass *conn;
 
 
 	mylog("%s: entering...stmt=%u\n", func, stmt);
 
-	if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -1245,13 +1480,17 @@ ConnectionClass *conn;
 	ci = &stmt->hdbc->connInfo;
 
 	/* ********************************************************************** */
-	/*	Create the query to find out the columns (Note: pre 6.3 did not have the atttypmod field) */
+
+	/*
+	 * Create the query to find out the columns (Note: pre 6.3 did not
+	 * have the atttypmod field)
+	 */
 	/* ********************************************************************** */
 	sprintf(columns_query, "select u.usename, c.relname, a.attname, a.atttypid"
-			", t.typname, a.attnum, a.attlen, %s, a.attnotnull, c.relhasrules"
+	   ", t.typname, a.attnum, a.attlen, %s, a.attnotnull, c.relhasrules"
 			" from pg_user u, pg_class c, pg_attribute a, pg_type t"
 			" where u.usesysid = c.relowner"
-			" and c.oid= a.attrelid and a.atttypid = t.oid and (a.attnum > 0)",
+	  " and c.oid= a.attrelid and a.atttypid = t.oid and (a.attnum > 0)",
 			PG_VERSION_LE(conn, 6.2) ? "a.attlen" : "a.atttypmod");
 
 	my_strcat(columns_query, " and c.relname like '%.*s'", szTableName, cbTableName);
@@ -1260,186 +1499,206 @@ ConnectionClass *conn;
 
 	/* give the output in the order the columns were defined */
 	/* when the table was created */
-    strcat(columns_query, " order by attnum");
-    /* ********************************************************************** */
+	strcat(columns_query, " order by attnum");
+	/* ********************************************************************** */
 
-    result = SQLAllocStmt( stmt->hdbc, &hcol_stmt);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(stmt->hdbc, &hcol_stmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		stmt->errormsg = "Couldn't allocate statement for SQLColumns result.";
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 	col_stmt = (StatementClass *) hcol_stmt;
 
 	mylog("SQLColumns: hcol_stmt = %u, col_stmt = %u\n", hcol_stmt, col_stmt);
 
-    result = SQLExecDirect(hcol_stmt, columns_query,
-                           strlen(columns_query));
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLExecDirect(hcol_stmt, columns_query,
+						   strlen(columns_query));
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = SC_create_errormsg(hcol_stmt);
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 1, SQL_C_CHAR,
-                        table_owner, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 1, SQL_C_CHAR,
+						table_owner, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 2, SQL_C_CHAR,
-                        table_name, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 2, SQL_C_CHAR,
+						table_name, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 3, SQL_C_CHAR,
-                        field_name, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 3, SQL_C_CHAR,
+						field_name, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 4, SQL_C_LONG,
-                        &field_type, 4, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 4, SQL_C_LONG,
+						&field_type, 4, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 5, SQL_C_CHAR,
-                        field_type_name, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 5, SQL_C_CHAR,
+						field_type_name, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 6, SQL_C_SHORT,
-                        &field_number, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 6, SQL_C_SHORT,
+						&field_number, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 7, SQL_C_LONG,
-                        &field_length, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 7, SQL_C_LONG,
+						&field_length, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 8, SQL_C_LONG,
-                        &mod_length, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 8, SQL_C_LONG,
+						&mod_length, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 9, SQL_C_CHAR,
-                        not_null, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 9, SQL_C_CHAR,
+						not_null, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 10, SQL_C_CHAR,
-                        relhasrules, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 10, SQL_C_CHAR,
+						relhasrules, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    stmt->result = QR_Constructor();
-    if(!stmt->result) {
+	stmt->result = QR_Constructor();
+	if (!stmt->result)
+	{
 		stmt->errormsg = "Couldn't allocate memory for SQLColumns result.";
-        stmt->errornumber = STMT_NO_MEMORY_ERROR;
+		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
+
+	/* the binding structure for a statement is not set up until */
 
-    /* the binding structure for a statement is not set up until */
-    /* a statement is actually executed, so we'll have to do this ourselves. */
+	/*
+	 * a statement is actually executed, so we'll have to do this
+	 * ourselves.
+	 */
 	result_cols = 14;
-    extend_bindings(stmt, result_cols);
-
-    /* set the field names */
-    QR_set_num_fields(stmt->result, result_cols);
-    QR_set_field_info(stmt->result, 0, "TABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 1, "TABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 2, "TABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 3, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 4, "DATA_TYPE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 5, "TYPE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 6, "PRECISION", PG_TYPE_INT4, 4);
-    QR_set_field_info(stmt->result, 7, "LENGTH", PG_TYPE_INT4, 4);
-    QR_set_field_info(stmt->result, 8, "SCALE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 9, "RADIX", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 10, "NULLABLE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 11, "REMARKS", PG_TYPE_TEXT, 254);
-
-    /*	User defined fields */
-    QR_set_field_info(stmt->result, 12, "DISPLAY_SIZE", PG_TYPE_INT4, 4);
+	extend_bindings(stmt, result_cols);
+
+	/* set the field names */
+	QR_set_num_fields(stmt->result, result_cols);
+	QR_set_field_info(stmt->result, 0, "TABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 1, "TABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 2, "TABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 3, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 4, "DATA_TYPE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 5, "TYPE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 6, "PRECISION", PG_TYPE_INT4, 4);
+	QR_set_field_info(stmt->result, 7, "LENGTH", PG_TYPE_INT4, 4);
+	QR_set_field_info(stmt->result, 8, "SCALE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 9, "RADIX", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 10, "NULLABLE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 11, "REMARKS", PG_TYPE_TEXT, 254);
+
+	/* User defined fields */
+	QR_set_field_info(stmt->result, 12, "DISPLAY_SIZE", PG_TYPE_INT4, 4);
 	QR_set_field_info(stmt->result, 13, "FIELD_TYPE", PG_TYPE_INT4, 4);
 
-	
+
 	result = SQLFetch(hcol_stmt);
 
 
-	/*	Only show oid if option AND there are other columns AND 
-		it's not being called by SQLStatistics .
-		Always show OID if it's a system table
-	*/
+	/*
+	 * Only show oid if option AND there are other columns AND it's not
+	 * being called by SQLStatistics . Always show OID if it's a system
+	 * table
+	 */
 
-	if (result != SQL_ERROR && ! stmt->internal) {
+	if (result != SQL_ERROR && !stmt->internal)
+	{
 
-		if (relhasrules[0] != '1' && 
-		    (atoi(ci->show_oid_column) || 
-			 strncmp(table_name, POSTGRES_SYS_PREFIX, strlen(POSTGRES_SYS_PREFIX)) == 0)) {
+		if (relhasrules[0] != '1' &&
+			(atoi(ci->show_oid_column) ||
+			 strncmp(table_name, POSTGRES_SYS_PREFIX, strlen(POSTGRES_SYS_PREFIX)) == 0))
+		{
 
-			/*	For OID fields */
+			/* For OID fields */
 			the_type = PG_TYPE_OID;
-			row = (TupleNode *)malloc(sizeof(TupleNode) +
-									  (result_cols - 1) * sizeof(TupleField));
+			row = (TupleNode *) malloc(sizeof(TupleNode) +
+								 (result_cols - 1) * sizeof(TupleField));
 
 			set_tuplefield_string(&row->tuple[0], "");
 			/* see note in SQLTables() */
-			/*      set_tuplefield_string(&row->tuple[1], table_owner); */
+			/* set_tuplefield_string(&row->tuple[1], table_owner); */
 			set_tuplefield_string(&row->tuple[1], "");
 			set_tuplefield_string(&row->tuple[2], table_name);
 			set_tuplefield_string(&row->tuple[3], "oid");
@@ -1462,64 +1721,69 @@ ConnectionClass *conn;
 
 	}
 
-    while((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)) {
-        row = (TupleNode *)malloc(sizeof(TupleNode) +
-                                  (result_cols - 1) * sizeof(TupleField));
-
-
-        set_tuplefield_string(&row->tuple[0], "");
-        /* see note in SQLTables() */
-        /*      set_tuplefield_string(&row->tuple[1], table_owner); */
-        set_tuplefield_string(&row->tuple[1], "");
-        set_tuplefield_string(&row->tuple[2], table_name);
-        set_tuplefield_string(&row->tuple[3], field_name);
-        set_tuplefield_int2(&row->tuple[4], pgtype_to_sqltype(stmt, field_type));
-        set_tuplefield_string(&row->tuple[5], field_type_name);
-
+	while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO))
+	{
+		row = (TupleNode *) malloc(sizeof(TupleNode) +
+								 (result_cols - 1) * sizeof(TupleField));
 
-		/*	Some Notes about Postgres Data Types:
 
-			VARCHAR - the length is stored in the pg_attribute.atttypmod field
-			BPCHAR  - the length is also stored as varchar is
-
-			NUMERIC - the scale is stored in atttypmod as follows:
-					precision = ((atttypmod - VARHDRSZ) >> 16) & 0xffff
-					scale     = (atttypmod - VARHDRSZ) & 0xffff
-
-
-		*/
+		set_tuplefield_string(&row->tuple[0], "");
+		/* see note in SQLTables() */
+		/* set_tuplefield_string(&row->tuple[1], table_owner); */
+		set_tuplefield_string(&row->tuple[1], "");
+		set_tuplefield_string(&row->tuple[2], table_name);
+		set_tuplefield_string(&row->tuple[3], field_name);
+		set_tuplefield_int2(&row->tuple[4], pgtype_to_sqltype(stmt, field_type));
+		set_tuplefield_string(&row->tuple[5], field_type_name);
+
+
+		/*
+		 * Some Notes about Postgres Data Types:
+		 *
+		 * VARCHAR - the length is stored in the pg_attribute.atttypmod field
+		 * BPCHAR  - the length is also stored as varchar is
+		 *
+		 * NUMERIC - the scale is stored in atttypmod as follows: precision =
+		 * ((atttypmod - VARHDRSZ) >> 16) & 0xffff scale	 = (atttypmod
+		 * - VARHDRSZ) & 0xffff
+		 *
+		 *
+		 */
 		qlog("SQLColumns: table='%s',field_name='%s',type=%d,sqltype=%d,name='%s'\n",
-			table_name,field_name,field_type,pgtype_to_sqltype,field_type_name);
+			 table_name, field_name, field_type, pgtype_to_sqltype, field_type_name);
 
 		useStaticPrecision = TRUE;
 
-		if (field_type == PG_TYPE_NUMERIC) {
+		if (field_type == PG_TYPE_NUMERIC)
+		{
 			if (mod_length >= 4)
-				mod_length -= 4;			/* the length is in atttypmod - 4 */
+				mod_length -= 4;/* the length is in atttypmod - 4 */
 
-			if (mod_length >= 0) {
+			if (mod_length >= 0)
+			{
 				useStaticPrecision = FALSE;
 
 				precision = (mod_length >> 16) & 0xffff;
 				scale = mod_length & 0xffff;
 
-				mylog("SQLColumns: field type is NUMERIC: field_type = %d, mod_length=%d, precision=%d, scale=%d\n", field_type, mod_length, precision, scale );
+				mylog("SQLColumns: field type is NUMERIC: field_type = %d, mod_length=%d, precision=%d, scale=%d\n", field_type, mod_length, precision, scale);
 
-				set_tuplefield_int4(&row->tuple[7], precision + 2);  /* sign+dec.point */
+				set_tuplefield_int4(&row->tuple[7], precision + 2);		/* sign+dec.point */
 				set_tuplefield_int4(&row->tuple[6], precision);
-				set_tuplefield_int4(&row->tuple[12], precision + 2); /* sign+dec.point */
+				set_tuplefield_int4(&row->tuple[12], precision + 2);	/* sign+dec.point */
 				set_nullfield_int2(&row->tuple[8], scale);
 			}
 		}
 
 
-        if((field_type == PG_TYPE_VARCHAR) ||
-		   (field_type == PG_TYPE_BPCHAR)) {
+		if ((field_type == PG_TYPE_VARCHAR) ||
+			(field_type == PG_TYPE_BPCHAR))
+		{
 
 			useStaticPrecision = FALSE;
 
 			if (mod_length >= 4)
-				mod_length -= 4;			/* the length is in atttypmod - 4 */
+				mod_length -= 4;/* the length is in atttypmod - 4 */
 
 			if (mod_length > globals.max_varchar_size || mod_length <= 0)
 				mod_length = globals.max_varchar_size;
@@ -1530,44 +1794,47 @@ ConnectionClass *conn;
 			set_tuplefield_int4(&row->tuple[6], mod_length);
 			set_tuplefield_int4(&row->tuple[12], mod_length);
 			set_nullfield_int2(&row->tuple[8], pgtype_scale(stmt, field_type, PG_STATIC));
-        } 
-		
-		if (useStaticPrecision) {
+		}
+
+		if (useStaticPrecision)
+		{
 			mylog("SQLColumns: field type is OTHER: field_type = %d, pgtype_length = %d\n", field_type, pgtype_length(stmt, field_type, PG_STATIC, PG_STATIC));
 
-            set_tuplefield_int4(&row->tuple[7], pgtype_length(stmt, field_type, PG_STATIC, PG_STATIC));
+			set_tuplefield_int4(&row->tuple[7], pgtype_length(stmt, field_type, PG_STATIC, PG_STATIC));
 			set_tuplefield_int4(&row->tuple[6], pgtype_precision(stmt, field_type, PG_STATIC, PG_STATIC));
 			set_tuplefield_int4(&row->tuple[12], pgtype_display_size(stmt, field_type, PG_STATIC, PG_STATIC));
 			set_nullfield_int2(&row->tuple[8], pgtype_scale(stmt, field_type, PG_STATIC));
-        }
+		}
 
 		set_nullfield_int2(&row->tuple[9], pgtype_radix(stmt, field_type));
 		set_tuplefield_int2(&row->tuple[10], (Int2) (not_null[0] == '1' ? SQL_NO_NULLS : pgtype_nullable(stmt, field_type)));
 		set_tuplefield_string(&row->tuple[11], "");
 		set_tuplefield_int4(&row->tuple[13], field_type);
 
-        QR_add_tuple(stmt->result, row);
+		QR_add_tuple(stmt->result, row);
 
 
-        result = SQLFetch(hcol_stmt);
+		result = SQLFetch(hcol_stmt);
 
-    }
-    if(result != SQL_NO_DATA_FOUND) {
+	}
+	if (result != SQL_NO_DATA_FOUND)
+	{
 		stmt->errormsg = SC_create_errormsg(hcol_stmt);
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-	/*	Put the row version column at the end so it might not be */
-	/*	mistaken for a key field. */
-	if ( relhasrules[0] != '1' && ! stmt->internal && atoi(ci->row_versioning)) {
-		/*	For Row Versioning fields */
+	/* Put the row version column at the end so it might not be */
+	/* mistaken for a key field. */
+	if (relhasrules[0] != '1' && !stmt->internal && atoi(ci->row_versioning))
+	{
+		/* For Row Versioning fields */
 		the_type = PG_TYPE_INT4;
 
-		row = (TupleNode *)malloc(sizeof(TupleNode) +
-								  (result_cols - 1) * sizeof(TupleField));
+		row = (TupleNode *) malloc(sizeof(TupleNode) +
+								 (result_cols - 1) * sizeof(TupleField));
 
 		set_tuplefield_string(&row->tuple[0], "");
 		set_tuplefield_string(&row->tuple[1], "");
@@ -1589,115 +1856,122 @@ ConnectionClass *conn;
 
 	/* also, things need to think that this statement is finished so */
 	/* the results can be retrieved. */
-    stmt->status = STMT_FINISHED;
+	stmt->status = STMT_FINISHED;
 
-    /* set up the current tuple pointer for SQLFetch */
-    stmt->currTuple = -1;
+	/* set up the current tuple pointer for SQLFetch */
+	stmt->currTuple = -1;
 	stmt->rowset_start = -1;
 	stmt->current_col = -1;
 
 	SQLFreeStmt(hcol_stmt, SQL_DROP);
 	mylog("SQLColumns(): EXIT,  stmt=%u\n", stmt);
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
-RETCODE SQL_API SQLSpecialColumns(
-                                  HSTMT        hstmt,
-                                  UWORD        fColType,
-                                  UCHAR FAR *  szTableQualifier,
-                                  SWORD        cbTableQualifier,
-                                  UCHAR FAR *  szTableOwner,
-                                  SWORD        cbTableOwner,
-                                  UCHAR FAR *  szTableName,
-                                  SWORD        cbTableName,
-                                  UWORD        fScope,
-                                  UWORD        fNullable)
+RETCODE SQL_API
+SQLSpecialColumns(
+				  HSTMT hstmt,
+				  UWORD fColType,
+				  UCHAR FAR * szTableQualifier,
+				  SWORD cbTableQualifier,
+				  UCHAR FAR * szTableOwner,
+				  SWORD cbTableOwner,
+				  UCHAR FAR * szTableName,
+				  SWORD cbTableName,
+				  UWORD fScope,
+				  UWORD fNullable)
 {
-static char *func = "SQLSpecialColumns";
-TupleNode *row;
-StatementClass *stmt = (StatementClass *) hstmt;
-ConnInfo *ci;
-HSTMT hcol_stmt;
-StatementClass *col_stmt;
-char columns_query[STD_STATEMENT_LEN];
-RETCODE result;
-char relhasrules[MAX_INFO_STRING];
+	static char *func = "SQLSpecialColumns";
+	TupleNode  *row;
+	StatementClass *stmt = (StatementClass *) hstmt;
+	ConnInfo   *ci;
+	HSTMT		hcol_stmt;
+	StatementClass *col_stmt;
+	char		columns_query[STD_STATEMENT_LEN];
+	RETCODE		result;
+	char		relhasrules[MAX_INFO_STRING];
 
 
 
-mylog("%s: entering...stmt=%u\n", func, stmt);
+	mylog("%s: entering...stmt=%u\n", func, stmt);
 
-    if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
-        return SQL_INVALID_HANDLE;
-    }
+		return SQL_INVALID_HANDLE;
+	}
 	ci = &stmt->hdbc->connInfo;
 
 	stmt->manual_result = TRUE;
 
 
 	/* ********************************************************************** */
-	/*	Create the query to find out if this is a view or not... */
+	/* Create the query to find out if this is a view or not... */
 	/* ********************************************************************** */
 	sprintf(columns_query, "select c.relhasrules "
-		"from pg_user u, pg_class c where "
-		"u.usesysid = c.relowner");
+			"from pg_user u, pg_class c where "
+			"u.usesysid = c.relowner");
 
 	my_strcat(columns_query, " and c.relname like '%.*s'", szTableName, cbTableName);
 	my_strcat(columns_query, " and u.usename like '%.*s'", szTableOwner, cbTableOwner);
 
 
-    result = SQLAllocStmt( stmt->hdbc, &hcol_stmt);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(stmt->hdbc, &hcol_stmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		stmt->errormsg = "Couldn't allocate statement for SQLSpecialColumns result.";
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 	col_stmt = (StatementClass *) hcol_stmt;
 
 	mylog("SQLSpecialColumns: hcol_stmt = %u, col_stmt = %u\n", hcol_stmt, col_stmt);
 
-    result = SQLExecDirect(hcol_stmt, columns_query,
-                           strlen(columns_query));
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLExecDirect(hcol_stmt, columns_query,
+						   strlen(columns_query));
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = SC_create_errormsg(hcol_stmt);
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(hcol_stmt, 1, SQL_C_CHAR,
-                        relhasrules, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hcol_stmt, 1, SQL_C_CHAR,
+						relhasrules, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
 	result = SQLFetch(hcol_stmt);
 	SQLFreeStmt(hcol_stmt, SQL_DROP);
 
-    stmt->result = QR_Constructor();
-    extend_bindings(stmt, 8);
-
-    QR_set_num_fields(stmt->result, 8);
-    QR_set_field_info(stmt->result, 0, "SCOPE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 1, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 2, "DATA_TYPE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 3, "TYPE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 4, "PRECISION", PG_TYPE_INT4, 4);
-    QR_set_field_info(stmt->result, 5, "LENGTH", PG_TYPE_INT4, 4);
-    QR_set_field_info(stmt->result, 6, "SCALE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 7, "PSEUDO_COLUMN", PG_TYPE_INT2, 2);
-
-    if ( relhasrules[0] != '1' ) {
+	stmt->result = QR_Constructor();
+	extend_bindings(stmt, 8);
+
+	QR_set_num_fields(stmt->result, 8);
+	QR_set_field_info(stmt->result, 0, "SCOPE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 1, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 2, "DATA_TYPE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 3, "TYPE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 4, "PRECISION", PG_TYPE_INT4, 4);
+	QR_set_field_info(stmt->result, 5, "LENGTH", PG_TYPE_INT4, 4);
+	QR_set_field_info(stmt->result, 6, "SCALE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 7, "PSEUDO_COLUMN", PG_TYPE_INT2, 2);
+
+	if (relhasrules[0] != '1')
+	{
 		/* use the oid value for the rowid */
-		if(fColType == SQL_BEST_ROWID) {
-			row = (TupleNode *)malloc(sizeof(TupleNode) + (8 - 1) * sizeof(TupleField));
+		if (fColType == SQL_BEST_ROWID)
+		{
+			row = (TupleNode *) malloc(sizeof(TupleNode) + (8 - 1) * sizeof(TupleField));
 
 			set_tuplefield_int2(&row->tuple[0], SQL_SCOPE_SESSION);
 			set_tuplefield_string(&row->tuple[1], "oid");
@@ -1710,12 +1984,15 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 
 			QR_add_tuple(stmt->result, row);
 
-		} else if(fColType == SQL_ROWVER) {
+		}
+		else if (fColType == SQL_ROWVER)
+		{
 
-			Int2 the_type = PG_TYPE_INT4;
+			Int2		the_type = PG_TYPE_INT4;
 
-			if (atoi(ci->row_versioning)) {
-				row = (TupleNode *)malloc(sizeof(TupleNode) + (8 - 1) * sizeof(TupleField));
+			if (atoi(ci->row_versioning))
+			{
+				row = (TupleNode *) malloc(sizeof(TupleNode) + (8 - 1) * sizeof(TupleField));
 
 				set_tuplefield_null(&row->tuple[0]);
 				set_tuplefield_string(&row->tuple[1], "xmin");
@@ -1733,103 +2010,116 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 
 
 
-    stmt->status = STMT_FINISHED;
-    stmt->currTuple = -1;
+	stmt->status = STMT_FINISHED;
+	stmt->currTuple = -1;
 	stmt->rowset_start = -1;
 	stmt->current_col = -1;
 
 	mylog("SQLSpecialColumns(): EXIT,  stmt=%u\n", stmt);
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
-RETCODE SQL_API SQLStatistics(
-                              HSTMT         hstmt,
-                              UCHAR FAR *   szTableQualifier,
-                              SWORD         cbTableQualifier,
-                              UCHAR FAR *   szTableOwner,
-                              SWORD         cbTableOwner,
-                              UCHAR FAR *   szTableName,
-                              SWORD         cbTableName,
-                              UWORD         fUnique,
-                              UWORD         fAccuracy)
+RETCODE SQL_API
+SQLStatistics(
+			  HSTMT hstmt,
+			  UCHAR FAR * szTableQualifier,
+			  SWORD cbTableQualifier,
+			  UCHAR FAR * szTableOwner,
+			  SWORD cbTableOwner,
+			  UCHAR FAR * szTableName,
+			  SWORD cbTableName,
+			  UWORD fUnique,
+			  UWORD fAccuracy)
 {
-static char *func="SQLStatistics";
-StatementClass *stmt = (StatementClass *) hstmt;
-char index_query[STD_STATEMENT_LEN];
-HSTMT hindx_stmt;
-RETCODE result;
-char *table_name;
-char index_name[MAX_INFO_STRING];
-short fields_vector[8];
-char isunique[10], isclustered[10];
-SDWORD index_name_len, fields_vector_len;
-TupleNode *row;
-int i;
-HSTMT hcol_stmt;
-StatementClass *col_stmt, *indx_stmt;
-char column_name[MAX_INFO_STRING], relhasrules[MAX_INFO_STRING];
-char **column_names = 0;
-Int4 column_name_len;
-int total_columns = 0;
-char error = TRUE;
-ConnInfo *ci;
-char buf[256];
-
-mylog("%s: entering...stmt=%u\n", func, stmt);
-
-    if( ! stmt) {
+	static char *func = "SQLStatistics";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	char		index_query[STD_STATEMENT_LEN];
+	HSTMT		hindx_stmt;
+	RETCODE		result;
+	char	   *table_name;
+	char		index_name[MAX_INFO_STRING];
+	short		fields_vector[8];
+	char		isunique[10],
+				isclustered[10];
+	SDWORD		index_name_len,
+				fields_vector_len;
+	TupleNode  *row;
+	int			i;
+	HSTMT		hcol_stmt;
+	StatementClass *col_stmt,
+			   *indx_stmt;
+	char		column_name[MAX_INFO_STRING],
+				relhasrules[MAX_INFO_STRING];
+	char	  **column_names = 0;
+	Int4		column_name_len;
+	int			total_columns = 0;
+	char		error = TRUE;
+	ConnInfo   *ci;
+	char		buf[256];
+
+	mylog("%s: entering...stmt=%u\n", func, stmt);
+
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
-        return SQL_INVALID_HANDLE;
-    }
+		return SQL_INVALID_HANDLE;
+	}
 
 	stmt->manual_result = TRUE;
 	stmt->errormsg_created = TRUE;
 
 	ci = &stmt->hdbc->connInfo;
 
-    stmt->result = QR_Constructor();
-    if(!stmt->result) {
-        stmt->errormsg = "Couldn't allocate memory for SQLStatistics result.";
-        stmt->errornumber = STMT_NO_MEMORY_ERROR;
+	stmt->result = QR_Constructor();
+	if (!stmt->result)
+	{
+		stmt->errormsg = "Couldn't allocate memory for SQLStatistics result.";
+		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
-
-    /* the binding structure for a statement is not set up until */
-    /* a statement is actually executed, so we'll have to do this ourselves. */
-    extend_bindings(stmt, 13);
-
-    /* set the field names */
-    QR_set_num_fields(stmt->result, 13);
-    QR_set_field_info(stmt->result, 0, "TABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 1, "TABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 2, "TABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 3, "NON_UNIQUE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 4, "INDEX_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 5, "INDEX_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 6, "TYPE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 7, "SEQ_IN_INDEX", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 8, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 9, "COLLATION", PG_TYPE_CHAR, 1);
-    QR_set_field_info(stmt->result, 10, "CARDINALITY", PG_TYPE_INT4, 4);
-    QR_set_field_info(stmt->result, 11, "PAGES", PG_TYPE_INT4, 4);
-    QR_set_field_info(stmt->result, 12, "FILTER_CONDITION", PG_TYPE_TEXT, MAX_INFO_STRING);
-
-
-    /* only use the table name... the owner should be redundant, and */
-    /* we never use qualifiers. */
+		return SQL_ERROR;
+	}
+
+	/* the binding structure for a statement is not set up until */
+
+	/*
+	 * a statement is actually executed, so we'll have to do this
+	 * ourselves.
+	 */
+	extend_bindings(stmt, 13);
+
+	/* set the field names */
+	QR_set_num_fields(stmt->result, 13);
+	QR_set_field_info(stmt->result, 0, "TABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 1, "TABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 2, "TABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 3, "NON_UNIQUE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 4, "INDEX_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 5, "INDEX_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 6, "TYPE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 7, "SEQ_IN_INDEX", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 8, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 9, "COLLATION", PG_TYPE_CHAR, 1);
+	QR_set_field_info(stmt->result, 10, "CARDINALITY", PG_TYPE_INT4, 4);
+	QR_set_field_info(stmt->result, 11, "PAGES", PG_TYPE_INT4, 4);
+	QR_set_field_info(stmt->result, 12, "FILTER_CONDITION", PG_TYPE_TEXT, MAX_INFO_STRING);
+
+
+	/* only use the table name... the owner should be redundant, and */
+	/* we never use qualifiers. */
 	table_name = make_string(szTableName, cbTableName, NULL);
-	if ( ! table_name) {
-        stmt->errormsg = "No table name passed to SQLStatistics.";
-        stmt->errornumber = STMT_INTERNAL_ERROR;
+	if (!table_name)
+	{
+		stmt->errormsg = "No table name passed to SQLStatistics.";
+		stmt->errornumber = STMT_INTERNAL_ERROR;
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
 	/* we need to get a list of the field names first, */
 	/* so we can return them later. */
-	result = SQLAllocStmt( stmt->hdbc, &hcol_stmt);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(stmt->hdbc, &hcol_stmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = "SQLAllocStmt failed in SQLStatistics for columns.";
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		goto SEEYA;
@@ -1837,23 +2127,27 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 
 	col_stmt = (StatementClass *) hcol_stmt;
 
-	/*	"internal" prevents SQLColumns from returning the oid if it is being shown.
-		This would throw everything off.
-	*/
+	/*
+	 * "internal" prevents SQLColumns from returning the oid if it is
+	 * being shown. This would throw everything off.
+	 */
 	col_stmt->internal = TRUE;
-	result = SQLColumns(hcol_stmt, "", 0, "", 0, 
-				table_name, (SWORD) strlen(table_name), "", 0);
+	result = SQLColumns(hcol_stmt, "", 0, "", 0,
+						table_name, (SWORD) strlen(table_name), "", 0);
 	col_stmt->internal = FALSE;
 
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
-			stmt->errormsg = col_stmt->errormsg;        /* "SQLColumns failed in SQLStatistics."; */
-			stmt->errornumber = col_stmt->errornumber;  /* STMT_EXEC_ERROR; */
-			SQLFreeStmt(hcol_stmt, SQL_DROP);
-			goto SEEYA;
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
+		stmt->errormsg = col_stmt->errormsg;	/* "SQLColumns failed in
+												 * SQLStatistics."; */
+		stmt->errornumber = col_stmt->errornumber;		/* STMT_EXEC_ERROR; */
+		SQLFreeStmt(hcol_stmt, SQL_DROP);
+		goto SEEYA;
 	}
 	result = SQLBindCol(hcol_stmt, 4, SQL_C_CHAR,
-				column_name, MAX_INFO_STRING, &column_name_len);
-	if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+						column_name, MAX_INFO_STRING, &column_name_len);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = col_stmt->errormsg;
 		stmt->errornumber = col_stmt->errornumber;
 		SQLFreeStmt(hcol_stmt, SQL_DROP);
@@ -1862,38 +2156,43 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 	}
 
 	result = SQLFetch(hcol_stmt);
-	while((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)) {
+	while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO))
+	{
 		total_columns++;
 
-		column_names = 
-		(char **)realloc(column_names, 
-				 total_columns * sizeof(char *));
-		column_names[total_columns-1] = 
-		(char *)malloc(strlen(column_name)+1);
-		strcpy(column_names[total_columns-1], column_name);
+		column_names =
+			(char **) realloc(column_names,
+							  total_columns * sizeof(char *));
+		column_names[total_columns - 1] =
+			(char *) malloc(strlen(column_name) + 1);
+		strcpy(column_names[total_columns - 1], column_name);
 
 		mylog("SQLStatistics: column_name = '%s'\n", column_name);
 
 		result = SQLFetch(hcol_stmt);
 	}
-	if(result != SQL_NO_DATA_FOUND || total_columns == 0) {
-			stmt->errormsg = SC_create_errormsg(hcol_stmt); /* "Couldn't get column names in SQLStatistics."; */
-			stmt->errornumber = col_stmt->errornumber;
-			SQLFreeStmt(hcol_stmt, SQL_DROP);
-   			goto SEEYA;
+	if (result != SQL_NO_DATA_FOUND || total_columns == 0)
+	{
+		stmt->errormsg = SC_create_errormsg(hcol_stmt); /* "Couldn't get column
+														 * names in
+														 * SQLStatistics."; */
+		stmt->errornumber = col_stmt->errornumber;
+		SQLFreeStmt(hcol_stmt, SQL_DROP);
+		goto SEEYA;
 
 	}
-	
+
 	SQLFreeStmt(hcol_stmt, SQL_DROP);
 
 	/* get a list of indexes on this table */
-    result = SQLAllocStmt( stmt->hdbc, &hindx_stmt);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(stmt->hdbc, &hindx_stmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = "SQLAllocStmt failed in SQLStatistics for indices.";
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		goto SEEYA;
 
-    }
+	}
 	indx_stmt = (StatementClass *) hindx_stmt;
 
 	sprintf(index_query, "select c.relname, i.indkey, i.indisunique"
@@ -1902,69 +2201,83 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 			" where c.oid = i.indexrelid and d.relname = '%s'"
 			" and d.oid = i.indrelid", table_name);
 
-    result = SQLExecDirect(hindx_stmt, index_query, strlen(index_query));
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
-		stmt->errormsg = SC_create_errormsg(hindx_stmt); /* "Couldn't execute index query (w/SQLExecDirect) in SQLStatistics."; */
+	result = SQLExecDirect(hindx_stmt, index_query, strlen(index_query));
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
+		stmt->errormsg = SC_create_errormsg(hindx_stmt);		/* "Couldn't execute
+																 * index query
+																 * (w/SQLExecDirect) in
+																 * SQLStatistics."; */
 		stmt->errornumber = indx_stmt->errornumber;
 		SQLFreeStmt(hindx_stmt, SQL_DROP);
-  		goto SEEYA;
+		goto SEEYA;
 
-    }
+	}
 
-    /* bind the index name column */
-    result = SQLBindCol(hindx_stmt, 1, SQL_C_CHAR,
-                        index_name, MAX_INFO_STRING, &index_name_len);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
-		stmt->errormsg = indx_stmt->errormsg; /* "Couldn't bind column in SQLStatistics."; */
+	/* bind the index name column */
+	result = SQLBindCol(hindx_stmt, 1, SQL_C_CHAR,
+						index_name, MAX_INFO_STRING, &index_name_len);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
+		stmt->errormsg = indx_stmt->errormsg;	/* "Couldn't bind column
+												 * in SQLStatistics."; */
 		stmt->errornumber = indx_stmt->errornumber;
 		SQLFreeStmt(hindx_stmt, SQL_DROP);
-   		goto SEEYA;
-
-    }
-    /* bind the vector column */
-    result = SQLBindCol(hindx_stmt, 2, SQL_C_DEFAULT,
-                        fields_vector, 16, &fields_vector_len);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
-		stmt->errormsg = indx_stmt->errormsg;  /* "Couldn't bind column in SQLStatistics."; */
+		goto SEEYA;
+
+	}
+	/* bind the vector column */
+	result = SQLBindCol(hindx_stmt, 2, SQL_C_DEFAULT,
+						fields_vector, 16, &fields_vector_len);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
+		stmt->errormsg = indx_stmt->errormsg;	/* "Couldn't bind column
+												 * in SQLStatistics."; */
 		stmt->errornumber = indx_stmt->errornumber;
 		SQLFreeStmt(hindx_stmt, SQL_DROP);
 		goto SEEYA;
 
-    }
-    /* bind the "is unique" column */
-    result = SQLBindCol(hindx_stmt, 3, SQL_C_CHAR,
-                        isunique, sizeof(isunique), NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
-		stmt->errormsg = indx_stmt->errormsg;  /* "Couldn't bind column in SQLStatistics."; */
+	}
+	/* bind the "is unique" column */
+	result = SQLBindCol(hindx_stmt, 3, SQL_C_CHAR,
+						isunique, sizeof(isunique), NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
+		stmt->errormsg = indx_stmt->errormsg;	/* "Couldn't bind column
+												 * in SQLStatistics."; */
 		stmt->errornumber = indx_stmt->errornumber;
 		SQLFreeStmt(hindx_stmt, SQL_DROP);
 		goto SEEYA;
-    }
+	}
 
-    /* bind the "is clustered" column */
-    result = SQLBindCol(hindx_stmt, 4, SQL_C_CHAR,
-                        isclustered, sizeof(isclustered), NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
-		stmt->errormsg = indx_stmt->errormsg;  /* "Couldn't bind column in SQLStatistics."; */
+	/* bind the "is clustered" column */
+	result = SQLBindCol(hindx_stmt, 4, SQL_C_CHAR,
+						isclustered, sizeof(isclustered), NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
+		stmt->errormsg = indx_stmt->errormsg;	/* "Couldn't bind column
+												 * in SQLStatistics."; */
 		stmt->errornumber = indx_stmt->errornumber;
 		SQLFreeStmt(hindx_stmt, SQL_DROP);
 		goto SEEYA;
 
-    }
+	}
 
-    result = SQLBindCol(hindx_stmt, 5, SQL_C_CHAR,
-                        relhasrules, MAX_INFO_STRING, NULL);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(hindx_stmt, 5, SQL_C_CHAR,
+						relhasrules, MAX_INFO_STRING, NULL);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = indx_stmt->errormsg;
 		stmt->errornumber = indx_stmt->errornumber;
 		SQLFreeStmt(hindx_stmt, SQL_DROP);
-        goto SEEYA;
-    }
+		goto SEEYA;
+	}
 
-	/*	fake index of OID */
-	if ( relhasrules[0] != '1' && atoi(ci->show_oid_column) && atoi(ci->fake_oid_index)) {
-		row = (TupleNode *)malloc(sizeof(TupleNode) + 
-					  (13 - 1) * sizeof(TupleField));
+	/* fake index of OID */
+	if (relhasrules[0] != '1' && atoi(ci->show_oid_column) && atoi(ci->fake_oid_index))
+	{
+		row = (TupleNode *) malloc(sizeof(TupleNode) +
+								   (13 - 1) * sizeof(TupleField));
 
 		/* no table qualifier */
 		set_tuplefield_string(&row->tuple[0], "");
@@ -1974,14 +2287,17 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 
 		/* non-unique index? */
 		set_tuplefield_int2(&row->tuple[3], (Int2) (globals.unique_index ? FALSE : TRUE));
-		
+
 		/* no index qualifier */
 		set_tuplefield_string(&row->tuple[4], "");
 
 		sprintf(buf, "%s_idx_fake_oid", table_name);
 		set_tuplefield_string(&row->tuple[5], buf);
 
-		/* Clustered index?  I think non-clustered should be type OTHER not HASHED */
+		/*
+		 * Clustered index?  I think non-clustered should be type OTHER
+		 * not HASHED
+		 */
 		set_tuplefield_int2(&row->tuple[6], (Int2) SQL_INDEX_OTHER);
 		set_tuplefield_int2(&row->tuple[7], (Int2) 1);
 
@@ -1994,18 +2310,21 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 		QR_add_tuple(stmt->result, row);
 	}
 
-    result = SQLFetch(hindx_stmt);
-    while((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)) {
+	result = SQLFetch(hindx_stmt);
+	while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO))
+	{
 
-      /*	If only requesting unique indexs, then just return those. */
-		if (fUnique == SQL_INDEX_ALL || 
-			(fUnique == SQL_INDEX_UNIQUE && atoi(isunique))) {
+		/* If only requesting unique indexs, then just return those. */
+		if (fUnique == SQL_INDEX_ALL ||
+			(fUnique == SQL_INDEX_UNIQUE && atoi(isunique)))
+		{
 			i = 0;
 			/* add a row in this table for each field in the index */
-			while(i < 8 && fields_vector[i] != 0) {
+			while (i < 8 && fields_vector[i] != 0)
+			{
 
-				row = (TupleNode *)malloc(sizeof(TupleNode) + 
-							  (13 - 1) * sizeof(TupleField));
+				row = (TupleNode *) malloc(sizeof(TupleNode) +
+										   (13 - 1) * sizeof(TupleField));
 
 				/* no table qualifier */
 				set_tuplefield_string(&row->tuple[0], "");
@@ -2018,26 +2337,32 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 					set_tuplefield_int2(&row->tuple[3], (Int2) (atoi(isunique) ? FALSE : TRUE));
 				else
 					set_tuplefield_int2(&row->tuple[3], TRUE);
-				
+
 				/* no index qualifier */
 				set_tuplefield_string(&row->tuple[4], "");
 				set_tuplefield_string(&row->tuple[5], index_name);
 
-				/* Clustered index?  I think non-clustered should be type OTHER not HASHED */
+				/*
+				 * Clustered index?  I think non-clustered should be type
+				 * OTHER not HASHED
+				 */
 				set_tuplefield_int2(&row->tuple[6], (Int2) (atoi(isclustered) ? SQL_INDEX_CLUSTERED : SQL_INDEX_OTHER));
-				set_tuplefield_int2(&row->tuple[7], (Int2) (i+1));
+				set_tuplefield_int2(&row->tuple[7], (Int2) (i + 1));
 
-				if(fields_vector[i] == OID_ATTNUM) {
+				if (fields_vector[i] == OID_ATTNUM)
+				{
 					set_tuplefield_string(&row->tuple[8], "oid");
 					mylog("SQLStatistics: column name = oid\n");
 				}
-				else if(fields_vector[i] < 0 || fields_vector[i] > total_columns) {
+				else if (fields_vector[i] < 0 || fields_vector[i] > total_columns)
+				{
 					set_tuplefield_string(&row->tuple[8], "UNKNOWN");
 					mylog("SQLStatistics: column name = UNKNOWN\n");
 				}
-				else {
-					set_tuplefield_string(&row->tuple[8], column_names[fields_vector[i]-1]);
-					mylog("SQLStatistics: column name = '%s'\n", column_names[fields_vector[i]-1]);
+				else
+				{
+					set_tuplefield_string(&row->tuple[8], column_names[fields_vector[i] - 1]);
+					mylog("SQLStatistics: column name = '%s'\n", column_names[fields_vector[i] - 1]);
 				}
 
 				set_tuplefield_string(&row->tuple[9], "A");
@@ -2050,23 +2375,25 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 			}
 		}
 
-        result = SQLFetch(hindx_stmt);
-    }
-    if(result != SQL_NO_DATA_FOUND) {
-		stmt->errormsg = SC_create_errormsg(hindx_stmt); /* "SQLFetch failed in SQLStatistics."; */
+		result = SQLFetch(hindx_stmt);
+	}
+	if (result != SQL_NO_DATA_FOUND)
+	{
+		stmt->errormsg = SC_create_errormsg(hindx_stmt);		/* "SQLFetch failed in
+																 * SQLStatistics."; */
 		stmt->errornumber = indx_stmt->errornumber;
 		SQLFreeStmt(hindx_stmt, SQL_DROP);
 		goto SEEYA;
-    }
+	}
 
 	SQLFreeStmt(hindx_stmt, SQL_DROP);
 
 	/* also, things need to think that this statement is finished so */
 	/* the results can be retrieved. */
-    stmt->status = STMT_FINISHED;
+	stmt->status = STMT_FINISHED;
 
-    /* set up the current tuple pointer for SQLFetch */
-    stmt->currTuple = -1;
+	/* set up the current tuple pointer for SQLFetch */
+	stmt->currTuple = -1;
 	stmt->rowset_start = -1;
 	stmt->current_col = -1;
 
@@ -2075,14 +2402,14 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
 SEEYA:
 	/* These things should be freed on any error ALSO! */
 	free(table_name);
-    for(i = 0; i < total_columns; i++) {
+	for (i = 0; i < total_columns; i++)
 		free(column_names[i]);
-    }
-    free(column_names);
+	free(column_names);
 
 	mylog("SQLStatistics(): EXIT, %s, stmt=%u\n", error ? "error" : "success", stmt);
 
-	if (error) {
+	if (error)
+	{
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
@@ -2090,99 +2417,109 @@ SEEYA:
 		return SQL_SUCCESS;
 }
 
-RETCODE SQL_API SQLColumnPrivileges(
-                                    HSTMT        hstmt,
-                                    UCHAR FAR *  szTableQualifier,
-                                    SWORD        cbTableQualifier,
-                                    UCHAR FAR *  szTableOwner,
-                                    SWORD        cbTableOwner,
-                                    UCHAR FAR *  szTableName,
-                                    SWORD        cbTableName,
-                                    UCHAR FAR *  szColumnName,
-                                    SWORD        cbColumnName)
+RETCODE SQL_API
+SQLColumnPrivileges(
+					HSTMT hstmt,
+					UCHAR FAR * szTableQualifier,
+					SWORD cbTableQualifier,
+					UCHAR FAR * szTableOwner,
+					SWORD cbTableOwner,
+					UCHAR FAR * szTableName,
+					SWORD cbTableName,
+					UCHAR FAR * szColumnName,
+					SWORD cbColumnName)
 {
-static char *func="SQLColumnPrivileges";
+	static char *func = "SQLColumnPrivileges";
 
 	mylog("%s: entering...\n", func);
 
 /*	Neither Access or Borland care about this. */
 
 	SC_log_error(func, "Function not implemented", (StatementClass *) hstmt);
-    return SQL_ERROR;
+	return SQL_ERROR;
 }
 
 
 /* SQLPrimaryKeys()
  * Retrieve the primary key columns for the specified table.
  */
-RETCODE SQL_API SQLPrimaryKeys(
-                               HSTMT         hstmt,
-                               UCHAR FAR *   szTableQualifier,
-                               SWORD         cbTableQualifier,
-                               UCHAR FAR *   szTableOwner,
-                               SWORD         cbTableOwner,
-                               UCHAR FAR *   szTableName,
-                               SWORD         cbTableName)
+RETCODE SQL_API
+SQLPrimaryKeys(
+			   HSTMT hstmt,
+			   UCHAR FAR * szTableQualifier,
+			   SWORD cbTableQualifier,
+			   UCHAR FAR * szTableOwner,
+			   SWORD cbTableOwner,
+			   UCHAR FAR * szTableName,
+			   SWORD cbTableName)
 {
-static char *func = "SQLPrimaryKeys";
-StatementClass *stmt = (StatementClass *) hstmt;
-TupleNode *row;
-RETCODE result;
-int seq = 0;
-HSTMT htbl_stmt;
-StatementClass *tbl_stmt;
-char tables_query[STD_STATEMENT_LEN];
-char attname[MAX_INFO_STRING];
-SDWORD attname_len;
-char pktab[MAX_TABLE_LEN + 1];
-Int2 result_cols;
+	static char *func = "SQLPrimaryKeys";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	TupleNode  *row;
+	RETCODE		result;
+	int			seq = 0;
+	HSTMT		htbl_stmt;
+	StatementClass *tbl_stmt;
+	char		tables_query[STD_STATEMENT_LEN];
+	char		attname[MAX_INFO_STRING];
+	SDWORD		attname_len;
+	char		pktab[MAX_TABLE_LEN + 1];
+	Int2		result_cols;
 
 	mylog("%s: entering...stmt=%u\n", func, stmt);
 
-    if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
-        return SQL_INVALID_HANDLE;
-    }
+		return SQL_INVALID_HANDLE;
+	}
 	stmt->manual_result = TRUE;
 	stmt->errormsg_created = TRUE;
 
-    stmt->result = QR_Constructor();
-    if(!stmt->result) {
-        stmt->errormsg = "Couldn't allocate memory for SQLPrimaryKeys result.";
-        stmt->errornumber = STMT_NO_MEMORY_ERROR;
+	stmt->result = QR_Constructor();
+	if (!stmt->result)
+	{
+		stmt->errormsg = "Couldn't allocate memory for SQLPrimaryKeys result.";
+		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
+
+	/* the binding structure for a statement is not set up until */
 
-    /* the binding structure for a statement is not set up until */
-    /* a statement is actually executed, so we'll have to do this ourselves. */
+	/*
+	 * a statement is actually executed, so we'll have to do this
+	 * ourselves.
+	 */
 	result_cols = 6;
-    extend_bindings(stmt, result_cols);
-	
-    /* set the field names */
-    QR_set_num_fields(stmt->result, result_cols);
-    QR_set_field_info(stmt->result, 0, "TABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 1, "TABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 2, "TABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 3, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 4, "KEY_SEQ", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 5, "PK_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-
-
-    result = SQLAllocStmt( stmt->hdbc, &htbl_stmt);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	extend_bindings(stmt, result_cols);
+
+	/* set the field names */
+	QR_set_num_fields(stmt->result, result_cols);
+	QR_set_field_info(stmt->result, 0, "TABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 1, "TABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 2, "TABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 3, "COLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 4, "KEY_SEQ", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 5, "PK_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+
+
+	result = SQLAllocStmt(stmt->hdbc, &htbl_stmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		stmt->errormsg = "Couldn't allocate statement for Primary Key result.";
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 	tbl_stmt = (StatementClass *) htbl_stmt;
 
 	pktab[0] = '\0';
 	make_string(szTableName, cbTableName, pktab);
-	if ( pktab[0] == '\0') {
+	if (pktab[0] == '\0')
+	{
 		stmt->errormsg = "No Table specified to SQLPrimaryKeys.";
-	    stmt->errornumber = STMT_INTERNAL_ERROR;
+		stmt->errornumber = STMT_INTERNAL_ERROR;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(htbl_stmt, SQL_DROP);
 		return SQL_ERROR;
@@ -2191,12 +2528,13 @@ Int2 result_cols;
 #if 0
 	sprintf(tables_query, "select distinct on (attnum) a2.attname, a2.attnum from pg_attribute a1, pg_attribute a2, pg_class c, pg_index i where c.relname = '%s_pkey' AND c.oid = i.indexrelid AND a1.attrelid = c.oid AND a2.attrelid = c.oid AND (i.indkey[0] = a1.attnum OR i.indkey[1] = a1.attnum OR i.indkey[2] = a1.attnum OR i.indkey[3] = a1.attnum OR i.indkey[4] = a1.attnum OR i.indkey[5] = a1.attnum OR i.indkey[6] = a1.attnum OR i.indkey[7] = a1.attnum) order by a2.attnum", pktab);
 #else
-	/* Simplified query to remove assumptions about
-	 * number of possible index columns.
-	 * Courtesy of Tom Lane - thomas 2000-03-21
+
+	/*
+	 * Simplified query to remove assumptions about number of possible
+	 * index columns. Courtesy of Tom Lane - thomas 2000-03-21
 	 */
 	sprintf(tables_query, "select ta.attname, ia.attnum"
-			" from pg_attribute ta, pg_attribute ia, pg_class c, pg_index i"
+		 " from pg_attribute ta, pg_attribute ia, pg_class c, pg_index i"
 			" where c.relname = '%s_pkey'"
 			" AND c.oid = i.indexrelid"
 			" AND ia.attrelid = i.indexrelid"
@@ -2208,174 +2546,200 @@ Int2 result_cols;
 
 	mylog("SQLPrimaryKeys: tables_query='%s'\n", tables_query);
 
-    result = SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = SC_create_errormsg(htbl_stmt);
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(htbl_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLBindCol(htbl_stmt, 1, SQL_C_CHAR,
-                        attname, MAX_INFO_STRING, &attname_len);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLBindCol(htbl_stmt, 1, SQL_C_CHAR,
+						attname, MAX_INFO_STRING, &attname_len);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errormsg = tbl_stmt->errormsg;
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(htbl_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    result = SQLFetch(htbl_stmt);
+	result = SQLFetch(htbl_stmt);
 
-    while((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)) {
+	while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO))
+	{
 
-        row = (TupleNode *)malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField));
+		row = (TupleNode *) malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField));
 
-        set_tuplefield_null(&row->tuple[0]);
+		set_tuplefield_null(&row->tuple[0]);
 
-		/* I have to hide the table owner from Access, otherwise it
-		 * insists on referring to the table as 'owner.table'.
-		 * (this is valid according to the ODBC SQL grammar, but
-		 * Postgres won't support it.)
+		/*
+		 * I have to hide the table owner from Access, otherwise it
+		 * insists on referring to the table as 'owner.table'. (this is
+		 * valid according to the ODBC SQL grammar, but Postgres won't
+		 * support it.)
 		 */
-        set_tuplefield_string(&row->tuple[1], "");
-        set_tuplefield_string(&row->tuple[2], pktab);
-        set_tuplefield_string(&row->tuple[3], attname);
+		set_tuplefield_string(&row->tuple[1], "");
+		set_tuplefield_string(&row->tuple[2], pktab);
+		set_tuplefield_string(&row->tuple[3], attname);
 		set_tuplefield_int2(&row->tuple[4], (Int2) (++seq));
 		set_tuplefield_null(&row->tuple[5]);
 
-        QR_add_tuple(stmt->result, row);
+		QR_add_tuple(stmt->result, row);
 
 		mylog(">> primaryKeys: pktab = '%s', attname = '%s', seq = %d\n", pktab, attname, seq);
 
-        result = SQLFetch(htbl_stmt);
-    }
+		result = SQLFetch(htbl_stmt);
+	}
 
-    if(result != SQL_NO_DATA_FOUND) {
+	if (result != SQL_NO_DATA_FOUND)
+	{
 		stmt->errormsg = SC_create_errormsg(htbl_stmt);
 		stmt->errornumber = tbl_stmt->errornumber;
 		SC_log_error(func, "", stmt);
 		SQLFreeStmt(htbl_stmt, SQL_DROP);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
 	SQLFreeStmt(htbl_stmt, SQL_DROP);
 
 
 	/* also, things need to think that this statement is finished so */
 	/* the results can be retrieved. */
-    stmt->status = STMT_FINISHED;
+	stmt->status = STMT_FINISHED;
 
-    /* set up the current tuple pointer for SQLFetch */
-    stmt->currTuple = -1;
+	/* set up the current tuple pointer for SQLFetch */
+	stmt->currTuple = -1;
 	stmt->rowset_start = -1;
 	stmt->current_col = -1;
 
 	mylog("SQLPrimaryKeys(): EXIT, stmt=%u\n", stmt);
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
-RETCODE SQL_API SQLForeignKeys(
-                               HSTMT         hstmt,
-                               UCHAR FAR *   szPkTableQualifier,
-                               SWORD         cbPkTableQualifier,
-                               UCHAR FAR *   szPkTableOwner,
-                               SWORD         cbPkTableOwner,
-                               UCHAR FAR *   szPkTableName,
-                               SWORD         cbPkTableName,
-                               UCHAR FAR *   szFkTableQualifier,
-                               SWORD         cbFkTableQualifier,
-                               UCHAR FAR *   szFkTableOwner,
-                               SWORD         cbFkTableOwner,
-                               UCHAR FAR *   szFkTableName,
-                               SWORD         cbFkTableName)
+RETCODE SQL_API
+SQLForeignKeys(
+			   HSTMT hstmt,
+			   UCHAR FAR * szPkTableQualifier,
+			   SWORD cbPkTableQualifier,
+			   UCHAR FAR * szPkTableOwner,
+			   SWORD cbPkTableOwner,
+			   UCHAR FAR * szPkTableName,
+			   SWORD cbPkTableName,
+			   UCHAR FAR * szFkTableQualifier,
+			   SWORD cbFkTableQualifier,
+			   UCHAR FAR * szFkTableOwner,
+			   SWORD cbFkTableOwner,
+			   UCHAR FAR * szFkTableName,
+			   SWORD cbFkTableName)
 {
-static char *func = "SQLForeignKeys";
-StatementClass *stmt = (StatementClass *) hstmt;
-TupleNode *row;
-HSTMT htbl_stmt, hpkey_stmt;
-StatementClass *tbl_stmt;
-RETCODE result, keyresult;
-char tables_query[STD_STATEMENT_LEN];
-char trig_deferrable[2];
-char trig_initdeferred[2];
-char trig_args[1024];
-char upd_rule[MAX_TABLE_LEN], del_rule[MAX_TABLE_LEN];
-char pk_table_needed[MAX_TABLE_LEN + 1];
-char fk_table_needed[MAX_TABLE_LEN + 1];
-char *pkey_ptr, *fkey_ptr, *pk_table, *fk_table;
-int i, j, k, num_keys;
-SWORD trig_nargs, upd_rule_type=0, del_rule_type=0;
+	static char *func = "SQLForeignKeys";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	TupleNode  *row;
+	HSTMT		htbl_stmt,
+				hpkey_stmt;
+	StatementClass *tbl_stmt;
+	RETCODE		result,
+				keyresult;
+	char		tables_query[STD_STATEMENT_LEN];
+	char		trig_deferrable[2];
+	char		trig_initdeferred[2];
+	char		trig_args[1024];
+	char		upd_rule[MAX_TABLE_LEN],
+				del_rule[MAX_TABLE_LEN];
+	char		pk_table_needed[MAX_TABLE_LEN + 1];
+	char		fk_table_needed[MAX_TABLE_LEN + 1];
+	char	   *pkey_ptr,
+			   *fkey_ptr,
+			   *pk_table,
+			   *fk_table;
+	int			i,
+				j,
+				k,
+				num_keys;
+	SWORD		trig_nargs,
+				upd_rule_type = 0,
+				del_rule_type = 0;
+
 #if (ODBCVER >= 0x0300)
-SWORD defer_type;
+	SWORD		defer_type;
+
 #endif
-char pkey[MAX_INFO_STRING];
-Int2 result_cols;
+	char		pkey[MAX_INFO_STRING];
+	Int2		result_cols;
 
 
 	mylog("%s: entering...stmt=%u\n", func, stmt);
 
 
-    if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
-        return SQL_INVALID_HANDLE;
-    }
-	
+		return SQL_INVALID_HANDLE;
+	}
+
 	stmt->manual_result = TRUE;
 	stmt->errormsg_created = TRUE;
 
-    stmt->result = QR_Constructor();
-    if(!stmt->result) {
+	stmt->result = QR_Constructor();
+	if (!stmt->result)
+	{
 		stmt->errormsg = "Couldn't allocate memory for SQLForeignKeys result.";
-        stmt->errornumber = STMT_NO_MEMORY_ERROR;
+		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
+
+	/* the binding structure for a statement is not set up until */
 
-    /* the binding structure for a statement is not set up until */
-    /* a statement is actually executed, so we'll have to do this ourselves. */
+	/*
+	 * a statement is actually executed, so we'll have to do this
+	 * ourselves.
+	 */
 	result_cols = 14;
-    extend_bindings(stmt, result_cols);
-
-    /* set the field names */
-    QR_set_num_fields(stmt->result, result_cols);
-    QR_set_field_info(stmt->result, 0, "PKTABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 1, "PKTABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 2, "PKTABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 3, "PKCOLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 4, "FKTABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 5, "FKTABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 6, "FKTABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 7, "FKCOLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 8, "KEY_SEQ", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 9, "UPDATE_RULE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 10, "DELETE_RULE", PG_TYPE_INT2, 2);
-    QR_set_field_info(stmt->result, 11, "FK_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 12, "PK_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
-    QR_set_field_info(stmt->result, 13, "TRIGGER_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	extend_bindings(stmt, result_cols);
+
+	/* set the field names */
+	QR_set_num_fields(stmt->result, result_cols);
+	QR_set_field_info(stmt->result, 0, "PKTABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 1, "PKTABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 2, "PKTABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 3, "PKCOLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 4, "FKTABLE_QUALIFIER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 5, "FKTABLE_OWNER", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 6, "FKTABLE_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 7, "FKCOLUMN_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 8, "KEY_SEQ", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 9, "UPDATE_RULE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 10, "DELETE_RULE", PG_TYPE_INT2, 2);
+	QR_set_field_info(stmt->result, 11, "FK_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 12, "PK_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
+	QR_set_field_info(stmt->result, 13, "TRIGGER_NAME", PG_TYPE_TEXT, MAX_INFO_STRING);
 #if (ODBCVER >= 0x0300)
 	QR_set_field_info(stmt->result, 14, "DEFERRABILITY", PG_TYPE_INT2, 2);
-#endif /* ODBCVER >= 0x0300 */
+#endif	 /* ODBCVER >= 0x0300 */
 
-    /* also, things need to think that this statement is finished so */
-    /* the results can be retrieved. */
-    stmt->status = STMT_FINISHED;
+	/* also, things need to think that this statement is finished so */
+	/* the results can be retrieved. */
+	stmt->status = STMT_FINISHED;
 
-    /* set up the current tuple pointer for SQLFetch */
-    stmt->currTuple = -1;
+	/* set up the current tuple pointer for SQLFetch */
+	stmt->currTuple = -1;
 	stmt->rowset_start = -1;
 	stmt->current_col = -1;
 
 
-    result = SQLAllocStmt( stmt->hdbc, &htbl_stmt);
-    if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+	result = SQLAllocStmt(stmt->hdbc, &htbl_stmt);
+	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+	{
 		stmt->errornumber = STMT_NO_MEMORY_ERROR;
 		stmt->errormsg = "Couldn't allocate statement for SQLForeignKeys result.";
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
 	tbl_stmt = (StatementClass *) htbl_stmt;
 
@@ -2385,53 +2749,57 @@ Int2 result_cols;
 	make_string(szPkTableName, cbPkTableName, pk_table_needed);
 	make_string(szFkTableName, cbFkTableName, fk_table_needed);
 
-	/*	Case #2 -- Get the foreign keys in the specified table (fktab) that 
-		refer to the primary keys of other table(s).
-	*/
-	if (fk_table_needed[0] != '\0') {
+	/*
+	 * Case #2 -- Get the foreign keys in the specified table (fktab) that
+	 * refer to the primary keys of other table(s).
+	 */
+	if (fk_table_needed[0] != '\0')
+	{
 		mylog("%s: entering Foreign Key Case #2", func);
 		sprintf(tables_query, "SELECT	pt.tgargs, "
-								"		pt.tgnargs, "
-								"		pt.tgdeferrable, "
-								"		pt.tginitdeferred, "
-								"		pg_proc.proname, "
-								"		pg_proc_1.proname "
-								"FROM	pg_class pc, "
-								"		pg_proc pg_proc, "
-								"		pg_proc pg_proc_1, "
-								"		pg_trigger pg_trigger, "
-								"		pg_trigger pg_trigger_1, "
-								"		pg_proc pp, "
-								"		pg_trigger pt "
-								"WHERE	pt.tgrelid = pc.oid "
-								"AND pp.oid = pt.tgfoid "
-								"AND pg_trigger.tgconstrrelid = pc.oid "
-								"AND pg_proc.oid = pg_trigger.tgfoid "
-								"AND pg_trigger_1.tgfoid = pg_proc_1.oid "
-								"AND pg_trigger_1.tgconstrrelid = pc.oid "
-								"AND ((pc.relname='%s') "
-								"AND (pp.proname LIKE '%%ins') "
-								"AND (pg_proc.proname LIKE '%%upd') "
-								"AND (pg_proc_1.proname LIKE '%%del') "
-								"AND (pg_trigger.tgrelid=pt.tgconstrrelid) "
-								"AND (pg_trigger.tgconstrname=pt.tgconstrname) "
-								"AND (pg_trigger_1.tgrelid=pt.tgconstrrelid) "
-								"AND (pg_trigger_1.tgconstrname=pt.tgconstrname))", 
-				fk_table_needed);		
+				"		pt.tgnargs, "
+				"		pt.tgdeferrable, "
+				"		pt.tginitdeferred, "
+				"		pg_proc.proname, "
+				"		pg_proc_1.proname "
+				"FROM	pg_class pc, "
+				"		pg_proc pg_proc, "
+				"		pg_proc pg_proc_1, "
+				"		pg_trigger pg_trigger, "
+				"		pg_trigger pg_trigger_1, "
+				"		pg_proc pp, "
+				"		pg_trigger pt "
+				"WHERE	pt.tgrelid = pc.oid "
+				"AND pp.oid = pt.tgfoid "
+				"AND pg_trigger.tgconstrrelid = pc.oid "
+				"AND pg_proc.oid = pg_trigger.tgfoid "
+				"AND pg_trigger_1.tgfoid = pg_proc_1.oid "
+				"AND pg_trigger_1.tgconstrrelid = pc.oid "
+				"AND ((pc.relname='%s') "
+				"AND (pp.proname LIKE '%%ins') "
+				"AND (pg_proc.proname LIKE '%%upd') "
+				"AND (pg_proc_1.proname LIKE '%%del') "
+				"AND (pg_trigger.tgrelid=pt.tgconstrrelid) "
+				"AND (pg_trigger.tgconstrname=pt.tgconstrname) "
+				"AND (pg_trigger_1.tgrelid=pt.tgconstrrelid) "
+				"AND (pg_trigger_1.tgconstrname=pt.tgconstrname))",
+				fk_table_needed);
 
 		result = SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
 
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = SC_create_errormsg(htbl_stmt);
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
-    		SQLFreeStmt(htbl_stmt, SQL_DROP);
+			SQLFreeStmt(htbl_stmt, SQL_DROP);
 			return SQL_ERROR;
 		}
 
 		result = SQLBindCol(htbl_stmt, 1, SQL_C_BINARY,
 							trig_args, sizeof(trig_args), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2441,7 +2809,8 @@ Int2 result_cols;
 
 		result = SQLBindCol(htbl_stmt, 2, SQL_C_SHORT,
 							&trig_nargs, 0, NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2450,8 +2819,9 @@ Int2 result_cols;
 		}
 
 		result = SQLBindCol(htbl_stmt, 3, SQL_C_CHAR,
-							trig_deferrable, sizeof(trig_deferrable), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+						 trig_deferrable, sizeof(trig_deferrable), NULL);
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2460,8 +2830,9 @@ Int2 result_cols;
 		}
 
 		result = SQLBindCol(htbl_stmt, 4, SQL_C_CHAR,
-							trig_initdeferred, sizeof(trig_initdeferred), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+					 trig_initdeferred, sizeof(trig_initdeferred), NULL);
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2471,7 +2842,8 @@ Int2 result_cols;
 
 		result = SQLBindCol(htbl_stmt, 5, SQL_C_CHAR,
 							upd_rule, sizeof(upd_rule), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2481,7 +2853,8 @@ Int2 result_cols;
 
 		result = SQLBindCol(htbl_stmt, 6, SQL_C_CHAR,
 							del_rule, sizeof(del_rule), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2493,7 +2866,8 @@ Int2 result_cols;
 		if (result == SQL_NO_DATA_FOUND)
 			return SQL_SUCCESS;
 
-		if(result != SQL_SUCCESS) {
+		if (result != SQL_SUCCESS)
+		{
 			stmt->errormsg = SC_create_errormsg(htbl_stmt);
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2501,8 +2875,9 @@ Int2 result_cols;
 			return SQL_ERROR;
 		}
 
-		keyresult = SQLAllocStmt( stmt->hdbc, &hpkey_stmt);
-		if((keyresult != SQL_SUCCESS) && (keyresult != SQL_SUCCESS_WITH_INFO)) {
+		keyresult = SQLAllocStmt(stmt->hdbc, &hpkey_stmt);
+		if ((keyresult != SQL_SUCCESS) && (keyresult != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errornumber = STMT_NO_MEMORY_ERROR;
 			stmt->errormsg = "Couldn't allocate statement for SQLForeignKeys (pkeys) result.";
 			SC_log_error(func, "", stmt);
@@ -2510,8 +2885,9 @@ Int2 result_cols;
 		}
 
 		keyresult = SQLBindCol(hpkey_stmt, 4, SQL_C_CHAR,
-								pkey, sizeof(pkey), NULL);
-		if (keyresult != SQL_SUCCESS) {
+							   pkey, sizeof(pkey), NULL);
+		if (keyresult != SQL_SUCCESS)
+		{
 			stmt->errornumber = STMT_NO_MEMORY_ERROR;
 			stmt->errormsg = "Couldn't bindcol for primary keys for SQLForeignKeys result.";
 			SC_log_error(func, "", stmt);
@@ -2519,31 +2895,35 @@ Int2 result_cols;
 			return SQL_ERROR;
 		}
 
-		while (result == SQL_SUCCESS) {
+		while (result == SQL_SUCCESS)
+		{
 
-			/*	Compute the number of keyparts.	*/
+			/* Compute the number of keyparts. */
 			num_keys = (trig_nargs - 4) / 2;
 
 			mylog("Foreign Key Case#2: trig_nargs = %d, num_keys = %d\n", trig_nargs, num_keys);
 
 			pk_table = trig_args;
 
-			/*	Get to the PK Table Name */
+			/* Get to the PK Table Name */
 			for (k = 0; k < 2; k++)
 				pk_table += strlen(pk_table) + 1;
 
-			/*	If there is a pk table specified, then check it. */
-			if (pk_table_needed[0] != '\0') {
+			/* If there is a pk table specified, then check it. */
+			if (pk_table_needed[0] != '\0')
+			{
 
-				/*	If it doesn't match, then continue */
-				if ( strcmp(pk_table, pk_table_needed)) {	
+				/* If it doesn't match, then continue */
+				if (strcmp(pk_table, pk_table_needed))
+				{
 					result = SQLFetch(htbl_stmt);
 					continue;
 				}
 			}
 
 			keyresult = SQLPrimaryKeys(hpkey_stmt, NULL, 0, NULL, 0, pk_table, SQL_NTS);
-			if (keyresult != SQL_SUCCESS) {
+			if (keyresult != SQL_SUCCESS)
+			{
 				stmt->errornumber = STMT_NO_MEMORY_ERROR;
 				stmt->errormsg = "Couldn't get primary keys for SQLForeignKeys result.";
 				SC_log_error(func, "", stmt);
@@ -2552,77 +2932,77 @@ Int2 result_cols;
 			}
 
 
-			/*	Check that the key listed is the primary key */
+			/* Check that the key listed is the primary key */
 			keyresult = SQLFetch(hpkey_stmt);
 
-			/*	Get to first primary key */
+			/* Get to first primary key */
 			pkey_ptr = trig_args;
 			for (i = 0; i < 5; i++)
 				pkey_ptr += strlen(pkey_ptr) + 1;
 
-			for (k = 0; k < num_keys; k++) {
+			for (k = 0; k < num_keys; k++)
+			{
 				mylog("%s: pkey_ptr='%s', pkey='%s'\n", func, pkey_ptr, pkey);
-				if ( keyresult != SQL_SUCCESS || strcmp(pkey_ptr, pkey)) {
+				if (keyresult != SQL_SUCCESS || strcmp(pkey_ptr, pkey))
+				{
 					num_keys = 0;
 					break;
 				}
 
-				/*	Get to next primary key */
+				/* Get to next primary key */
 				for (k = 0; k < 2; k++)
 					pkey_ptr += strlen(pkey_ptr) + 1;
 
 				keyresult = SQLFetch(hpkey_stmt);
 			}
 
-			/*	Set to first fk column */
+			/* Set to first fk column */
 			fkey_ptr = trig_args;
 			for (k = 0; k < 4; k++)
 				fkey_ptr += strlen(fkey_ptr) + 1;
 
 			/* Set update and delete actions for foreign keys */
-			if (!strcmp(upd_rule, "RI_FKey_cascade_upd")) {
+			if (!strcmp(upd_rule, "RI_FKey_cascade_upd"))
 				upd_rule_type = SQL_CASCADE;
-			} else if (!strcmp(upd_rule, "RI_FKey_noaction_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_noaction_upd"))
 				upd_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_restrict_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_restrict_upd"))
 				upd_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_setdefault_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setdefault_upd"))
 				upd_rule_type = SQL_SET_DEFAULT;
-			} else if (!strcmp(upd_rule, "RI_FKey_setnull_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setnull_upd"))
 				upd_rule_type = SQL_SET_NULL;
-			}
-			
-			if (!strcmp(upd_rule, "RI_FKey_cascade_del")) {
+
+			if (!strcmp(upd_rule, "RI_FKey_cascade_del"))
 				del_rule_type = SQL_CASCADE;
-			} else if (!strcmp(upd_rule, "RI_FKey_noaction_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_noaction_del"))
 				del_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_restrict_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_restrict_del"))
 				del_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_setdefault_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setdefault_del"))
 				del_rule_type = SQL_SET_DEFAULT;
-			} else if (!strcmp(upd_rule, "RI_FKey_setnull_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setnull_del"))
 				del_rule_type = SQL_SET_NULL;
-			}
 
 #if (ODBCVER >= 0x0300)
 			/* Set deferrability type */
-			if (!strcmp(trig_initdeferred, "y")) {
+			if (!strcmp(trig_initdeferred, "y"))
 				defer_type = SQL_INITIALLY_DEFERRED;
-			} else if (!strcmp(trig_deferrable, "y")) {
+			else if (!strcmp(trig_deferrable, "y"))
 				defer_type = SQL_INITIALLY_IMMEDIATE;
-			} else {
+			else
 				defer_type = SQL_NOT_DEFERRABLE;
-			}
-#endif /* ODBCVER >= 0x0300 */
+#endif	 /* ODBCVER >= 0x0300 */
 
-			/*	Get to first primary key */
+			/* Get to first primary key */
 			pkey_ptr = trig_args;
 			for (i = 0; i < 5; i++)
 				pkey_ptr += strlen(pkey_ptr) + 1;
 
-			for (k = 0; k < num_keys; k++) {
+			for (k = 0; k < num_keys; k++)
+			{
 
-				row = (TupleNode *)malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField));
+				row = (TupleNode *) malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField));
 
 				mylog("%s: pk_table = '%s', pkey_ptr = '%s'\n", func, pk_table, pkey_ptr);
 				set_tuplefield_null(&row->tuple[0]);
@@ -2645,12 +3025,13 @@ Int2 result_cols;
 				set_tuplefield_string(&row->tuple[13], trig_args);
 #if (ODBCVER >= 0x0300)
 				set_tuplefield_int2(&row->tuple[14], defer_type);
-#endif /* ODBCVER >= 0x0300 */
+#endif	 /* ODBCVER >= 0x0300 */
 
 				QR_add_tuple(stmt->result, row);
 
 				/* next primary/foreign key */
-				for (i = 0; i < 2; i++) {
+				for (i = 0; i < 2; i++)
+				{
 					fkey_ptr += strlen(fkey_ptr) + 1;
 					pkey_ptr += strlen(pkey_ptr) + 1;
 				}
@@ -2661,53 +3042,58 @@ Int2 result_cols;
 		SQLFreeStmt(hpkey_stmt, SQL_DROP);
 	}
 
-	/*	Case #1 -- Get the foreign keys in other tables that refer to the primary key
-		in the specified table (pktab).  i.e., Who points to me?
-	*/
-    else if (pk_table_needed[0] != '\0') {
+	/*
+	 * Case #1 -- Get the foreign keys in other tables that refer to the
+	 * primary key in the specified table (pktab).	i.e., Who points to
+	 * me?
+	 */
+	else if (pk_table_needed[0] != '\0')
+	{
 
 		sprintf(tables_query, "SELECT	pg_trigger.tgargs, "
-								"		pg_trigger.tgnargs, "
-								"		pg_trigger.tgdeferrable, "
-								"		pg_trigger.tginitdeferred, "
-								"		pg_proc.proname, "
-								"		pg_proc_1.proname "
-								"FROM	pg_class pg_class, "
-								"		pg_class pg_class_1, "
-								"		pg_class pg_class_2, "
-								"		pg_proc pg_proc, "
-								"		pg_proc pg_proc_1, "
-								"		pg_trigger pg_trigger, "
-								"		pg_trigger pg_trigger_1, "
-								"		pg_trigger pg_trigger_2 "
-								"WHERE	pg_trigger.tgconstrrelid = pg_class.oid "
-								"	AND pg_trigger.tgrelid = pg_class_1.oid "
-								"	AND pg_trigger_1.tgfoid = pg_proc_1.oid "
-								"	AND pg_trigger_1.tgconstrrelid = pg_class_1.oid "
-								"	AND pg_trigger_2.tgconstrrelid = pg_class_2.oid "
-								"	AND pg_trigger_2.tgfoid = pg_proc.oid "
-								"	AND pg_class_2.oid = pg_trigger.tgrelid "
-								"	AND ("
-								"		 (pg_class.relname='%s') "
-								"	AND  (pg_proc.proname Like '%%upd') "
-								"	AND  (pg_proc_1.proname Like '%%del')"
-								"	AND	 (pg_trigger_1.tgrelid = pg_trigger.tgconstrrelid) "
-								"	AND	 (pg_trigger_2.tgrelid = pg_trigger.tgconstrrelid) "
-								"		)",
+				"		pg_trigger.tgnargs, "
+				"		pg_trigger.tgdeferrable, "
+				"		pg_trigger.tginitdeferred, "
+				"		pg_proc.proname, "
+				"		pg_proc_1.proname "
+				"FROM	pg_class pg_class, "
+				"		pg_class pg_class_1, "
+				"		pg_class pg_class_2, "
+				"		pg_proc pg_proc, "
+				"		pg_proc pg_proc_1, "
+				"		pg_trigger pg_trigger, "
+				"		pg_trigger pg_trigger_1, "
+				"		pg_trigger pg_trigger_2 "
+				"WHERE	pg_trigger.tgconstrrelid = pg_class.oid "
+				"	AND pg_trigger.tgrelid = pg_class_1.oid "
+				"	AND pg_trigger_1.tgfoid = pg_proc_1.oid "
+				"	AND pg_trigger_1.tgconstrrelid = pg_class_1.oid "
+				"	AND pg_trigger_2.tgconstrrelid = pg_class_2.oid "
+				"	AND pg_trigger_2.tgfoid = pg_proc.oid "
+				"	AND pg_class_2.oid = pg_trigger.tgrelid "
+				"	AND ("
+				"		 (pg_class.relname='%s') "
+				"	AND  (pg_proc.proname Like '%%upd') "
+				"	AND  (pg_proc_1.proname Like '%%del')"
+				"	AND	 (pg_trigger_1.tgrelid = pg_trigger.tgconstrrelid) "
+				"	AND	 (pg_trigger_2.tgrelid = pg_trigger.tgconstrrelid) "
+				"		)",
 				pk_table_needed);
 
 		result = SQLExecDirect(htbl_stmt, tables_query, strlen(tables_query));
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = SC_create_errormsg(htbl_stmt);
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
-    		SQLFreeStmt(htbl_stmt, SQL_DROP);
+			SQLFreeStmt(htbl_stmt, SQL_DROP);
 			return SQL_ERROR;
 		}
 
 		result = SQLBindCol(htbl_stmt, 1, SQL_C_BINARY,
 							trig_args, sizeof(trig_args), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2717,7 +3103,8 @@ Int2 result_cols;
 
 		result = SQLBindCol(htbl_stmt, 2, SQL_C_SHORT,
 							&trig_nargs, 0, NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2726,8 +3113,9 @@ Int2 result_cols;
 		}
 
 		result = SQLBindCol(htbl_stmt, 3, SQL_C_CHAR,
-							trig_deferrable, sizeof(trig_deferrable), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+						 trig_deferrable, sizeof(trig_deferrable), NULL);
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2736,8 +3124,9 @@ Int2 result_cols;
 		}
 
 		result = SQLBindCol(htbl_stmt, 4, SQL_C_CHAR,
-							trig_initdeferred, sizeof(trig_initdeferred), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+					 trig_initdeferred, sizeof(trig_initdeferred), NULL);
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2747,7 +3136,8 @@ Int2 result_cols;
 
 		result = SQLBindCol(htbl_stmt, 5, SQL_C_CHAR,
 							upd_rule, sizeof(upd_rule), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2757,7 +3147,8 @@ Int2 result_cols;
 
 		result = SQLBindCol(htbl_stmt, 6, SQL_C_CHAR,
 							del_rule, sizeof(del_rule), NULL);
-		if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+		if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+		{
 			stmt->errormsg = tbl_stmt->errormsg;
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2769,7 +3160,8 @@ Int2 result_cols;
 		if (result == SQL_NO_DATA_FOUND)
 			return SQL_SUCCESS;
 
-		if(result != SQL_SUCCESS) {
+		if (result != SQL_SUCCESS)
+		{
 			stmt->errormsg = SC_create_errormsg(htbl_stmt);
 			stmt->errornumber = tbl_stmt->errornumber;
 			SC_log_error(func, "", stmt);
@@ -2777,79 +3169,78 @@ Int2 result_cols;
 			return SQL_ERROR;
 		}
 
-		while (result == SQL_SUCCESS) {
+		while (result == SQL_SUCCESS)
+		{
 
-			/*	Calculate the number of key parts */
+			/* Calculate the number of key parts */
 			num_keys = (trig_nargs - 4) / 2;;
 
-			/*	Handle action (i.e., 'cascade', 'restrict', 'setnull') */
-			if (!strcmp(upd_rule, "RI_FKey_cascade_upd")) {
+			/* Handle action (i.e., 'cascade', 'restrict', 'setnull') */
+			if (!strcmp(upd_rule, "RI_FKey_cascade_upd"))
 				upd_rule_type = SQL_CASCADE;
-			} else if (!strcmp(upd_rule, "RI_FKey_noaction_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_noaction_upd"))
 				upd_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_restrict_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_restrict_upd"))
 				upd_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_setdefault_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setdefault_upd"))
 				upd_rule_type = SQL_SET_DEFAULT;
-			} else if (!strcmp(upd_rule, "RI_FKey_setnull_upd")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setnull_upd"))
 				upd_rule_type = SQL_SET_NULL;
-			}
-			
-			if (!strcmp(upd_rule, "RI_FKey_cascade_del")) {
+
+			if (!strcmp(upd_rule, "RI_FKey_cascade_del"))
 				del_rule_type = SQL_CASCADE;
-			} else if (!strcmp(upd_rule, "RI_FKey_noaction_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_noaction_del"))
 				del_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_restrict_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_restrict_del"))
 				del_rule_type = SQL_NO_ACTION;
-			} else if (!strcmp(upd_rule, "RI_FKey_setdefault_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setdefault_del"))
 				del_rule_type = SQL_SET_DEFAULT;
-			} else if (!strcmp(upd_rule, "RI_FKey_setnull_del")) {
+			else if (!strcmp(upd_rule, "RI_FKey_setnull_del"))
 				del_rule_type = SQL_SET_NULL;
-			}			
 
 #if (ODBCVER >= 0x0300)
 			/* Set deferrability type */
-			if (!strcmp(trig_initdeferred, "y")) {
+			if (!strcmp(trig_initdeferred, "y"))
 				defer_type = SQL_INITIALLY_DEFERRED;
-			} else if (!strcmp(trig_deferrable, "y")) {
+			else if (!strcmp(trig_deferrable, "y"))
 				defer_type = SQL_INITIALLY_IMMEDIATE;
-			} else {
+			else
 				defer_type = SQL_NOT_DEFERRABLE;
-			}
-#endif /* ODBCVER >= 0x0300 */
+#endif	 /* ODBCVER >= 0x0300 */
 
 			mylog("Foreign Key Case#1: trig_nargs = %d, num_keys = %d\n", trig_nargs, num_keys);
 
-			/*	Get to first primary key */
+			/* Get to first primary key */
 			pkey_ptr = trig_args;
 			for (i = 0; i < 5; i++)
 				pkey_ptr += strlen(pkey_ptr) + 1;
 
 
-			/*	Get to first foreign table */
+			/* Get to first foreign table */
 			fk_table = trig_args;
 			fk_table += strlen(fk_table) + 1;
 
 			/* Get to first foreign key */
 			fkey_ptr = trig_args;
-			for (k = 0; k < 4; k++) 
+			for (k = 0; k < 4; k++)
 				fkey_ptr += strlen(fkey_ptr) + 1;
 
-			for (k = 0; k < num_keys; k++) {
+			for (k = 0; k < num_keys; k++)
+			{
 
 				mylog("pkey_ptr = '%s', fk_table = '%s', fkey_ptr = '%s'\n", pkey_ptr, fk_table, fkey_ptr);
 
-					row = (TupleNode *)malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField));
+				row = (TupleNode *) malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField));
 
 				mylog("pk_table_needed = '%s', pkey_ptr = '%s'\n", pk_table_needed, pkey_ptr);
-					set_tuplefield_null(&row->tuple[0]);
-					set_tuplefield_string(&row->tuple[1], "");
+				set_tuplefield_null(&row->tuple[0]);
+				set_tuplefield_string(&row->tuple[1], "");
 				set_tuplefield_string(&row->tuple[2], pk_table_needed);
 				set_tuplefield_string(&row->tuple[3], pkey_ptr);
 
 				mylog("fk_table = '%s', fkey_ptr = '%s'\n", fk_table, fkey_ptr);
-					set_tuplefield_null(&row->tuple[4]);
-					set_tuplefield_string(&row->tuple[5], "");
+				set_tuplefield_null(&row->tuple[4]);
+				set_tuplefield_string(&row->tuple[5], "");
 				set_tuplefield_string(&row->tuple[6], fk_table);
 				set_tuplefield_string(&row->tuple[7], fkey_ptr);
 
@@ -2859,20 +3250,21 @@ Int2 result_cols;
 				set_nullfield_int2(&row->tuple[9], (Int2) upd_rule_type);
 				set_nullfield_int2(&row->tuple[10], (Int2) del_rule_type);
 
-					set_tuplefield_null(&row->tuple[11]);
-					set_tuplefield_null(&row->tuple[12]);
+				set_tuplefield_null(&row->tuple[11]);
+				set_tuplefield_null(&row->tuple[12]);
 
 				set_tuplefield_string(&row->tuple[13], trig_args);
 
 #if (ODBCVER >= 0x0300)
 				mylog("defer_type = '%s'", defer_type);
 				set_tuplefield_int2(&row->tuple[14], defer_type);
-#endif /* ODBCVER >= 0x0300 */
+#endif	 /* ODBCVER >= 0x0300 */
 
 				QR_add_tuple(stmt->result, row);
 
-				/*	next primary/foreign key */
-				for (j = 0; j < 2; j++) {
+				/* next primary/foreign key */
+				for (j = 0; j < 2; j++)
+				{
 					pkey_ptr += strlen(pkey_ptr) + 1;
 					fkey_ptr += strlen(fkey_ptr) + 1;
 				}
@@ -2880,8 +3272,9 @@ Int2 result_cols;
 
 			result = SQLFetch(htbl_stmt);
 		}
-    }
-	else {
+	}
+	else
+	{
 		stmt->errormsg = "No tables specified to SQLForeignKeys.";
 		stmt->errornumber = STMT_INTERNAL_ERROR;
 		SC_log_error(func, "", stmt);
@@ -2892,60 +3285,63 @@ Int2 result_cols;
 	SQLFreeStmt(htbl_stmt, SQL_DROP);
 
 	mylog("SQLForeignKeys(): EXIT, stmt=%u\n", stmt);
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
 
 
-RETCODE SQL_API SQLProcedureColumns(
-                                    HSTMT         hstmt,
-                                    UCHAR FAR *   szProcQualifier,
-                                    SWORD         cbProcQualifier,
-                                    UCHAR FAR *   szProcOwner,
-                                    SWORD         cbProcOwner,
-                                    UCHAR FAR *   szProcName,
-                                    SWORD         cbProcName,
-                                    UCHAR FAR *   szColumnName,
-                                    SWORD         cbColumnName)
+RETCODE SQL_API
+SQLProcedureColumns(
+					HSTMT hstmt,
+					UCHAR FAR * szProcQualifier,
+					SWORD cbProcQualifier,
+					UCHAR FAR * szProcOwner,
+					SWORD cbProcOwner,
+					UCHAR FAR * szProcName,
+					SWORD cbProcName,
+					UCHAR FAR * szColumnName,
+					SWORD cbColumnName)
 {
-static char *func="SQLProcedureColumns";
+	static char *func = "SQLProcedureColumns";
 
 	mylog("%s: entering...\n", func);
 
 	SC_log_error(func, "Function not implemented", (StatementClass *) hstmt);
-    return SQL_ERROR;
+	return SQL_ERROR;
 }
 
-RETCODE SQL_API SQLProcedures(
-                              HSTMT          hstmt,
-                              UCHAR FAR *    szProcQualifier,
-                              SWORD          cbProcQualifier,
-                              UCHAR FAR *    szProcOwner,
-                              SWORD          cbProcOwner,
-                              UCHAR FAR *    szProcName,
-                              SWORD          cbProcName)
+RETCODE SQL_API
+SQLProcedures(
+			  HSTMT hstmt,
+			  UCHAR FAR * szProcQualifier,
+			  SWORD cbProcQualifier,
+			  UCHAR FAR * szProcOwner,
+			  SWORD cbProcOwner,
+			  UCHAR FAR * szProcName,
+			  SWORD cbProcName)
 {
-static char *func="SQLProcedures";
+	static char *func = "SQLProcedures";
 
 	mylog("%s: entering...\n", func);
 
 	SC_log_error(func, "Function not implemented", (StatementClass *) hstmt);
-    return SQL_ERROR;
+	return SQL_ERROR;
 }
 
-RETCODE SQL_API SQLTablePrivileges(
-                                   HSTMT           hstmt,
-                                   UCHAR FAR *     szTableQualifier,
-                                   SWORD           cbTableQualifier,
-                                   UCHAR FAR *     szTableOwner,
-                                   SWORD           cbTableOwner,
-                                   UCHAR FAR *     szTableName,
-                                   SWORD           cbTableName)
+RETCODE SQL_API
+SQLTablePrivileges(
+				   HSTMT hstmt,
+				   UCHAR FAR * szTableQualifier,
+				   SWORD cbTableQualifier,
+				   UCHAR FAR * szTableOwner,
+				   SWORD cbTableOwner,
+				   UCHAR FAR * szTableName,
+				   SWORD cbTableName)
 {
-static char *func="SQLTablePrivileges";
+	static char *func = "SQLTablePrivileges";
 
 	mylog("%s: entering...\n", func);
 
 	SC_log_error(func, "Function not implemented", (StatementClass *) hstmt);
-    return SQL_ERROR;
+	return SQL_ERROR;
 }
diff --git a/src/interfaces/odbc/iodbc.h b/src/interfaces/odbc/iodbc.h
index ab6a6015adad547454b06af22b634c74c58ac303..ef3df399a6c082774610b9e155773e5154ea906c 100644
--- a/src/interfaces/odbc/iodbc.h
+++ b/src/interfaces/odbc/iodbc.h
@@ -1,66 +1,66 @@
-#ifndef	_IODBC_H
-#define	_IODBC_H
-
-# if	!defined(WIN32) && !defined(WIN32_SYSTEM) 
-#  define	_UNIX_
-
-#  include	<stdlib.h>
-#  include	<sys/types.h>
-
-#  define	MEM_ALLOC(size)	(malloc((size_t)(size)))
-#  define	MEM_FREE(ptr)	{if(ptr) free(ptr);}
-
-#  define	STRCPY(t, s)	(strcpy((char*)(t), (char*)(s)))	
-#  define	STRNCPY(t,s,n)	(strncpy((char*)(t), (char*)(s), (size_t)(n)))
-#  define	STRCAT(t, s)	(strcat((char*)(t), (char*)(s)))
-#  define	STRNCAT(t,s,n)	(strncat((char*)(t), (char*)(s), (size_t)(n)))
-#  define	STREQ(a, b)	(strcmp((char*)(a), (char*)(b)) == 0)
-#  define	STRLEN(str)	((str)? strlen((char*)(str)):0)
-
-#  define	EXPORT
-#  define	CALLBACK
-#  define	FAR
-
-   typedef 	signed short	SSHOR;
-   typedef	short		WORD;
-   typedef 	long		DWORD;
-
-   typedef	WORD		WPARAM;
-   typedef	DWORD		LPARAM;
-   typedef	void*		HWND;
-   typedef	int		BOOL;
-
-# endif	/* _UNIX_ */
-
-# if	defined(WIN32) || defined(WIN32_SYSTEM)
-
-#  include	<windows.h>
-#  include	<windowsx.h>
-
-#  ifdef	_MSVC_
-#   define	MEM_ALLOC(size)	(fmalloc((size_t)(size)))
-#   define	MEM_FREE(ptr)	((ptr)? ffree((PTR)(ptr)):0))
-#   define	STRCPY(t, s)	(fstrcpy((char FAR*)(t), (char FAR*)(s)))
-#   define	STRNCPY(t,s,n)	(fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n)))
-#   define	STRLEN(str)	((str)? fstrlen((char FAR*)(str)):0)
-#   define	STREQ(a, b)	(fstrcmp((char FAR*)(a), (char FAR*)(b) == 0)
-#  endif
-
-#  ifdef	_BORLAND_
-#   define	MEM_ALLOC(size)	(farmalloc((unsigned long)(size))
-#   define	MEM_FREE(ptr)	((ptr)? farfree((void far*)(ptr)):0)
-#   define	STRCPY(t, s)	(_fstrcpy((char FAR*)(t), (char FAR*)(s)))
-#   define	STRNCPY(t,s,n)	(_fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n)))
-#   define      STRLEN(str)     ((str)? _fstrlen((char FAR*)(str)):0)
-#   define      STREQ(a, b)     (_fstrcmp((char FAR*)(a), (char FAR*)(b) == 0)
-#  endif
-
-# endif	/* WIN32 */
-
-# define	SYSERR		(-1)
-
-# ifndef	NULL
-#   define	NULL		((void FAR*)0UL)
-# endif
+#ifndef _IODBC_H
+#define _IODBC_H
+
+#if    !defined(WIN32) && !defined(WIN32_SYSTEM)
+#define   _UNIX_
+
+#include  <stdlib.h>
+#include  <sys/types.h>
+
+#define   MEM_ALLOC(size) (malloc((size_t)(size)))
+#define   MEM_FREE(ptr)   {if(ptr) free(ptr);}
+
+#define   STRCPY(t, s)	  (strcpy((char*)(t), (char*)(s)))
+#define   STRNCPY(t,s,n)  (strncpy((char*)(t), (char*)(s), (size_t)(n)))
+#define   STRCAT(t, s)	  (strcat((char*)(t), (char*)(s)))
+#define   STRNCAT(t,s,n)  (strncat((char*)(t), (char*)(s), (size_t)(n)))
+#define   STREQ(a, b) (strcmp((char*)(a), (char*)(b)) == 0)
+#define   STRLEN(str) ((str)? strlen((char*)(str)):0)
+
+#define   EXPORT
+#define   CALLBACK
+#define   FAR
+
+typedef signed short SSHOR;
+typedef short WORD;
+typedef long DWORD;
+
+typedef WORD WPARAM;
+typedef DWORD LPARAM;
+typedef void *HWND;
+typedef int BOOL;
+
+#endif	 /* _UNIX_ */
+
+#if    defined(WIN32) || defined(WIN32_SYSTEM)
+
+#include  <windows.h>
+#include  <windowsx.h>
+
+#ifdef	  _MSVC_
+#define  MEM_ALLOC(size) (fmalloc((size_t)(size)))
+#define  MEM_FREE(ptr)	 ((ptr)? ffree((PTR)(ptr)):0))
+#define  STRCPY(t, s)	 (fstrcpy((char FAR*)(t), (char FAR*)(s)))
+#define  STRNCPY(t,s,n)  (fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n)))
+#define  STRLEN(str) ((str)? fstrlen((char FAR*)(str)):0)
+#define  STREQ(a, b) (fstrcmp((char FAR*)(a), (char FAR*)(b) == 0)
+#endif
+
+#ifdef	  _BORLAND_
+#define  MEM_ALLOC(size) (farmalloc((unsigned long)(size))
+#define  MEM_FREE(ptr)	 ((ptr)? farfree((void far*)(ptr)):0)
+#define  STRCPY(t, s)	 (_fstrcpy((char FAR*)(t), (char FAR*)(s)))
+#define  STRNCPY(t,s,n)  (_fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n)))
+#define		 STRLEN(str)	 ((str)? _fstrlen((char FAR*)(str)):0)
+#define		 STREQ(a, b)	 (_fstrcmp((char FAR*)(a), (char FAR*)(b) == 0)
+#endif
+
+#endif	 /* WIN32 */
+
+#define    SYSERR	   (-1)
+
+#ifndef    NULL
+#define  NULL		 ((void FAR*)0UL)
+#endif
 
 #endif
diff --git a/src/interfaces/odbc/isql.h b/src/interfaces/odbc/isql.h
index deeddd3db04242300ff64c5d8722990418e1ab6b..de50b89248765f5a6176b044e1c8bf4c52e1736b 100644
--- a/src/interfaces/odbc/isql.h
+++ b/src/interfaces/odbc/isql.h
@@ -2,97 +2,97 @@
 * include path to be used to create ODBC compliant applications.
 */
 #ifndef _INTRINSIC_SQL_H
-# define _INTRINSIC_SQL_H
+#define _INTRINSIC_SQL_H
 
-typedef unsigned char		UCHAR;
-typedef long int		SDWORD;
-typedef short int		SWORD;
-typedef unsigned long int	UDWORD; 
-typedef unsigned short int	UWORD;
+typedef unsigned char UCHAR;
+typedef long int SDWORD;
+typedef short int SWORD;
+typedef unsigned long int UDWORD;
+typedef unsigned short int UWORD;
 
-typedef void FAR*		PTR;
+typedef void FAR *PTR;
 
-typedef void FAR*		HENV;
-typedef void FAR*		HDBC;
-typedef void FAR*		HSTMT;
+typedef void FAR *HENV;
+typedef void FAR *HDBC;
+typedef void FAR *HSTMT;
 
-typedef signed short		RETCODE;
+typedef signed short RETCODE;
 
-# ifdef WIN32
-#   define SQL_API			__stdcall
-# else
-#   define SQL_API			EXPORT CALLBACK
-# endif
+#ifdef WIN32
+#define SQL_API			 __stdcall
+#else
+#define SQL_API			 EXPORT CALLBACK
+#endif
 
-# define ODBCVER			0x0250
+#define ODBCVER			   0x0250
 
-# define SQL_MAX_MESSAGE_LENGTH		512
-# define SQL_MAX_DSN_LENGTH		32
+#define SQL_MAX_MESSAGE_LENGTH	   512
+#define SQL_MAX_DSN_LENGTH	   32
 
 /* return code */
-# define SQL_INVALID_HANDLE		(-2)
-# define SQL_ERROR			(-1)
-# define SQL_SUCCESS 			0
-# define SQL_SUCCESS_WITH_INFO		1
-# define SQL_NO_DATA_FOUND		100
+#define SQL_INVALID_HANDLE	   (-2)
+#define SQL_ERROR		   (-1)
+#define SQL_SUCCESS			   0
+#define SQL_SUCCESS_WITH_INFO	   1
+#define SQL_NO_DATA_FOUND	   100
 
 /* standard SQL datatypes (agree with ANSI type numbering) */
-# define SQL_CHAR			1
-# define SQL_NUMERIC 			2
-# define SQL_DECIMAL 			3
-# define SQL_INTEGER 			4
-# define SQL_SMALLINT			5
-# define SQL_FLOAT			6
-# define SQL_REAL			7
-# define SQL_DOUBLE			8
-# define SQL_VARCHAR 			12
-
-# define SQL_TYPE_MIN			SQL_CHAR
-# define SQL_TYPE_NULL			0
-# define SQL_TYPE_MAX			SQL_VARCHAR
+#define SQL_CHAR		   1
+#define SQL_NUMERIC			   2
+#define SQL_DECIMAL			   3
+#define SQL_INTEGER			   4
+#define SQL_SMALLINT		   5
+#define SQL_FLOAT		   6
+#define SQL_REAL		   7
+#define SQL_DOUBLE		   8
+#define SQL_VARCHAR			   12
+
+#define SQL_TYPE_MIN		   SQL_CHAR
+#define SQL_TYPE_NULL		   0
+#define SQL_TYPE_MAX		   SQL_VARCHAR
 
 /* C to SQL datatype mapping */
-# define SQL_C_CHAR			SQL_CHAR
-# define SQL_C_LONG			SQL_INTEGER
-# define SQL_C_SHORT   			SQL_SMALLINT
-# define SQL_C_FLOAT   			SQL_REAL
-# define SQL_C_DOUBLE			SQL_DOUBLE
-# define SQL_C_DEFAULT 			99
+#define SQL_C_CHAR		   SQL_CHAR
+#define SQL_C_LONG		   SQL_INTEGER
+#define SQL_C_SHORT			   SQL_SMALLINT
+#define SQL_C_FLOAT			   SQL_REAL
+#define SQL_C_DOUBLE		   SQL_DOUBLE
+#define SQL_C_DEFAULT		   99
 
-# define SQL_NO_NULLS			0
-# define SQL_NULLABLE			1
-# define SQL_NULLABLE_UNKNOWN		2
+#define SQL_NO_NULLS		   0
+#define SQL_NULLABLE		   1
+#define SQL_NULLABLE_UNKNOWN	   2
 
 /* some special length values */
-# define SQL_NULL_DATA			(-1)
-# define SQL_DATA_AT_EXEC		(-2)
-# define SQL_NTS 			(-3)
+#define SQL_NULL_DATA		   (-1)
+#define SQL_DATA_AT_EXEC	   (-2)
+#define SQL_NTS			   (-3)
 
 /* SQLFreeStmt flag values */
-# define SQL_CLOSE			0
-# define SQL_DROP			1
-# define SQL_UNBIND			2
-# define SQL_RESET_PARAMS		3
+#define SQL_CLOSE		   0
+#define SQL_DROP		   1
+#define SQL_UNBIND		   2
+#define SQL_RESET_PARAMS	   3
 
 /* SQLTransact flag values */
-# define SQL_COMMIT			0
-# define SQL_ROLLBACK			1
+#define SQL_COMMIT		   0
+#define SQL_ROLLBACK		   1
 
 /* SQLColAttributes flag values */
-# define SQL_COLUMN_COUNT            	0
-# define SQL_COLUMN_LABEL		18
-# define SQL_COLATT_OPT_MAX		SQL_COLUMN_LABEL
-# define SQL_COLUMN_DRIVER_START	1000
+#define SQL_COLUMN_COUNT			   0
+#define SQL_COLUMN_LABEL	   18
+#define SQL_COLATT_OPT_MAX	   SQL_COLUMN_LABEL
+#define SQL_COLUMN_DRIVER_START    1000
 
-# define SQL_COLATT_OPT_MIN		SQL_COLUMN_COUNT
+#define SQL_COLATT_OPT_MIN	   SQL_COLUMN_COUNT
 
 /* Null handles */
-# define SQL_NULL_HENV			0
-# define SQL_NULL_HDBC			0
-# define SQL_NULL_HSTMT			0
+#define SQL_NULL_HENV		   0
+#define SQL_NULL_HDBC		   0
+#define SQL_NULL_HSTMT		   0
 
 /* All code below has been added to the original isql.h coming from iodbc */
-typedef unsigned char	BYTE;
+typedef unsigned char BYTE;
 
 /* More SQLColAttributes flag values */
 #define SQL_COLUMN_NAME			1
@@ -116,9 +116,9 @@ typedef unsigned char	BYTE;
 /* SQLColAttributes Searchable flags */
 #define SQL_UNSEARCHABLE	0
 #define SQL_LIKE_ONLY		1
-#define SQL_ALL_EXCEPT_LIKE	2
+#define SQL_ALL_EXCEPT_LIKE 2
 #define SQL_SEARCHABLE		3
-#define SQL_PRED_SEARCHABLE	SQL_SEARCHABLE
+#define SQL_PRED_SEARCHABLE SQL_SEARCHABLE
 
 /* SQLColAttributes Updateable flags */
 #define SQL_ATTR_READONLY		0
@@ -126,112 +126,113 @@ typedef unsigned char	BYTE;
 #define SQL_ATTR_READWRITE_UNKNOWN	2
 
 /*
- *  function prototypes previously not contained in isql.h
+ *	function prototypes previously not contained in isql.h
  */
 #ifdef __cplusplus
-extern "C"
+extern		"C"
 {
 #endif
 
-RETCODE SQL_API SQLAllocConnect (HENV henv,
-	HDBC FAR * phdbc);
-RETCODE SQL_API SQLAllocEnv (HENV FAR * phenv);
-RETCODE SQL_API SQLAllocStmt (HDBC hdbc,
-	HSTMT FAR * phstmt);
-RETCODE SQL_API SQLBindCol (HSTMT hstmt,
-	UWORD icol,
-	SWORD fCType,
-	PTR rgbValue,
-	SDWORD cbValueMax,
-	SDWORD FAR * pcbValue);
-
-RETCODE SQL_API SQLCancel (HSTMT hstmt);
-
-RETCODE SQL_API SQLColAttributes (HSTMT hstmt,
-	UWORD icol,
-	UWORD fDescType,
-	PTR rgbDesc,
-	SWORD cbDescMax,
-	SWORD FAR * pcbDesc,
-	SDWORD FAR * pfDesc);
-
-RETCODE SQL_API SQLConnect (HDBC hdbc,
-	UCHAR FAR * szDSN,
-	SWORD cbDSN,
-	UCHAR FAR * szUID,
-	SWORD cbUID,
-	UCHAR FAR * szAuthStr,
-	SWORD cbAuthStr);
-
-RETCODE SQL_API SQLDescribeCol (HSTMT hstmt,
-	UWORD icol,
-	UCHAR FAR * szColName,
-	SWORD cbColNameMax,
-	SWORD FAR * pcbColName,
-	SWORD FAR * pfSqlType,
-	UDWORD FAR * pcbColDef,
-	SWORD FAR * pibScale,
-	SWORD FAR * pfNullable);
-
-RETCODE SQL_API SQLDisconnect (HDBC hdbc);
-
-RETCODE SQL_API SQLError (HENV henv,
-	HDBC hdbc,
-	HSTMT hstmt,
-	UCHAR FAR * szSqlState,
-	SDWORD FAR * pfNativeError,
-	UCHAR FAR * szErrorMsg,
-	SWORD cbErrorMsgMax,
-	SWORD FAR * pcbErrorMsg);
-
-RETCODE SQL_API SQLExecDirect (HSTMT hstmt,
-	UCHAR FAR * szSqlStr,
-	SDWORD cbSqlStr);
-
-RETCODE SQL_API SQLExecute (HSTMT hstmt);
-
-RETCODE SQL_API SQLFetch (HSTMT hstmt);
-
-RETCODE SQL_API SQLFreeConnect (HDBC hdbc);
-
-RETCODE SQL_API SQLFreeEnv (HENV henv);
-
-RETCODE SQL_API SQLFreeStmt (HSTMT hstmt,
-	UWORD fOption);
-
-RETCODE SQL_API SQLGetCursorName (HSTMT hstmt,
-	UCHAR FAR * szCursor,
-	SWORD cbCursorMax,
-	SWORD FAR * pcbCursor);
-
-RETCODE SQL_API SQLNumResultCols (HSTMT hstmt,
-	SWORD FAR * pccol);
-
-RETCODE SQL_API SQLPrepare (HSTMT hstmt,
-	UCHAR FAR * szSqlStr,
-	SDWORD cbSqlStr);
-
-RETCODE SQL_API SQLRowCount (HSTMT hstmt,
-	SDWORD FAR * pcrow);
-
-RETCODE SQL_API SQLSetCursorName (HSTMT hstmt,
-	UCHAR FAR * szCursor,
-	SWORD cbCursor);
-
-RETCODE SQL_API SQLTransact (HENV henv,
-	HDBC hdbc,
-	UWORD fType);
-
-RETCODE SQL_API SQLSetParam (HSTMT hstmt,
-	UWORD ipar,
-	SWORD fCType,
-	SWORD fSqlType,
-	UDWORD cbColDef,
-	SWORD ibScale,
-	PTR rgbValue,
-	SDWORD FAR * pcbValue);
+	RETCODE SQL_API SQLAllocConnect(HENV henv,
+												HDBC FAR * phdbc);
+	RETCODE SQL_API SQLAllocEnv(HENV FAR * phenv);
+	RETCODE SQL_API SQLAllocStmt(HDBC hdbc,
+											 HSTMT FAR * phstmt);
+	RETCODE SQL_API SQLBindCol(HSTMT hstmt,
+										   UWORD icol,
+										   SWORD fCType,
+										   PTR rgbValue,
+										   SDWORD cbValueMax,
+										   SDWORD FAR * pcbValue);
+
+	RETCODE SQL_API SQLCancel(HSTMT hstmt);
+
+	RETCODE SQL_API SQLColAttributes(HSTMT hstmt,
+												 UWORD icol,
+												 UWORD fDescType,
+												 PTR rgbDesc,
+												 SWORD cbDescMax,
+												 SWORD FAR * pcbDesc,
+												 SDWORD FAR * pfDesc);
+
+	RETCODE SQL_API SQLConnect(HDBC hdbc,
+										   UCHAR FAR * szDSN,
+										   SWORD cbDSN,
+										   UCHAR FAR * szUID,
+										   SWORD cbUID,
+										   UCHAR FAR * szAuthStr,
+										   SWORD cbAuthStr);
+
+	RETCODE SQL_API SQLDescribeCol(HSTMT hstmt,
+											   UWORD icol,
+											   UCHAR FAR * szColName,
+											   SWORD cbColNameMax,
+											   SWORD FAR * pcbColName,
+											   SWORD FAR * pfSqlType,
+											   UDWORD FAR * pcbColDef,
+											   SWORD FAR * pibScale,
+											   SWORD FAR * pfNullable);
+
+	RETCODE SQL_API SQLDisconnect(HDBC hdbc);
+
+	RETCODE SQL_API SQLError(HENV henv,
+										 HDBC hdbc,
+										 HSTMT hstmt,
+										 UCHAR FAR * szSqlState,
+										 SDWORD FAR * pfNativeError,
+										 UCHAR FAR * szErrorMsg,
+										 SWORD cbErrorMsgMax,
+										 SWORD FAR * pcbErrorMsg);
+
+	RETCODE SQL_API SQLExecDirect(HSTMT hstmt,
+											  UCHAR FAR * szSqlStr,
+											  SDWORD cbSqlStr);
+
+	RETCODE SQL_API SQLExecute(HSTMT hstmt);
+
+	RETCODE SQL_API SQLFetch(HSTMT hstmt);
+
+	RETCODE SQL_API SQLFreeConnect(HDBC hdbc);
+
+	RETCODE SQL_API SQLFreeEnv(HENV henv);
+
+	RETCODE SQL_API SQLFreeStmt(HSTMT hstmt,
+											UWORD fOption);
+
+	RETCODE SQL_API SQLGetCursorName(HSTMT hstmt,
+												 UCHAR FAR * szCursor,
+												 SWORD cbCursorMax,
+												 SWORD FAR * pcbCursor);
+
+	RETCODE SQL_API SQLNumResultCols(HSTMT hstmt,
+												 SWORD FAR * pccol);
+
+	RETCODE SQL_API SQLPrepare(HSTMT hstmt,
+										   UCHAR FAR * szSqlStr,
+										   SDWORD cbSqlStr);
+
+	RETCODE SQL_API SQLRowCount(HSTMT hstmt,
+											SDWORD FAR * pcrow);
+
+	RETCODE SQL_API SQLSetCursorName(HSTMT hstmt,
+												 UCHAR FAR * szCursor,
+												 SWORD cbCursor);
+
+	RETCODE SQL_API SQLTransact(HENV henv,
+											HDBC hdbc,
+											UWORD fType);
+
+	RETCODE SQL_API SQLSetParam(HSTMT hstmt,
+											UWORD ipar,
+											SWORD fCType,
+											SWORD fSqlType,
+											UDWORD cbColDef,
+											SWORD ibScale,
+											PTR rgbValue,
+											SDWORD FAR * pcbValue);
 
 #ifdef __cplusplus
 }
+
+#endif
 #endif
-#endif  
diff --git a/src/interfaces/odbc/isqlext.h b/src/interfaces/odbc/isqlext.h
index b14b15af198a14eeee0e20db81633ebc843fff22..06bace95d48f2302c88a107c88bc5aa00b547450 100644
--- a/src/interfaces/odbc/isqlext.h
+++ b/src/interfaces/odbc/isqlext.h
@@ -2,213 +2,213 @@
 * missing function prototypes and appropriate #defines. It is designed
 * to be a drop in replacement for isqlext.h from iodbc.
 */
-#ifndef	_INTRINSIC_SQLEXT_H
-# define _INTRINSIC_SQLEXT_H
+#ifndef _INTRINSIC_SQLEXT_H
+#define _INTRINSIC_SQLEXT_H
 
-# include "isql.h"
+#include "isql.h"
 
-# define SQL_STILL_EXECUTING 		2
-# define SQL_NEED_DATA			99
+#define SQL_STILL_EXECUTING		   2
+#define SQL_NEED_DATA		   99
 
 /* extend SQL datatypes */
-# define SQL_DATE			9
-# define SQL_TIME			10
-# define SQL_TIMESTAMP			11
-# define SQL_LONGVARCHAR 		(-1)
-# define SQL_BINARY			(-2)
-# define SQL_VARBINARY			(-3)
-# define SQL_LONGVARBINARY		(-4)
-# define SQL_BIGINT			(-5)
-# define SQL_TINYINT 			(-6)
-# define SQL_BIT 			(-7)	/* conflict with SQL3 ??? */
-# define SQL_TYPE_DRIVER_START		(-80)
+#define SQL_DATE		   9
+#define SQL_TIME		   10
+#define SQL_TIMESTAMP		   11
+#define SQL_LONGVARCHAR		   (-1)
+#define SQL_BINARY		   (-2)
+#define SQL_VARBINARY		   (-3)
+#define SQL_LONGVARBINARY	   (-4)
+#define SQL_BIGINT		   (-5)
+#define SQL_TINYINT			   (-6)
+#define SQL_BIT			   (-7) /* conflict with SQL3 ??? */
+#define SQL_TYPE_DRIVER_START	   (-80)
 
 /* C to SQL datatype mapping */
-# define SQL_C_DATE			SQL_DATE
-# define SQL_C_TIME			SQL_TIME
-# define SQL_C_TIMESTAMP 		SQL_TIMESTAMP
-# define SQL_C_BINARY			SQL_BINARY
-# define SQL_C_BIT			SQL_BIT
-# define SQL_C_TINYINT			SQL_TINYINT
-
-# define SQL_SIGNED_OFFSET		(-20)
-# define SQL_UNSIGNED_OFFSET		(-22)
-
-# define SQL_C_SLONG			(SQL_C_LONG  + SQL_SIGNED_OFFSET)
-# define SQL_C_SSHORT			(SQL_C_SHORT + SQL_SIGNED_OFFSET)
-# define SQL_C_STINYINT			(SQL_TINYINT + SQL_SIGNED_OFFSET)
-# define SQL_C_ULONG 			(SQL_C_LONG  + SQL_UNSIGNED_OFFSET)
-# define SQL_C_USHORT			(SQL_C_SHORT + SQL_UNSIGNED_OFFSET)
-# define SQL_C_UTINYINT			(SQL_TINYINT + SQL_UNSIGNED_OFFSET)
-# define SQL_C_BOOKMARK			SQL_C_ULONG 			
-
-# if defined(SQL_TYPE_MIN)
-#   undef  SQL_TYPE_MIN  
-#   define SQL_TYPE_MIN			SQL_BIT	
-/* Note:If SQL_BIT uses SQL3 value (i.e. 14) then, 
- *	SQL_TYPE_MIN need to be defined as SQL_TINYINT 
+#define SQL_C_DATE		   SQL_DATE
+#define SQL_C_TIME		   SQL_TIME
+#define SQL_C_TIMESTAMP		   SQL_TIMESTAMP
+#define SQL_C_BINARY		   SQL_BINARY
+#define SQL_C_BIT		   SQL_BIT
+#define SQL_C_TINYINT		   SQL_TINYINT
+
+#define SQL_SIGNED_OFFSET	   (-20)
+#define SQL_UNSIGNED_OFFSET		   (-22)
+
+#define SQL_C_SLONG			   (SQL_C_LONG	+ SQL_SIGNED_OFFSET)
+#define SQL_C_SSHORT		   (SQL_C_SHORT + SQL_SIGNED_OFFSET)
+#define SQL_C_STINYINT		   (SQL_TINYINT + SQL_SIGNED_OFFSET)
+#define SQL_C_ULONG			   (SQL_C_LONG	+ SQL_UNSIGNED_OFFSET)
+#define SQL_C_USHORT		   (SQL_C_SHORT + SQL_UNSIGNED_OFFSET)
+#define SQL_C_UTINYINT		   (SQL_TINYINT + SQL_UNSIGNED_OFFSET)
+#define SQL_C_BOOKMARK		   SQL_C_ULONG
+
+#if defined(SQL_TYPE_MIN)
+#undef	SQL_TYPE_MIN
+#define SQL_TYPE_MIN		 SQL_BIT
+/* Note:If SQL_BIT uses SQL3 value (i.e. 14) then,
+ *	SQL_TYPE_MIN need to be defined as SQL_TINYINT
  *	(i.e. -6).
  */
-# endif
+#endif
 
-# define SQL_ALL_TYPES			0
+#define SQL_ALL_TYPES		   0
 
 /* SQLDriverConnect flag values */
-# define SQL_DRIVER_NOPROMPT		0
-# define SQL_DRIVER_COMPLETE		1
-# define SQL_DRIVER_PROMPT		2
-# define SQL_DRIVER_COMPLETE_REQUIRED	3
+#define SQL_DRIVER_NOPROMPT		   0
+#define SQL_DRIVER_COMPLETE		   1
+#define SQL_DRIVER_PROMPT	   2
+#define SQL_DRIVER_COMPLETE_REQUIRED   3
 
 /* SQLSetParam extensions */
-# define SQL_DEFAULT_PARAM		(-5)
-# define SQL_IGNORE			(-6)
+#define SQL_DEFAULT_PARAM	   (-5)
+#define SQL_IGNORE		   (-6)
 
 /* function number for SQLGetFunctions and _iodbcdm_getproc */
-# define SQL_API_SQLALLOCCONNECT	1   
-# define SQL_API_SQLALLOCENV		2
-# define SQL_API_SQLALLOCSTMT		3
-# define SQL_API_SQLBINDCOL		4
-# define SQL_API_SQLCANCEL		5
-# define SQL_API_SQLCOLATTRIBUTES	6
-# define SQL_API_SQLCONNECT		7
-# define SQL_API_SQLDESCRIBECOL		8
-# define SQL_API_SQLDISCONNECT		9
-# define SQL_API_SQLERROR		10
-# define SQL_API_SQLEXECDIRECT		11
-# define SQL_API_SQLEXECUTE		12
-# define SQL_API_SQLFETCH		13
-# define SQL_API_SQLFREECONNECT		14
-# define SQL_API_SQLFREEENV		15
-# define SQL_API_SQLFREESTMT		16 
-# define SQL_API_SQLGETCURSORNAME	17
-# define SQL_API_SQLNUMRESULTCOLS	18
-# define SQL_API_SQLPREPARE		19
-# define SQL_API_SQLROWCOUNT		20
-# define SQL_API_SQLSETCURSORNAME	21
-# define SQL_API_SQLSETPARAM		22
-# define SQL_API_SQLTRANSACT		23
-
-# define SQL_NUM_FUNCTIONS		23
-
-# define SQL_EXT_API_START		40
-
-# define SQL_API_SQLCOLUMNS		40
-
-# define SQL_API_SQLDRIVERCONNECT	41
-# define SQL_API_SQLGETCONNECTOPTION	42
-# define SQL_API_SQLGETDATA		43
-# define SQL_API_SQLGETFUNCTIONS	44
-# define SQL_API_SQLGETINFO		45
-# define SQL_API_SQLGETSTMTOPTION	46
-# define SQL_API_SQLGETTYPEINFO		47
-# define SQL_API_SQLPARAMDATA		48
-# define SQL_API_SQLPUTDATA		49
-# define SQL_API_SQLSETCONNECTOPTION	50
-# define SQL_API_SQLSETSTMTOPTION	51
-# define SQL_API_SQLSPECIALCOLUMNS	52
-# define SQL_API_SQLSTATISTICS		53
-# define SQL_API_SQLTABLES		54
-
-# define SQL_API_SQLBROWSECONNECT	55
-# define SQL_API_SQLCOLUMNPRIVILEGES	56
-# define SQL_API_SQLDATASOURCES		57
-# define SQL_API_SQLDESCRIBEPARAM	58
-# define SQL_API_SQLEXTENDEDFETCH	59
-# define SQL_API_SQLFOREIGNKEYS		60
-# define SQL_API_SQLMORERESULTS		61
-# define SQL_API_SQLNATIVESQL		62
-# define SQL_API_SQLNUMPARAMS		63
-# define SQL_API_SQLPARAMOPTIONS	64
-# define SQL_API_SQLPRIMARYKEYS		65
-# define SQL_API_SQLPROCEDURECOLUMNS	66
-# define SQL_API_SQLPROCEDURES		67
-# define SQL_API_SQLSETPOS		68
-# define SQL_API_SQLSETSCROLLOPTIONS	69
-# define SQL_API_SQLTABLEPRIVILEGES	70
-
-# define SQL_API_SQLDRIVERS          	71
-# define SQL_API_SQLBINDPARAMETER	72
-# define SQL_EXT_API_LAST		SQL_API_SQLBINDPARAMETER
+#define SQL_API_SQLALLOCCONNECT    1
+#define SQL_API_SQLALLOCENV		   2
+#define SQL_API_SQLALLOCSTMT	   3
+#define SQL_API_SQLBINDCOL	   4
+#define SQL_API_SQLCANCEL	   5
+#define SQL_API_SQLCOLATTRIBUTES   6
+#define SQL_API_SQLCONNECT	   7
+#define SQL_API_SQLDESCRIBECOL	   8
+#define SQL_API_SQLDISCONNECT	   9
+#define SQL_API_SQLERROR	   10
+#define SQL_API_SQLEXECDIRECT	   11
+#define SQL_API_SQLEXECUTE	   12
+#define SQL_API_SQLFETCH	   13
+#define SQL_API_SQLFREECONNECT	   14
+#define SQL_API_SQLFREEENV	   15
+#define SQL_API_SQLFREESTMT		   16
+#define SQL_API_SQLGETCURSORNAME   17
+#define SQL_API_SQLNUMRESULTCOLS   18
+#define SQL_API_SQLPREPARE	   19
+#define SQL_API_SQLROWCOUNT		   20
+#define SQL_API_SQLSETCURSORNAME   21
+#define SQL_API_SQLSETPARAM		   22
+#define SQL_API_SQLTRANSACT		   23
+
+#define SQL_NUM_FUNCTIONS	   23
+
+#define SQL_EXT_API_START	   40
+
+#define SQL_API_SQLCOLUMNS	   40
+
+#define SQL_API_SQLDRIVERCONNECT   41
+#define SQL_API_SQLGETCONNECTOPTION    42
+#define SQL_API_SQLGETDATA	   43
+#define SQL_API_SQLGETFUNCTIONS    44
+#define SQL_API_SQLGETINFO	   45
+#define SQL_API_SQLGETSTMTOPTION   46
+#define SQL_API_SQLGETTYPEINFO	   47
+#define SQL_API_SQLPARAMDATA	   48
+#define SQL_API_SQLPUTDATA	   49
+#define SQL_API_SQLSETCONNECTOPTION    50
+#define SQL_API_SQLSETSTMTOPTION   51
+#define SQL_API_SQLSPECIALCOLUMNS  52
+#define SQL_API_SQLSTATISTICS	   53
+#define SQL_API_SQLTABLES	   54
+
+#define SQL_API_SQLBROWSECONNECT   55
+#define SQL_API_SQLCOLUMNPRIVILEGES    56
+#define SQL_API_SQLDATASOURCES	   57
+#define SQL_API_SQLDESCRIBEPARAM   58
+#define SQL_API_SQLEXTENDEDFETCH   59
+#define SQL_API_SQLFOREIGNKEYS	   60
+#define SQL_API_SQLMORERESULTS	   61
+#define SQL_API_SQLNATIVESQL	   62
+#define SQL_API_SQLNUMPARAMS	   63
+#define SQL_API_SQLPARAMOPTIONS    64
+#define SQL_API_SQLPRIMARYKEYS	   65
+#define SQL_API_SQLPROCEDURECOLUMNS    66
+#define SQL_API_SQLPROCEDURES	   67
+#define SQL_API_SQLSETPOS	   68
+#define SQL_API_SQLSETSCROLLOPTIONS    69
+#define SQL_API_SQLTABLEPRIVILEGES 70
+
+#define SQL_API_SQLDRIVERS			   71
+#define SQL_API_SQLBINDPARAMETER   72
+#define SQL_EXT_API_LAST	   SQL_API_SQLBINDPARAMETER
 #define SQL_NUM_EXTENSIONS	(SQL_EXT_API_LAST - SQL_EXT_API_START + 1)
 
-# define SQL_API_ALL_FUNCTIONS		0
+#define SQL_API_ALL_FUNCTIONS	   0
 
 /* SQLGetInfo infor number */
-# define SQL_INFO_FIRST			0
-# define SQL_DRIVER_HDBC		3
-# define SQL_DRIVER_HENV		4
-# define SQL_DRIVER_HSTMT		5
-# define SQL_DRIVER_NAME		6
-# define SQL_ODBC_VER			10
-# define SQL_CURSOR_COMMIT_BEHAVIOR	23
-# define SQL_CURSOR_ROLLBACK_BEHAVIOR	24
-# define SQL_DEFAULT_TXN_ISOLATION	26
+#define SQL_INFO_FIRST		   0
+#define SQL_DRIVER_HDBC		   3
+#define SQL_DRIVER_HENV		   4
+#define SQL_DRIVER_HSTMT	   5
+#define SQL_DRIVER_NAME		   6
+#define SQL_ODBC_VER		   10
+#define SQL_CURSOR_COMMIT_BEHAVIOR 23
+#define SQL_CURSOR_ROLLBACK_BEHAVIOR   24
+#define SQL_DEFAULT_TXN_ISOLATION  26
 
-# define SQL_TXN_ISOLATION_OPTION	72
-# define SQL_NON_NULLABLE_COLUMNS	75
+#define SQL_TXN_ISOLATION_OPTION   72
+#define SQL_NON_NULLABLE_COLUMNS   75
 
-# define SQL_DRIVER_HLIB		76
-# define SQL_DRIVER_ODBC_VER		77
+#define SQL_DRIVER_HLIB		   76
+#define SQL_DRIVER_ODBC_VER		   77
 
-# define SQL_QUALIFIER_LOCATION		114
+#define SQL_QUALIFIER_LOCATION	   114
 
-# define SQL_INFO_LAST			SQL_QUALIFIER_LOCATION
+#define SQL_INFO_LAST		   SQL_QUALIFIER_LOCATION
 
-# define SQL_INFO_DRIVER_START		1000
+#define SQL_INFO_DRIVER_START	   1000
 
 
 /* SQL_TXN_ISOLATION_OPTION masks */
-# define SQL_TXN_READ_UNCOMMITTED	0x00000001L
-# define SQL_TXN_READ_COMMITTED		0x00000002L
-# define SQL_TXN_REPEATABLE_READ 	0x00000004L
-# define SQL_TXN_SERIALIZABLE		0x00000008L
-# define SQL_TXN_VERSIONING		0x00000010L
+#define SQL_TXN_READ_UNCOMMITTED   0x00000001L
+#define SQL_TXN_READ_COMMITTED	   0x00000002L
+#define SQL_TXN_REPEATABLE_READ    0x00000004L
+#define SQL_TXN_SERIALIZABLE	   0x00000008L
+#define SQL_TXN_VERSIONING	   0x00000010L
 
 /* SQL_CURSOR_COMMIT_BEHAVIOR and SQL_CURSOR_ROLLBACK_BEHAVIOR values */
 
-# define SQL_CB_DELETE			0x0000
-# define SQL_CB_CLOSE			0x0001
-# define SQL_CB_PRESERVE		0x0002
+#define SQL_CB_DELETE		   0x0000
+#define SQL_CB_CLOSE		   0x0001
+#define SQL_CB_PRESERVE		   0x0002
 
 /* options for SQLGetStmtOption/SQLSetStmtOption */
-# define SQL_QUERY_TIMEOUT		0
-# define SQL_MAX_ROWS			1
-# define SQL_NOSCAN			2
-# define SQL_MAX_LENGTH			3
-# define SQL_ASYNC_ENABLE		4
-# define SQL_BIND_TYPE			5
-# define SQL_CURSOR_TYPE 		6
-# define SQL_CONCURRENCY 		7
-# define SQL_KEYSET_SIZE 		8
-# define SQL_ROWSET_SIZE 		9
-# define SQL_SIMULATE_CURSOR 		10
-# define SQL_RETRIEVE_DATA		11
-# define SQL_USE_BOOKMARKS		12
-# define SQL_GET_BOOKMARK		13	/* GetStmtOption Only */
-# define SQL_ROW_NUMBER			14	/* GetStmtOption Only */
-# define SQL_STMT_OPT_MAX		SQL_ROW_NUMBER
-
-# define SQL_STMT_OPT_MIN		SQL_QUERY_TIMEOUT
+#define SQL_QUERY_TIMEOUT	   0
+#define SQL_MAX_ROWS		   1
+#define SQL_NOSCAN		   2
+#define SQL_MAX_LENGTH		   3
+#define SQL_ASYNC_ENABLE	   4
+#define SQL_BIND_TYPE		   5
+#define SQL_CURSOR_TYPE		   6
+#define SQL_CONCURRENCY		   7
+#define SQL_KEYSET_SIZE		   8
+#define SQL_ROWSET_SIZE		   9
+#define SQL_SIMULATE_CURSOR		   10
+#define SQL_RETRIEVE_DATA	   11
+#define SQL_USE_BOOKMARKS	   12
+#define SQL_GET_BOOKMARK	   13		/* GetStmtOption Only */
+#define SQL_ROW_NUMBER		   14		/* GetStmtOption Only */
+#define SQL_STMT_OPT_MAX	   SQL_ROW_NUMBER
+
+#define SQL_STMT_OPT_MIN	   SQL_QUERY_TIMEOUT
 
 /*
  * ODBC 3.0 renames the above to SQL_ATTR_ values. At this time I don't
  * know if they have also been renumbered or not, I will assume not.
  */
-# define SQL_ATTR_QUERY_TIMEOUT		0
-# define SQL_ATTR_MAX_ROWS		1
-# define SQL_ATTR_NOSCAN		2
-# define SQL_ATTR_MAX_LENGTH		3
-# define SQL_ATTR_ASYNC_ENABLE		4
-# define SQL_ATTR_BIND_TYPE		5
-# define SQL_ATTR_CURSOR_TYPE 		6
-# define SQL_ATTR_CONCURRENCY 		7
-# define SQL_ATTR_KEYSET_SIZE 		8
-# define SQL_ATTR_ROWSET_SIZE 		9
-# define SQL_ATTR_SIMULATE_CURSOR 	10
-# define SQL_ATTR_RETRIEVE_DATA		11
-# define SQL_ATTR_USE_BOOKMARKS		12
-# define SQL_ATTR_GET_BOOKMARK		13	/* GetStmtOption Only */
-# define SQL_ATTR_ROW_NUMBER		14	/* GetStmtOption Only */
+#define SQL_ATTR_QUERY_TIMEOUT	   0
+#define SQL_ATTR_MAX_ROWS	   1
+#define SQL_ATTR_NOSCAN		   2
+#define SQL_ATTR_MAX_LENGTH		   3
+#define SQL_ATTR_ASYNC_ENABLE	   4
+#define SQL_ATTR_BIND_TYPE	   5
+#define SQL_ATTR_CURSOR_TYPE	   6
+#define SQL_ATTR_CONCURRENCY	   7
+#define SQL_ATTR_KEYSET_SIZE	   8
+#define SQL_ATTR_ROWSET_SIZE	   9
+#define SQL_ATTR_SIMULATE_CURSOR   10
+#define SQL_ATTR_RETRIEVE_DATA	   11
+#define SQL_ATTR_USE_BOOKMARKS	   12
+#define SQL_ATTR_GET_BOOKMARK	   13	/* GetStmtOption Only */
+#define SQL_ATTR_ROW_NUMBER		   14	/* GetStmtOption Only */
 
 /* New in ODBC 3.0	*/
 #define SQL_ATTR_APP_PARAM_DESC		15
@@ -216,7 +216,7 @@
 #define SQL_ATTR_CURSOR_SCROLLABLE	17
 #define SQL_ATTR_CURSOR_SENSITITY	18
 #define SQL_ATTR_ENABLE_AUTO_IPD	19
-#define SQL_ATTR_FETCH_BOOKMARK_PTR	20
+#define SQL_ATTR_FETCH_BOOKMARK_PTR 20
 #define SQL_ATTR_IMP_PARAM_DESC		21
 #define SQL_ATTR_IMP_ROW_DESC		22
 #define SQL_ATTR_METADATA_ID		23
@@ -236,80 +236,80 @@
 #define SQL_STMT_ATTR_MAX		SQL_ATTR_ROWS_FETCHED_PTR
 
 /* SQL_QUERY_TIMEOUT options */
-# define SQL_QUERY_TIMEOUT_DEFAULT	0UL
+#define SQL_QUERY_TIMEOUT_DEFAULT  0UL
 
 /* SQL_MAX_ROWS options */
-# define SQL_MAX_ROWS_DEFAULT		0UL
+#define SQL_MAX_ROWS_DEFAULT	   0UL
 
 /* SQL_MAX_LENGTH options */
-# define SQL_MAX_LENGTH_DEFAULT		0UL
+#define SQL_MAX_LENGTH_DEFAULT	   0UL
 
 /* SQL_CONCURRENCY options */
-# define SQL_CONCUR_READ_ONLY		1
-# define SQL_CONCUR_LOCK 		2
-# define SQL_CONCUR_ROWVER		3
-# define SQL_CONCUR_VALUES		4
+#define SQL_CONCUR_READ_ONLY	   1
+#define SQL_CONCUR_LOCK		   2
+#define SQL_CONCUR_ROWVER	   3
+#define SQL_CONCUR_VALUES	   4
 
 /* options for SQLSetConnectOption/SQLGetConnectOption */
-# define SQL_ACCESS_MODE 		101
-# define SQL_AUTOCOMMIT			102
-# define SQL_LOGIN_TIMEOUT		103
-# define SQL_OPT_TRACE			104
-# define SQL_OPT_TRACEFILE		105
-# define SQL_TRANSLATE_DLL		106
-# define SQL_TRANSLATE_OPTION		107
-# define SQL_TXN_ISOLATION		108
-# define SQL_CURRENT_QUALIFIER		109
-# define SQL_ODBC_CURSORS		110
-# define SQL_QUIET_MODE			111
-# define SQL_PACKET_SIZE 		112
-# define SQL_CONN_OPT_MAX		SQL_PACKET_SIZE
-# define SQL_CONNECT_OPT_DRVR_START	1000
-
-# define SQL_CONN_OPT_MIN		SQL_ACCESS_MODE
+#define SQL_ACCESS_MODE		   101
+#define SQL_AUTOCOMMIT		   102
+#define SQL_LOGIN_TIMEOUT	   103
+#define SQL_OPT_TRACE		   104
+#define SQL_OPT_TRACEFILE	   105
+#define SQL_TRANSLATE_DLL	   106
+#define SQL_TRANSLATE_OPTION	   107
+#define SQL_TXN_ISOLATION	   108
+#define SQL_CURRENT_QUALIFIER	   109
+#define SQL_ODBC_CURSORS	   110
+#define SQL_QUIET_MODE		   111
+#define SQL_PACKET_SIZE		   112
+#define SQL_CONN_OPT_MAX	   SQL_PACKET_SIZE
+#define SQL_CONNECT_OPT_DRVR_START 1000
+
+#define SQL_CONN_OPT_MIN	   SQL_ACCESS_MODE
 
 /* SQL_ACCESS_MODE options */
-# define SQL_MODE_READ_WRITE 		0UL
-# define SQL_MODE_READ_ONLY		1UL
-# define SQL_MODE_DEFAULT		SQL_MODE_READ_WRITE
+#define SQL_MODE_READ_WRITE		   0UL
+#define SQL_MODE_READ_ONLY	   1UL
+#define SQL_MODE_DEFAULT	   SQL_MODE_READ_WRITE
 
 /* SQL_AUTOCOMMIT options */
-# define SQL_AUTOCOMMIT_OFF		0UL
-# define SQL_AUTOCOMMIT_ON		1UL
-# define SQL_AUTOCOMMIT_DEFAULT		SQL_AUTOCOMMIT_ON
+#define SQL_AUTOCOMMIT_OFF	   0UL
+#define SQL_AUTOCOMMIT_ON	   1UL
+#define SQL_AUTOCOMMIT_DEFAULT	   SQL_AUTOCOMMIT_ON
 
 /* SQL_LOGIN_TIMEOUT options */
-# define SQL_LOGIN_TIMEOUT_DEFAULT	15UL
+#define SQL_LOGIN_TIMEOUT_DEFAULT  15UL
 
 /* SQL_OPT_TRACE options */
-# define SQL_OPT_TRACE_OFF		0UL
-# define SQL_OPT_TRACE_ON		1UL
-# define SQL_OPT_TRACE_DEFAULT		SQL_OPT_TRACE_OFF
-# define SQL_OPT_TRACE_FILE_DEFAULT	"odbc.log"
+#define SQL_OPT_TRACE_OFF	   0UL
+#define SQL_OPT_TRACE_ON	   1UL
+#define SQL_OPT_TRACE_DEFAULT	   SQL_OPT_TRACE_OFF
+#define SQL_OPT_TRACE_FILE_DEFAULT "odbc.log"
 
 /* SQL_ODBC_CURSORS options */
-# define SQL_CUR_USE_IF_NEEDED		0UL
-# define SQL_CUR_USE_ODBC		1UL
-# define SQL_CUR_USE_DRIVER		2UL
-# define SQL_CUR_DEFAULT 		SQL_CUR_USE_DRIVER
+#define SQL_CUR_USE_IF_NEEDED	   0UL
+#define SQL_CUR_USE_ODBC	   1UL
+#define SQL_CUR_USE_DRIVER	   2UL
+#define SQL_CUR_DEFAULT		   SQL_CUR_USE_DRIVER
 
 /* Column types and scopes in SQLSpecialColumns. */
-# define SQL_BEST_ROWID			1
-# define SQL_ROWVER			2
+#define SQL_BEST_ROWID		   1
+#define SQL_ROWVER		   2
 
-# define SQL_SCOPE_CURROW		0
-# define SQL_SCOPE_TRANSACTION		1
-# define SQL_SCOPE_SESSION		2
+#define SQL_SCOPE_CURROW	   0
+#define SQL_SCOPE_TRANSACTION	   1
+#define SQL_SCOPE_SESSION	   2
 
 
 /* SQLExtendedFetch flag values */
-# define SQL_FETCH_NEXT			1
-# define SQL_FETCH_FIRST 		2
-# define SQL_FETCH_LAST			3
-# define SQL_FETCH_PRIOR		4
-# define SQL_FETCH_ABSOLUTE		5
-# define SQL_FETCH_RELATIVE		6
-# define SQL_FETCH_BOOKMARK		8
+#define SQL_FETCH_NEXT		   1
+#define SQL_FETCH_FIRST		   2
+#define SQL_FETCH_LAST		   3
+#define SQL_FETCH_PRIOR		   4
+#define SQL_FETCH_ABSOLUTE	   5
+#define SQL_FETCH_RELATIVE	   6
+#define SQL_FETCH_BOOKMARK	   8
 
 /* Defines for SQLBindParameter/SQLProcedureColumns */
 #define SQL_PARAM_TYPE_UNKNOWN		0
@@ -320,21 +320,21 @@
 #define SQL_RETURN_VALUE		5
 
 /* Defines used by Driver Manager for mapping SQLSetParam to SQLBindParameter */
-# define SQL_PARAM_TYPE_DEFAULT		SQL_PARAM_INPUT_OUTPUT
-# define SQL_SETPARAM_VALUE_MAX		(-1L)
+#define SQL_PARAM_TYPE_DEFAULT	   SQL_PARAM_INPUT_OUTPUT
+#define SQL_SETPARAM_VALUE_MAX	   (-1L)
 
 /* SQLStatistics flag values */
-# define SQL_INDEX_UNIQUE		0
-# define SQL_INDEX_ALL			1
+#define SQL_INDEX_UNIQUE	   0
+#define SQL_INDEX_ALL		   1
 
-# define SQL_QUICK			0
-# define SQL_ENSURE			1
+#define SQL_QUICK		   0
+#define SQL_ENSURE		   1
 
 /* SQLSetScrollOption flag values */
-# define SQL_SCROLL_FORWARD_ONLY	0L
-# define SQL_SCROLL_KEYSET_DRIVEN	(-1L)
-# define SQL_SCROLL_DYNAMIC		(-2L)
-# define SQL_SCROLL_STATIC		(-3L) 
+#define SQL_SCROLL_FORWARD_ONLY    0L
+#define SQL_SCROLL_KEYSET_DRIVEN   (-1L)
+#define SQL_SCROLL_DYNAMIC	   (-2L)
+#define SQL_SCROLL_STATIC	   (-3L)
 
 /* Everything below has been added to the original isqlext.h that comes
  * with iodbc.
@@ -345,58 +345,64 @@
 #define DOUBLE	double
 
 /* SQL DATA TYPES */
-typedef	UCHAR	SQLCHAR;
-typedef SWORD	SQLSMALLINT;
-typedef UWORD	SQLUSMALLINT;
-typedef SDWORD	SQLINTEGER;
-typedef UDWORD	SQLUINTEGER;
-typedef FLOAT	SQLREAL;
-typedef DOUBLE	SQLDOUBLE;
-typedef DOUBLE	SQLFLOAT;
-typedef SCHAR	SQLSCHAR;
-typedef UDWORD	BOOKMARK;
-
-#ifdef GCC	/* Because I know GCC supports 64 bit ints */
+typedef UCHAR SQLCHAR;
+typedef SWORD SQLSMALLINT;
+typedef UWORD SQLUSMALLINT;
+typedef SDWORD SQLINTEGER;
+typedef UDWORD SQLUINTEGER;
+typedef FLOAT SQLREAL;
+typedef DOUBLE SQLDOUBLE;
+typedef DOUBLE SQLFLOAT;
+typedef SCHAR SQLSCHAR;
+typedef UDWORD BOOKMARK;
+
+#ifdef GCC						/* Because I know GCC supports 64 bit ints */
 
 typedef long long int ODBCINT64;
-typedef unsigned ODBCINT64	SQLUBIGINT;
-typedef ODBCINT64		SQLBIGINT;
+typedef unsigned ODBCINT64 SQLUBIGINT;
+typedef ODBCINT64 SQLBIGINT;
 
-#else		/* Used even on platforms with 64 bit ints but not GCC */
+#else							/* Used even on platforms with 64 bit ints
+								 * but not GCC */
 
-typedef struct {
+typedef struct
+{
 	SQLUINTEGER dwLowWord;
 	SQLUINTEGER dwHighWord;
-} SQLUBIGINT;
+}			SQLUBIGINT;
 
-typedef struct {
+typedef struct
+{
 	SQLUINTEGER dwLowWord;
-	SQLINTEGER  dwHighWord;
-} SQLBIGINT;
-
-#endif /* GCC */
-
-typedef struct tagDATE_STRUCT {
-	SQLSMALLINT	year;
-	SQLUSMALLINT	month;
-	SQLUSMALLINT	day;
-} DATE_STRUCT,SQL_DATE_STRUCT;
-
-typedef struct tagTIME_STRUCT {
-	SQLUSMALLINT	hour;
-	SQLUSMALLINT	minute;
-	SQLUSMALLINT	second;
-} TIME_STRUCT,SQL_TIME_STRUCT;
-
-typedef struct tagTIMESTAMP_STRUCT {
-	SQLSMALLINT	year;
-	SQLUSMALLINT	month;
-	SQLUSMALLINT	day;
-	SQLUSMALLINT	hour;
-	SQLUSMALLINT	minute;
-	SQLUSMALLINT	second;
-	SQLUINTEGER	fraction;
-} TIMESTAMP_STRUCT,SQL_TIMESTAMP_STRUCT;
+	SQLINTEGER	dwHighWord;
+}			SQLBIGINT;
+
+#endif	 /* GCC */
+
+typedef struct tagDATE_STRUCT
+{
+	SQLSMALLINT year;
+	SQLUSMALLINT month;
+	SQLUSMALLINT day;
+}			DATE_STRUCT, SQL_DATE_STRUCT;
+
+typedef struct tagTIME_STRUCT
+{
+	SQLUSMALLINT hour;
+	SQLUSMALLINT minute;
+	SQLUSMALLINT second;
+}			TIME_STRUCT, SQL_TIME_STRUCT;
+
+typedef struct tagTIMESTAMP_STRUCT
+{
+	SQLSMALLINT year;
+	SQLUSMALLINT month;
+	SQLUSMALLINT day;
+	SQLUSMALLINT hour;
+	SQLUSMALLINT minute;
+	SQLUSMALLINT second;
+	SQLUINTEGER fraction;
+}			TIMESTAMP_STRUCT, SQL_TIMESTAMP_STRUCT;
 
 /* postodbc doesn't use these but what the heck */
 /* Don't know what SQL_MAX_NUMERIC_LEN should be so I can't include this. It's
@@ -411,14 +417,16 @@ typedef struct tagSQL_NUMERIC_STRUCT {
 
 */
 
-typedef struct tagSQLGUID {
-	DWORD	Data1;
-	WORD	Data2;
-	WORD	Data3;
-	BYTE	Data4[8];
-} SQLGUID;
+typedef struct tagSQLGUID
+{
+	DWORD		Data1;
+	WORD		Data2;
+	WORD		Data3;
+	BYTE		Data4[8];
+}			SQLGUID;
 
-typedef enum {
+typedef enum
+{
 	SQL_IS_YEAR = 1,
 	SQL_IS_MONTH = 2,
 	SQL_IS_DAY = 3,
@@ -434,27 +442,31 @@ typedef enum {
 	SQL_IS_MINUTE_TO_SECOND = 13
 } SQLINTERVAL;
 
-typedef struct tagSQL_YEAR_MONTH {
-	SQLUINTEGER	year;
-	SQLUINTEGER	month;
-} SQL_YEAR_MONTH_STRUCT;
-
-typedef struct tagSQL_DAY_SECOND {
-	SQLUINTEGER	day;
-	SQLUINTEGER	hour;
-	SQLUINTEGER	minute;
-	SQLUINTEGER	second;
-	SQLUINTEGER	fraction;
-} SQL_DAY_SECOND_STRUCT;
-
-typedef struct tagSQL_INTERVAL_STRUCT {
-	SQLINTERVAL	interval_type;
-	SQLSMALLINT	interval_sign;
-	union {
-		SQL_YEAR_MONTH_STRUCT	year_month;
-		SQL_DAY_SECOND_STRUCT	day_second;
-	} intval;
-} SQL_INTERVAL_STRUCT;
+typedef struct tagSQL_YEAR_MONTH
+{
+	SQLUINTEGER year;
+	SQLUINTEGER month;
+}			SQL_YEAR_MONTH_STRUCT;
+
+typedef struct tagSQL_DAY_SECOND
+{
+	SQLUINTEGER day;
+	SQLUINTEGER hour;
+	SQLUINTEGER minute;
+	SQLUINTEGER second;
+	SQLUINTEGER fraction;
+}			SQL_DAY_SECOND_STRUCT;
+
+typedef struct tagSQL_INTERVAL_STRUCT
+{
+	SQLINTERVAL interval_type;
+	SQLSMALLINT interval_sign;
+	union
+	{
+		SQL_YEAR_MONTH_STRUCT year_month;
+		SQL_DAY_SECOND_STRUCT day_second;
+	}			intval;
+}			SQL_INTERVAL_STRUCT;
 
 #define SQL_MAX_OPTION_STRING_LENGTH	256
 #define SQL_NUM_EXTENSIONS	(SQL_EXT_API_LAST - SQL_EXT_API_START + 1)
@@ -491,8 +503,8 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_INTERVAL_DAY_TO_HOUR	(-87)
 #define SQL_INTERVAL_DAY_TO_MINUTE	(-88)
 #define SQL_INTERVAL_DAY_TO_SECOND	(-89)
-#define SQL_INTERVAL_HOUR_TO_MINUTE	(-90)
-#define SQL_INTERVAL_HOUR_TO_SECOND	(-91)
+#define SQL_INTERVAL_HOUR_TO_MINUTE (-90)
+#define SQL_INTERVAL_HOUR_TO_SECOND (-91)
 #define SQL_INTERVAL_MINUTE_TO_SECOND	(-92)
 
 #define SQL_UNICODE			(-95)
@@ -519,7 +531,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_C_INTERVAL_DAY_TO_SECOND	SQL_INTERVAL_DAY_TO_SECOND
 #define SQL_C_INTERVAL_HOUR_TO_MINUTE	SQL_INTERVAL_HOUR_TO_MINUTE
 #define SQL_C_INTERVAL_HOUR_TO_SECOND	SQL_INTERVAL_HOUR_TO_SECOND
-#define SQL_C_INTERVAL_MINUTE_TO_SECOND	SQL_INTERVAL_MINUTE_TO_SECOND
+#define SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND
 #define SQL_C_NUMERIC		SQL_NUMERIC
 #define SQL_C_VARBOOKMARK	SQL_C_BINARY
 #define SQL_C_SBIGINT		(SQL_BIGINT + SQL_SIGNED_OFFSET)
@@ -532,11 +544,11 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_NO_TOTAL			(-4)
 
 /* SQLBindParameter */
-#define SQL_LEN_DATA_AT_EXEC_OFFSET	(-100)
+#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100)
 #define SQL_LEN_DATA_AT_EXEC(length)	(-length+SQL_LEN_DATA_AT_EXEC_OFFSET)
 
 #define SQL_LEN_BINARY_ATTR_OFFSET	(-100)
-#define SQL_LEN_BINARY_ATTR(length)	(-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
+#define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
 
 /* SQLExtendedFetch - row status */
 #define SQL_ROW_SUCCESS		0
@@ -555,7 +567,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 
 /* SQLForeignKeys - Deferrability (ODBC 3.0) */
 #define SQL_INITIALLY_DEFERRED	5
-#define SQL_INITIALLY_IMMEDIATE	6
+#define SQL_INITIALLY_IMMEDIATE 6
 #define SQL_NOT_DEFFERABLE	2
 
 /* Constants not in isqlext.h but needed by the driver. I have no idea
@@ -566,109 +578,109 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 */
 
 /*
- *  SQLGetInfo
+ *	SQLGetInfo
  */
 #define SQL_ACTIVE_CONNECTIONS			0
 #define SQL_ACTIVE_STATEMENTS			1
 #define SQL_DATA_SOURCE_NAME			2
-#define SQL_DRIVER_VER				7 
+#define SQL_DRIVER_VER				7
 #define SQL_FETCH_DIRECTION			8
-#define SQL_ODBC_API_CONFORMANCE		9 
-#define SQL_ROW_UPDATES				11 
-#define SQL_ODBC_SAG_CLI_CONFORMANCE		12 
+#define SQL_ODBC_API_CONFORMANCE		9
+#define SQL_ROW_UPDATES				11
+#define SQL_ODBC_SAG_CLI_CONFORMANCE		12
 #define SQL_SERVER_NAME				13
 #define SQL_SEARCH_PATTERN_ESCAPE		14
-#define SQL_ODBC_SQL_CONFORMANCE		15 
+#define SQL_ODBC_SQL_CONFORMANCE		15
 #define SQL_DBMS_NAME				17
 #define SQL_DBMS_VER				18
 #define SQL_ACCESSIBLE_TABLES			19
 #define SQL_ACCESSIBLE_PROCEDURES		20
-#define SQL_PROCEDURES				21 
-#define SQL_CONCAT_NULL_BEHAVIOR		22 
+#define SQL_PROCEDURES				21
+#define SQL_CONCAT_NULL_BEHAVIOR		22
 #define SQL_DATA_SOURCE_READ_ONLY		25
-#define SQL_EXPRESSIONS_IN_ORDERBY		27 
+#define SQL_EXPRESSIONS_IN_ORDERBY		27
 #define SQL_IDENTIFIER_CASE			28
 #define SQL_IDENTIFIER_QUOTE_CHAR		29
 #define SQL_MAX_COLUMN_NAME_LEN			30
 #define SQL_MAX_CURSOR_NAME_LEN			31
 #define SQL_MAX_OWNER_NAME_LEN			32
-#define SQL_MAX_PROCEDURE_NAME_LEN		33 
+#define SQL_MAX_PROCEDURE_NAME_LEN		33
 #define SQL_MAX_QUALIFIER_NAME_LEN		34
 #define SQL_MAX_TABLE_NAME_LEN			35
-#define SQL_MULT_RESULT_SETS			36 
-#define SQL_MULTIPLE_ACTIVE_TXN			37 
-#define SQL_OUTER_JOINS				38 
-#define SQL_OWNER_TERM				39 
-#define SQL_PROCEDURE_TERM			40 
-#define SQL_QUALIFIER_NAME_SEPARATOR		41 
-#define SQL_QUALIFIER_TERM			42 
+#define SQL_MULT_RESULT_SETS			36
+#define SQL_MULTIPLE_ACTIVE_TXN			37
+#define SQL_OUTER_JOINS				38
+#define SQL_OWNER_TERM				39
+#define SQL_PROCEDURE_TERM			40
+#define SQL_QUALIFIER_NAME_SEPARATOR		41
+#define SQL_QUALIFIER_TERM			42
 #define SQL_SCROLL_CONCURRENCY			43
-#define SQL_SCROLL_OPTIONS			44 
-#define SQL_TABLE_TERM				45 
+#define SQL_SCROLL_OPTIONS			44
+#define SQL_TABLE_TERM				45
 #define SQL_TXN_CAPABLE				46
 #define SQL_USER_NAME				47
-#define SQL_CONVERT_FUNCTIONS			48 
-#define SQL_NUMERIC_FUNCTIONS			49 
-#define SQL_STRING_FUNCTIONS			50 
-#define SQL_SYSTEM_FUNCTIONS			51 
-#define SQL_TIMEDATE_FUNCTIONS			52 
-#define SQL_CONVERT_BIGINT			53 
-#define SQL_CONVERT_BINARY			54 
-#define SQL_CONVERT_BIT				55 
-#define SQL_CONVERT_CHAR			56 
-#define SQL_CONVERT_DATE			57 
-#define SQL_CONVERT_DECIMAL			58 
-#define SQL_CONVERT_DOUBLE			59 
-#define SQL_CONVERT_FLOAT			60 
-#define SQL_CONVERT_INTEGER			61 
-#define SQL_CONVERT_LONGVARCHAR			62 
-#define SQL_CONVERT_NUMERIC			63 
-#define SQL_CONVERT_REAL			64 
-#define SQL_CONVERT_SMALLINT			65 
-#define SQL_CONVERT_TIME			66 
-#define SQL_CONVERT_TIMESTAMP			67 
-#define SQL_CONVERT_TINYINT			68 
-#define SQL_CONVERT_VARBINARY			69 
-#define SQL_CONVERT_VARCHAR			70 
-#define SQL_CONVERT_LONGVARBINARY		71 
+#define SQL_CONVERT_FUNCTIONS			48
+#define SQL_NUMERIC_FUNCTIONS			49
+#define SQL_STRING_FUNCTIONS			50
+#define SQL_SYSTEM_FUNCTIONS			51
+#define SQL_TIMEDATE_FUNCTIONS			52
+#define SQL_CONVERT_BIGINT			53
+#define SQL_CONVERT_BINARY			54
+#define SQL_CONVERT_BIT				55
+#define SQL_CONVERT_CHAR			56
+#define SQL_CONVERT_DATE			57
+#define SQL_CONVERT_DECIMAL			58
+#define SQL_CONVERT_DOUBLE			59
+#define SQL_CONVERT_FLOAT			60
+#define SQL_CONVERT_INTEGER			61
+#define SQL_CONVERT_LONGVARCHAR			62
+#define SQL_CONVERT_NUMERIC			63
+#define SQL_CONVERT_REAL			64
+#define SQL_CONVERT_SMALLINT			65
+#define SQL_CONVERT_TIME			66
+#define SQL_CONVERT_TIMESTAMP			67
+#define SQL_CONVERT_TINYINT			68
+#define SQL_CONVERT_VARBINARY			69
+#define SQL_CONVERT_VARCHAR			70
+#define SQL_CONVERT_LONGVARBINARY		71
 #define SQL_ODBC_SQL_OPT_IEF			73
-#define SQL_CORRELATION_NAME			74 
-#define SQL_LOCK_TYPES				78 
-#define SQL_POS_OPERATIONS			79 
-#define SQL_POSITIONED_STATEMENTS		80 
+#define SQL_CORRELATION_NAME			74
+#define SQL_LOCK_TYPES				78
+#define SQL_POS_OPERATIONS			79
+#define SQL_POSITIONED_STATEMENTS		80
 #define SQL_GETDATA_EXTENSIONS			81
-#define SQL_BOOKMARK_PERSISTENCE		82 
-#define SQL_STATIC_SENSITIVITY			83 
-#define SQL_FILE_USAGE				84 
+#define SQL_BOOKMARK_PERSISTENCE		82
+#define SQL_STATIC_SENSITIVITY			83
+#define SQL_FILE_USAGE				84
 #define SQL_NULL_COLLATION			85
 #define SQL_ALTER_TABLE				86
-#define SQL_COLUMN_ALIAS			87 
-#define SQL_GROUP_BY				88 
-#define SQL_KEYWORDS				89 
+#define SQL_COLUMN_ALIAS			87
+#define SQL_GROUP_BY				88
+#define SQL_KEYWORDS				89
 #define SQL_ORDER_BY_COLUMNS_IN_SELECT		90
-#define SQL_OWNER_USAGE				91 
-#define SQL_QUALIFIER_USAGE			92 
-#define SQL_QUOTED_IDENTIFIER_CASE		93 
+#define SQL_OWNER_USAGE				91
+#define SQL_QUALIFIER_USAGE			92
+#define SQL_QUOTED_IDENTIFIER_CASE		93
 #define SQL_SPECIAL_CHARACTERS			94
-#define SQL_SUBQUERIES				95 
-#define SQL_UNION				96 
+#define SQL_SUBQUERIES				95
+#define SQL_UNION				96
 #define SQL_MAX_COLUMNS_IN_GROUP_BY		97
 #define SQL_MAX_COLUMNS_IN_INDEX		98
 #define SQL_MAX_COLUMNS_IN_ORDER_BY		99
 #define SQL_MAX_COLUMNS_IN_SELECT		100
 #define SQL_MAX_COLUMNS_IN_TABLE		101
 #define SQL_MAX_INDEX_SIZE			102
-#define SQL_MAX_ROW_SIZE_INCLUDES_LONG		103 
+#define SQL_MAX_ROW_SIZE_INCLUDES_LONG		103
 #define SQL_MAX_ROW_SIZE			104
 #define SQL_MAX_STATEMENT_LEN			105
 #define SQL_MAX_TABLES_IN_SELECT		106
 #define SQL_MAX_USER_NAME_LEN			107
-#define SQL_MAX_CHAR_LITERAL_LEN		108 
-#define SQL_TIMEDATE_ADD_INTERVALS		109 
-#define SQL_TIMEDATE_DIFF_INTERVALS		110 
-#define SQL_NEED_LONG_DATA_LEN			111 
-#define SQL_MAX_BINARY_LITERAL_LEN		112 
-#define SQL_LIKE_ESCAPE_CLAUSE			113 
+#define SQL_MAX_CHAR_LITERAL_LEN		108
+#define SQL_TIMEDATE_ADD_INTERVALS		109
+#define SQL_TIMEDATE_DIFF_INTERVALS		110
+#define SQL_NEED_LONG_DATA_LEN			111
+#define SQL_MAX_BINARY_LITERAL_LEN		112
+#define SQL_LIKE_ESCAPE_CLAUSE			113
 
 #define SQL_OJ_CAPABILITIES			65003
 /* ODBC 3.0 alias */
@@ -709,7 +721,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_CVT_REAL		0x00000040L
 #define SQL_CVT_DOUBLE		0x00000080L
 #define SQL_CVT_VARCHAR		0x00000100L
-#define SQL_CVT_LONGVARCHAR	0x00000200L
+#define SQL_CVT_LONGVARCHAR 0x00000200L
 #define SQL_CVT_BINARY		0x00000400L
 #define SQL_CVT_VARBINARY	0x00000800L
 #define SQL_CVT_BIT		0x00001000L
@@ -721,20 +733,20 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_CVT_LONGVARBINARY	0x00040000L
 
 
-/*  extras added in ODBC 3.0 */
-#define SQL_CVT_INTERVAL_YEAR_MONTH	0x00080000L
+/*	extras added in ODBC 3.0 */
+#define SQL_CVT_INTERVAL_YEAR_MONTH 0x00080000L
 #define SQL_CVT_INTERVAL_DAY_TIME	0x00100000L
 
 /*
- *  concat null behaviour(2 byte val)
+ *	concat null behaviour(2 byte val)
  */
-#define SQL_CB_NULL 			0x0000
-#define SQL_CB_NON_NULL		 	0x0001
+#define SQL_CB_NULL				0x0000
+#define SQL_CB_NON_NULL			0x0001
 
 /*
- *  correlation name
+ *	correlation name
  */
-#define SQL_CN_NONE 			0x0000
+#define SQL_CN_NONE				0x0000
 #define SQL_CN_DIFFERENT		0x0001
 #define SQL_CN_ANY			0x0002
 
@@ -763,7 +775,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_FN_CVT_CONVERT	0x00000001L
 #define SQL_FN_CVT_CAST		0x00000002L
 
-/* 
+/*
  * File Usage. A SQLUSMALLINT indicating how a singel-tier driver treats
  * files in a data source.
  */
@@ -772,7 +784,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_FILE_QUALIFIER	0x0002
 #define SQL_FILE_CATALOG	SQL_FILE_CATALOG
 
-/* 
+/*
  * GetData Extensions. A SQLUINTEGER(4 bytes) bitmask enumerating extensions
  * to SQLGetData.
  */
@@ -781,14 +793,14 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_GD_BLOCK		0x00000004L
 #define SQL_GD_BOUND		0x00000008L
 
-/* 
+/*
  * Group By. A SQLUSMALLINT value specifying the relationship between the
  * columns in the GROUP BY clause and the non-aggregated columns in the
  * select list.
 */
 #define SQL_GB_NOT_SUPPORTED		0x0000
 #define SQL_GB_GROUP_BY_EQUALS_SELECT	0x0001
-#define SQL_GB_GROUP_BY_CONTAINS_SELECT	0x0002
+#define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002
 #define SQL_GB_NO_RELATION		0x0003
 
 /* added in ODBC 3.0 */
@@ -892,24 +904,24 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_OSC_CORE		0x0001
 #define SQL_OSC_EXTENDED	0x0002
 
-/* 
+/*
  * Owner Usage. A SQLUINTEGER bitmask.
  */
 #define SQL_OU_DML_STATEMENTS		0x00000001L
-#define SQL_OU_PROCEDURE_INVOCATION	0x00000002L
+#define SQL_OU_PROCEDURE_INVOCATION 0x00000002L
 #define SQL_OU_TABLE_DEFINITION		0x00000004L
 #define SQL_OU_INDEX_DEFINITION		0x00000008L
-#define SQL_OU_PRIVILEGE_DEFINITION	0x00000010L
+#define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L
 
 /*
  * Schema Usage. A SQLUINTEGER bitmask enumerating the statements in which
  * schemas can be used. Renamed in ODBC 3.0 from SQL_OWNER_USAGE
  */
 #define SQL_SU_DML_STATEMENTS		SQL_OU_DML_STATEMENTS
-#define SQL_SU_PROCEDURE_INVOCATION	SQL_OU_PROCEDURE_INVOCATION
+#define SQL_SU_PROCEDURE_INVOCATION SQL_OU_PROCEDURE_INVOCATION
 #define SQL_SU_TABLE_DEFINITION		SQL_OU_TABLE_DEFINITION
 #define SQL_SU_INDEX_DEFINITION		SQL_OU_INDEX_DEFINITION
-#define SQL_SU_PRIVILEGE_DEFINITION	SQL_OU_PRIVILEGE_DEFINITION
+#define SQL_SU_PRIVILEGE_DEFINITION SQL_OU_PRIVILEGE_DEFINITION
 
 /*
  * Pos. Operations. A SQLINTEGER bitmask enumerating the supported operations
@@ -922,12 +934,12 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_POS_ADD		0x00000010L
 
 /*
- *  SQLSetPos
+ *	SQLSetPos
  */
 #define SQL_ENTIRE_ROWSET		0
 
 #define SQL_POSITION	0
-#define SQL_REFRESH	1
+#define SQL_REFRESH 1
 #define SQL_UPDATE	2
 #define SQL_DELETE	3
 #define SQL_ADD		4
@@ -935,22 +947,22 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 /*
  * SQLSetPos Lock options
 */
-#define SQL_LOCK_NO_CHANGE		0 	
-#define SQL_LOCK_EXCLUSIVE		1		
-#define SQL_LOCK_UNLOCK 		2
+#define SQL_LOCK_NO_CHANGE		0
+#define SQL_LOCK_EXCLUSIVE		1
+#define SQL_LOCK_UNLOCK			2
 
-#define SQL_POSITION_TO(hstmt,irow) 	\
-    SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
+#define SQL_POSITION_TO(hstmt,irow)		\
+	SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
 #define SQL_LOCK_RECORD(hstmt,irow,fLock) \
-    SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
+	SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
 #define SQL_REFRESH_RECORD(hstmt,irow,fLock) \
-    SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
+	SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
 #define SQL_UPDATE_RECORD(hstmt,irow) \
-    SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
+	SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
 #define SQL_DELETE_RECORD(hstmt,irow) \
-    SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
+	SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
 #define SQL_ADD_RECORD(hstmt,irow) \
-    SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
+	SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
 
 /*
  * Positioned Statements. A SQLINTEGER bitmask enumerating the supported
@@ -966,21 +978,21 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_QL_START		0x0001
 #define SQL_QL_END		0x0002
 
-/* 
+/*
  * Qualifier Usage. A SQLUINTEGER bitmask.
  */
 #define SQL_QU_DML_STATEMENTS		0x00000001L
-#define SQL_QU_PROCEDURE_INVOCATION	0x00000002L
+#define SQL_QU_PROCEDURE_INVOCATION 0x00000002L
 #define SQL_QU_TABLE_DEFINITION		0x00000004L
 #define SQL_QU_INDEX_DEFINITION		0x00000008L
-#define SQL_QU_PRIVILEGE_DEFINITION	0x00000010L
+#define SQL_QU_PRIVILEGE_DEFINITION 0x00000010L
 
 /* The above is renamed in ODBC 3.0 to Catalog Usage. */
 #define SQL_CU_DML_STATEMENTS		SQL_QU_DML_STATEMENTS
-#define SQL_CU_PROCEDURE_INVOCATION	SQL_QU_PROCEDURE_INVOCATION
+#define SQL_CU_PROCEDURE_INVOCATION SQL_QU_PROCEDURE_INVOCATION
 #define SQL_CU_TABLE_DEFINITION		SQL_QU_TABLE_DEFINITION
 #define SQL_CU_INDEX_DEFINITION		SQL_QU_INDEX_DEFINITION
-#define SQL_CU_PRIVILEGE_DEFINITION	SQL_QU_PRIVILEGE_DEFINITION
+#define SQL_CU_PRIVILEGE_DEFINITION SQL_QU_PRIVILEGE_DEFINITION
 
 /* ODBC 3.0 renamed the above to Catalog Location. */
 #define SQL_CL_START		SQL_QL_START
@@ -996,7 +1008,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_SCCO_OPT_VALUES		0x00000008L
 
 
-/* 
+/*
  * Scroll Options. A SQLUINTEGER bitmask enumerating the scroll options
  * supported for scrollable cursors.
  */
@@ -1014,7 +1026,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
  */
 #define SQL_SS_ADDITIONS		0x00000001L
 #define SQL_SS_DELETIONS		0x00000002L
-#define SQL_SS_UPDATES			0x00000004L 
+#define SQL_SS_UPDATES			0x00000004L
 
 /*
  * String Functions. A SQLUINTEGER bitmask enumerating the scalar string
@@ -1043,7 +1055,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 /* introduced in ODBC 3.0 */
 #define SQL_FN_STR_BIT_LENGTH		0x00080000L
 #define SQL_FN_STR_CHAR_LENGTH		0x00100000L
-#define SQL_FN_STR_CHARACTER_LENGTH	0x00200000L
+#define SQL_FN_STR_CHARACTER_LENGTH 0x00200000L
 #define SQL_FN_STR_OCTET_LENGTH		0x00400000L
 #define SQL_FN_STR_POSITION		0x00800000L
 
@@ -1061,14 +1073,14 @@ typedef struct tagSQL_INTERVAL_STRUCT {
  * System Functions. A SQLUINTEGER bitmask enumerating the scalar system
  * functions supported by the driver and associated data source.
  */
-#define SQL_FN_SYS_USERNAME		0x00000001L 
+#define SQL_FN_SYS_USERNAME		0x00000001L
 #define SQL_FN_SYS_DBNAME		0x00000002L
 #define SQL_FN_SYS_IFNULL		0x00000004L
 
 /*
  * Time-Date add and diff intervals. A SQLUINTEGER bitmask enumerating the
  * timestamp intervals supported by the driver and associated data source
- *  for the TIMESTAMPADD and TIMESTAMPDIFF scalar function.
+ *	for the TIMESTAMPADD and TIMESTAMPDIFF scalar function.
  */
 #define SQL_FN_TSI_FRAC_SECOND		0x00000001L
 #define SQL_FN_TSI_SECOND		0x00000002L
@@ -1105,7 +1117,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 /* Added in ODBC 3.0 */
 #define SQL_FN_TD_CURRENT_DATE		0x00020000L
 #define SQL_FN_TD_CURRENT_TIME		0x00040000L
-#define SQL_FN_TD_CURRENT_TIMESTAMP	0x00080000L
+#define SQL_FN_TD_CURRENT_TIMESTAMP 0x00080000L
 #define SQL_FN_TD_EXTRACT		0x00100000L
 
 /*
@@ -1128,7 +1140,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 
 /* SQLStatistics: Type, Smallint */
 #define SQL_TABLE_STAT		0
-#define SQL_INDEX_CLUSTERED	1
+#define SQL_INDEX_CLUSTERED 1
 #define SQL_INDEX_HASHED	2
 #define SQL_INDEX_OTHER		3
 
@@ -1139,7 +1151,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 
 /* SQLSpecialColumns: PSEUDO_COLUMN: Smallint */
 #define SQL_PC_UNKNOWN		0
-#define SQL_PC_PSEUDO		1		
+#define SQL_PC_PSEUDO		1
 #define SQL_PC_NOT_PSEUDO	2
 
 /* SQLSet/Get/StmtOptions: ASYNC_ENABLE. A SQLUINTEGER */
@@ -1153,7 +1165,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
  */
 #define SQL_CONCUR_DEFAULT	SQL_CONCUR_READ_ONLY
 
-/* 
+/*
  * SQLSet/GetStmtOptions: CURSOR_SCROLLABLE. A SQLUINTEGER. Added in ODBC
  * 3.0.
  */
@@ -1161,7 +1173,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_SCROLLABLE		1UL
 #define SQL_CURSOR_SCROLLABLE_DEFAULT	SQL_NONSCROLLABLE
 
-/* 
+/*
  * SQLSet/GetStmtOptions: CURSOR_SENSITITY. A SQLUINTEGER. Added in ODBC
  * 3.0.
  */
@@ -1170,15 +1182,15 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_SENSITIVIE		2UL
 #define SQL_CURSOR_SENSITIVITY_DEFAULT	SQL_UNSPECIFIED
 
-/* 
+/*
  * SQLSet/GetStmtOptions: CURSOR_TYPE: A SQLUINTEGER value that specifies the
  * cursor type
  */
-#define	SQL_CURSOR_FORWARD_ONLY		0UL
+#define SQL_CURSOR_FORWARD_ONLY		0UL
 #define SQL_CURSOR_KEYSET_DRIVEN	1UL
 #define SQL_CURSOR_DYNAMIC		2UL
 #define SQL_CURSOR_STATIC		3UL
-#define SQL_CURSOR_DEFAULT	SQL_CURSOR_FORWARD_ONLY 
+#define SQL_CURSOR_DEFAULT	SQL_CURSOR_FORWARD_ONLY
 
 /*
  * ENABLE_AUTO_IPD: A SQLUINTEGER, either SQL_TRUE or SQL_FALSE. Default
@@ -1211,7 +1223,7 @@ typedef struct tagSQL_INTERVAL_STRUCT {
  *
 */
 #define SQL_PARAM_SUCCESS		0
-#define SQL_PARAM_SUCCESS_WITH_INFO	6
+#define SQL_PARAM_SUCCESS_WITH_INFO 6
 #define SQL_PARAM_ERROR			5
 #define SQL_PARAM_UNUSED		7
 #define SQL_PARAM_DIAG_UNAVAILABLE	1
@@ -1236,12 +1248,12 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_ROW_IGNORE		1
 
 /*
- *  SQL_ROWSET_SIZE
+ *	SQL_ROWSET_SIZE
  */
-#define SQL_ROWSET_SIZE_DEFAULT 	1UL
+#define SQL_ROWSET_SIZE_DEFAULT		1UL
 
 /*
- *  SQL_KEYSET_SIZE
+ *	SQL_KEYSET_SIZE
  */
 #define SQL_KEYSET_SIZE_DEFAULT		0UL
 
@@ -1261,29 +1273,29 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 #define SQL_UB_OFF		0UL
 #define SQL_UB_ON		1UL
 #define SQL_UB_FIXED		SQL_UB_ON	/* Deprecated in ODBC 3.0 */
-#define SQL_UB_VARIABLE		2UL	/* Added in ODBC 3.0 */
+#define SQL_UB_VARIABLE		2UL /* Added in ODBC 3.0 */
 #define SQL_UB_DEFAULT		SQL_UB_OFF
 
 /* Deprecated */
-#define SQL_DATABASE_NAME		16 
-#define SQL_FD_FETCH_PREV		SQL_FD_FETCH_PRIOR 
-#define SQL_FETCH_PREV			SQL_FETCH_PRIOR 
-#define SQL_CONCUR_TIMESTAMP		SQL_CONCUR_ROWVER 
-#define SQL_SCCO_OPT_TIMESTAMP		SQL_SCCO_OPT_ROWVER 
-#define SQL_CC_DELETE			SQL_CB_DELETE 
-#define SQL_CR_DELETE			SQL_CB_DELETE 
-#define SQL_CC_CLOSE			SQL_CB_CLOSE 
-#define SQL_CR_CLOSE			SQL_CB_CLOSE 
-#define SQL_CC_PRESERVE			SQL_CB_PRESERVE 
-#define SQL_CR_PRESERVE			SQL_CB_PRESERVE 
-#define SQL_FETCH_RESUME                7     
-#define SQL_SCROLL_FORWARD_ONLY         0L
-#define SQL_SCROLL_KEYSET_DRIVEN        (-1L)
-#define SQL_SCROLL_DYNAMIC              (-2L)
-#define SQL_SCROLL_STATIC               (-3L)
- 
+#define SQL_DATABASE_NAME		16
+#define SQL_FD_FETCH_PREV		SQL_FD_FETCH_PRIOR
+#define SQL_FETCH_PREV			SQL_FETCH_PRIOR
+#define SQL_CONCUR_TIMESTAMP		SQL_CONCUR_ROWVER
+#define SQL_SCCO_OPT_TIMESTAMP		SQL_SCCO_OPT_ROWVER
+#define SQL_CC_DELETE			SQL_CB_DELETE
+#define SQL_CR_DELETE			SQL_CB_DELETE
+#define SQL_CC_CLOSE			SQL_CB_CLOSE
+#define SQL_CR_CLOSE			SQL_CB_CLOSE
+#define SQL_CC_PRESERVE			SQL_CB_PRESERVE
+#define SQL_CR_PRESERVE			SQL_CB_PRESERVE
+#define SQL_FETCH_RESUME				7
+#define SQL_SCROLL_FORWARD_ONLY			0L
+#define SQL_SCROLL_KEYSET_DRIVEN		(-1L)
+#define SQL_SCROLL_DYNAMIC				(-2L)
+#define SQL_SCROLL_STATIC				(-3L)
+
 /*
- *  ODBC keywords
+ *	ODBC keywords
  */
 #define SQL_ODBC_KEYWORDS \
 "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
@@ -1317,223 +1329,225 @@ typedef struct tagSQL_INTERVAL_STRUCT {
 "UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
 "VALUE,,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR"
 
-# ifdef __cplusplus
-	extern  "C" {
-# endif
+#ifdef __cplusplus
+extern		"C"
+{
+#endif
 
-RETCODE SQL_API SQLSetConnectOption (HDBC, UWORD, UDWORD);
-RETCODE SQL_API SQLNumResultCols ( HSTMT, SWORD FAR* );
+	RETCODE SQL_API SQLSetConnectOption(HDBC, UWORD, UDWORD);
+	RETCODE SQL_API SQLNumResultCols(HSTMT, SWORD FAR *);
 
 /*
- *   function prototypes previously missing from isqlext.h
+ *	 function prototypes previously missing from isqlext.h
  */
-RETCODE SQL_API SQLColumns (HSTMT hstmt, 
-	UCHAR FAR * szTableQualifier,
-	SWORD cbTableQualifier,
-	UCHAR FAR * szTableOwner,
-	SWORD cbTableOwner,
-	UCHAR FAR * szTableName,
-	SWORD cbTableName,
-	UCHAR FAR * szColumnName,
-	SWORD cbColumnName);
-
-RETCODE SQL_API SQLDriverConnect (HDBC hdbc,
-	HWND hwnd,
-	UCHAR FAR * szConnStrIn,
-	SWORD cbConnStrIn,
-	UCHAR FAR * szConnStrOut,
-	SWORD cbConnStrOutMax,
-	SWORD FAR * pcbConnStrOut,
-	UWORD fDriverCompletion);
-
-RETCODE SQL_API SQLGetConnectOption (HDBC hdbc,
-	UWORD fOption,
-	PTR pvParam);
-
-RETCODE SQL_API SQLGetData (HSTMT hstmt,
-	UWORD icol,
-	SWORD fCType,
-	PTR rgbValue,
-	SDWORD cbValueMax,
-	SDWORD FAR * pcbValue);
-
-RETCODE SQL_API SQLGetFunctions (HDBC hdbc,
-	UWORD fFunction,
-	UWORD FAR * pfExists);
-
-RETCODE SQL_API SQLGetInfo (HDBC hdbc,
-	UWORD fInfoType,
-	PTR rgbInfoValue,
-	SWORD cbInfoValueMax,
-	SWORD FAR * pcbInfoValue);
-
-RETCODE SQL_API SQLGetStmtOption (HSTMT hstmt,
-	UWORD fOption,
-	PTR pvParam);
-
-RETCODE SQL_API SQLGetTypeInfo (HSTMT hstmt,
-	SWORD fSqlType);
-
-RETCODE SQL_API SQLParamData (HSTMT hstmt,
-	PTR FAR * prgbValue);
-
-RETCODE SQL_API SQLPutData (HSTMT hstmt,
-	PTR rgbValue,
-	SDWORD cbValue);
-
-RETCODE SQL_API SQLSetStmtOption (HSTMT hstmt,
-	UWORD fOption,
-	UDWORD vParam);
-
-RETCODE SQL_API SQLSpecialColumns (HSTMT hstmt,
-	UWORD fColType,
-	UCHAR FAR * szTableQualifier,
-	SWORD cbTableQualifier,
-	UCHAR FAR * szTableOwner,
-	SWORD cbTableOwner,
-	UCHAR FAR * szTableName,
-	SWORD cbTableName,
-	UWORD fScope,
-	UWORD fNullable);
-
-RETCODE SQL_API SQLStatistics (HSTMT hstmt,
-	UCHAR FAR * szTableQualifier,
-	SWORD cbTableQualifier,
-	UCHAR FAR * szTableOwner,
-	SWORD cbTableOwner,
-	UCHAR FAR * szTableName,
-	SWORD cbTableName,
-	UWORD fUnique,
-	UWORD fAccuracy);
-
-RETCODE SQL_API SQLTables (HSTMT hstmt,
-	UCHAR FAR * szTableQualifier,
-	SWORD cbTableQualifier,
-	UCHAR FAR * szTableOwner,
-	SWORD cbTableOwner,
-	UCHAR FAR * szTableName,
-	SWORD cbTableName,
-	UCHAR FAR * szTableType,
-	SWORD cbTableType);
-
-RETCODE SQL_API SQLBrowseConnect (HDBC hdbc,
-	UCHAR FAR * szConnStrIn,
-	SWORD cbConnStrIn,
-	UCHAR FAR * szConnStrOut, 
-	SWORD cbConnStrOutMax,
-	SWORD FAR * pcbConnStrOut);
-
-RETCODE SQL_API SQLColumnPrivileges (HSTMT hstmt,
-	UCHAR FAR * szTableQualifier,
-	SWORD cbTableQualifier,
-	UCHAR FAR * szTableOwner,
-	SWORD cbTableOwner,
-	UCHAR FAR * szTableName,
-	SWORD cbTableName,
-	UCHAR FAR * szColumnName,
-	SWORD cbColumnName);
-
-RETCODE SQL_API SQLDescribeParam (HSTMT hstmt,
-	UWORD ipar,
-	SWORD FAR * pfSqlType,
-	UDWORD FAR * pcbColDef,
-	SWORD FAR * pibScale,
-	SWORD FAR * pfNullable);
-
-RETCODE SQL_API SQLExtendedFetch (HSTMT hstmt,
-	UWORD fFetchType,
-	SDWORD irow,
-	UDWORD FAR * pcrow,
-	UWORD FAR * rgfRowStatus);
-
-RETCODE SQL_API SQLForeignKeys (HSTMT hstmt,
-	UCHAR FAR * szPkTableQualifier,
-	SWORD cbPkTableQualifier,
-	UCHAR FAR * szPkTableOwner,
-	SWORD cbPkTableOwner,
-	UCHAR FAR * szPkTableName,
-	SWORD cbPkTableName,
-	UCHAR FAR * szFkTableQualifier,
-	SWORD cbFkTableQualifier,
-	UCHAR FAR * szFkTableOwner,
-	SWORD cbFkTableOwner,
-	UCHAR FAR * szFkTableName,
-	SWORD cbFkTableName);
-
-RETCODE SQL_API SQLMoreResults (HSTMT hstmt);
-
-RETCODE SQL_API SQLNativeSql (HDBC hdbc,
-	UCHAR FAR * szSqlStrIn,
-	SDWORD cbSqlStrIn,
-	UCHAR FAR * szSqlStr,
-	SDWORD cbSqlStrMax,
-	SDWORD FAR * pcbSqlStr);
-
-RETCODE SQL_API SQLNumParams (HSTMT hstmt,
-	SWORD FAR * pcpar);
-
-RETCODE SQL_API SQLParamOptions (HSTMT hstmt,
-	UDWORD crow,
-	UDWORD FAR * pirow);
-
-RETCODE SQL_API SQLPrimaryKeys (HSTMT hstmt,
-	UCHAR FAR * szTableQualifier,
-	SWORD cbTableQualifier,
-	UCHAR FAR * szTableOwner,
-	SWORD cbTableOwner,
-	UCHAR FAR * szTableName,
-	SWORD cbTableName);
-
-RETCODE SQL_API SQLProcedureColumns (HSTMT hstmt,
-	UCHAR FAR * szProcQualifier,
-	SWORD cbProcQualifier,
-	UCHAR FAR * szProcOwner,
-	SWORD cbProcOwner,
-	UCHAR FAR * szProcName,
-	SWORD cbProcName,
-	UCHAR FAR * szColumnName,
-	SWORD cbColumnName);
-
-RETCODE SQL_API SQLProcedures (HSTMT hstmt,
-	UCHAR FAR * szProcQualifier,
-	SWORD cbProcQualifier,
-	UCHAR FAR * szProcOwner,
-	SWORD cbProcOwner,
-	UCHAR FAR * szProcName,
-	SWORD cbProcName);
-
-RETCODE SQL_API SQLSetPos (HSTMT hstmt,
-	UWORD irow,
-	UWORD fOption,
-	UWORD fLock);
-
-RETCODE SQL_API SQLTablePrivileges (HSTMT hstmt,
-	UCHAR FAR * szTableQualifier,
-	SWORD cbTableQualifier,
-	UCHAR FAR * szTableOwner,
-	SWORD cbTableOwner,
-	UCHAR FAR * szTableName,
-	SWORD cbTableName);
-
-RETCODE SQL_API SQLBindParameter (HSTMT hstmt,
-	UWORD ipar,
-	SWORD fParamType,
-	SWORD fCType,
-	SWORD fSqlType,
-	UDWORD cbColDef,
-	SWORD ibScale,
-	PTR rgbValue,
-	SDWORD cbValueMax,
-	SDWORD FAR * pcbValue);
-
-RETCODE SQL_API SQLSetScrollOptions (HSTMT hstmt,
-	UWORD fConcurrency,
-	SDWORD crowKeyset,
-	UWORD crowRowset);
-
-
-# ifdef __cplusplus
-	}
-# endif
+	RETCODE SQL_API SQLColumns(HSTMT hstmt,
+										   UCHAR FAR * szTableQualifier,
+										   SWORD cbTableQualifier,
+										   UCHAR FAR * szTableOwner,
+										   SWORD cbTableOwner,
+										   UCHAR FAR * szTableName,
+										   SWORD cbTableName,
+										   UCHAR FAR * szColumnName,
+										   SWORD cbColumnName);
+
+	RETCODE SQL_API SQLDriverConnect(HDBC hdbc,
+												 HWND hwnd,
+												 UCHAR FAR * szConnStrIn,
+												 SWORD cbConnStrIn,
+												 UCHAR FAR * szConnStrOut,
+												 SWORD cbConnStrOutMax,
+											   SWORD FAR * pcbConnStrOut,
+												 UWORD fDriverCompletion);
+
+	RETCODE SQL_API SQLGetConnectOption(HDBC hdbc,
+													UWORD fOption,
+													PTR pvParam);
+
+	RETCODE SQL_API SQLGetData(HSTMT hstmt,
+										   UWORD icol,
+										   SWORD fCType,
+										   PTR rgbValue,
+										   SDWORD cbValueMax,
+										   SDWORD FAR * pcbValue);
+
+	RETCODE SQL_API SQLGetFunctions(HDBC hdbc,
+												UWORD fFunction,
+												UWORD FAR * pfExists);
+
+	RETCODE SQL_API SQLGetInfo(HDBC hdbc,
+										   UWORD fInfoType,
+										   PTR rgbInfoValue,
+										   SWORD cbInfoValueMax,
+										   SWORD FAR * pcbInfoValue);
+
+	RETCODE SQL_API SQLGetStmtOption(HSTMT hstmt,
+												 UWORD fOption,
+												 PTR pvParam);
+
+	RETCODE SQL_API SQLGetTypeInfo(HSTMT hstmt,
+											   SWORD fSqlType);
+
+	RETCODE SQL_API SQLParamData(HSTMT hstmt,
+											 PTR FAR * prgbValue);
+
+	RETCODE SQL_API SQLPutData(HSTMT hstmt,
+										   PTR rgbValue,
+										   SDWORD cbValue);
+
+	RETCODE SQL_API SQLSetStmtOption(HSTMT hstmt,
+												 UWORD fOption,
+												 UDWORD vParam);
+
+	RETCODE SQL_API SQLSpecialColumns(HSTMT hstmt,
+												  UWORD fColType,
+											UCHAR FAR * szTableQualifier,
+												  SWORD cbTableQualifier,
+												UCHAR FAR * szTableOwner,
+												  SWORD cbTableOwner,
+												  UCHAR FAR * szTableName,
+												  SWORD cbTableName,
+												  UWORD fScope,
+												  UWORD fNullable);
+
+	RETCODE SQL_API SQLStatistics(HSTMT hstmt,
+											UCHAR FAR * szTableQualifier,
+											  SWORD cbTableQualifier,
+											  UCHAR FAR * szTableOwner,
+											  SWORD cbTableOwner,
+											  UCHAR FAR * szTableName,
+											  SWORD cbTableName,
+											  UWORD fUnique,
+											  UWORD fAccuracy);
+
+	RETCODE SQL_API SQLTables(HSTMT hstmt,
+										  UCHAR FAR * szTableQualifier,
+										  SWORD cbTableQualifier,
+										  UCHAR FAR * szTableOwner,
+										  SWORD cbTableOwner,
+										  UCHAR FAR * szTableName,
+										  SWORD cbTableName,
+										  UCHAR FAR * szTableType,
+										  SWORD cbTableType);
+
+	RETCODE SQL_API SQLBrowseConnect(HDBC hdbc,
+												 UCHAR FAR * szConnStrIn,
+												 SWORD cbConnStrIn,
+												 UCHAR FAR * szConnStrOut,
+												 SWORD cbConnStrOutMax,
+											  SWORD FAR * pcbConnStrOut);
+
+	RETCODE SQL_API SQLColumnPrivileges(HSTMT hstmt,
+											UCHAR FAR * szTableQualifier,
+												  SWORD cbTableQualifier,
+												UCHAR FAR * szTableOwner,
+													SWORD cbTableOwner,
+												 UCHAR FAR * szTableName,
+													SWORD cbTableName,
+												UCHAR FAR * szColumnName,
+													SWORD cbColumnName);
+
+	RETCODE SQL_API SQLDescribeParam(HSTMT hstmt,
+												 UWORD ipar,
+												 SWORD FAR * pfSqlType,
+												 UDWORD FAR * pcbColDef,
+												 SWORD FAR * pibScale,
+												 SWORD FAR * pfNullable);
+
+	RETCODE SQL_API SQLExtendedFetch(HSTMT hstmt,
+												 UWORD fFetchType,
+												 SDWORD irow,
+												 UDWORD FAR * pcrow,
+											   UWORD FAR * rgfRowStatus);
+
+	RETCODE SQL_API SQLForeignKeys(HSTMT hstmt,
+										  UCHAR FAR * szPkTableQualifier,
+											   SWORD cbPkTableQualifier,
+											   UCHAR FAR * szPkTableOwner,
+											   SWORD cbPkTableOwner,
+											   UCHAR FAR * szPkTableName,
+											   SWORD cbPkTableName,
+										  UCHAR FAR * szFkTableQualifier,
+											   SWORD cbFkTableQualifier,
+											   UCHAR FAR * szFkTableOwner,
+											   SWORD cbFkTableOwner,
+											   UCHAR FAR * szFkTableName,
+											   SWORD cbFkTableName);
+
+	RETCODE SQL_API SQLMoreResults(HSTMT hstmt);
+
+	RETCODE SQL_API SQLNativeSql(HDBC hdbc,
+											 UCHAR FAR * szSqlStrIn,
+											 SDWORD cbSqlStrIn,
+											 UCHAR FAR * szSqlStr,
+											 SDWORD cbSqlStrMax,
+											 SDWORD FAR * pcbSqlStr);
+
+	RETCODE SQL_API SQLNumParams(HSTMT hstmt,
+											 SWORD FAR * pcpar);
+
+	RETCODE SQL_API SQLParamOptions(HSTMT hstmt,
+												UDWORD crow,
+												UDWORD FAR * pirow);
+
+	RETCODE SQL_API SQLPrimaryKeys(HSTMT hstmt,
+											UCHAR FAR * szTableQualifier,
+											   SWORD cbTableQualifier,
+											   UCHAR FAR * szTableOwner,
+											   SWORD cbTableOwner,
+											   UCHAR FAR * szTableName,
+											   SWORD cbTableName);
+
+	RETCODE SQL_API SQLProcedureColumns(HSTMT hstmt,
+											 UCHAR FAR * szProcQualifier,
+													SWORD cbProcQualifier,
+												 UCHAR FAR * szProcOwner,
+													SWORD cbProcOwner,
+												  UCHAR FAR * szProcName,
+													SWORD cbProcName,
+												UCHAR FAR * szColumnName,
+													SWORD cbColumnName);
+
+	RETCODE SQL_API SQLProcedures(HSTMT hstmt,
+											  UCHAR FAR * szProcQualifier,
+											  SWORD cbProcQualifier,
+											  UCHAR FAR * szProcOwner,
+											  SWORD cbProcOwner,
+											  UCHAR FAR * szProcName,
+											  SWORD cbProcName);
+
+	RETCODE SQL_API SQLSetPos(HSTMT hstmt,
+										  UWORD irow,
+										  UWORD fOption,
+										  UWORD fLock);
+
+	RETCODE SQL_API SQLTablePrivileges(HSTMT hstmt,
+											UCHAR FAR * szTableQualifier,
+												   SWORD cbTableQualifier,
+												UCHAR FAR * szTableOwner,
+												   SWORD cbTableOwner,
+												 UCHAR FAR * szTableName,
+												   SWORD cbTableName);
+
+	RETCODE SQL_API SQLBindParameter(HSTMT hstmt,
+												 UWORD ipar,
+												 SWORD fParamType,
+												 SWORD fCType,
+												 SWORD fSqlType,
+												 UDWORD cbColDef,
+												 SWORD ibScale,
+												 PTR rgbValue,
+												 SDWORD cbValueMax,
+												 SDWORD FAR * pcbValue);
+
+	RETCODE SQL_API SQLSetScrollOptions(HSTMT hstmt,
+													UWORD fConcurrency,
+													SDWORD crowKeyset,
+													UWORD crowRowset);
+
+
+#ifdef __cplusplus
+}
+
+#endif
 
 #endif
diff --git a/src/interfaces/odbc/lobj.c b/src/interfaces/odbc/lobj.c
index c31591a65bb77b4e970314da882f225135cd25cd..0f1fd3b7c10cd237e57e5b781dd64acc1faec7cd 100644
--- a/src/interfaces/odbc/lobj.c
+++ b/src/interfaces/odbc/lobj.c
@@ -1,13 +1,13 @@
-/* Module:          lobj.c
+/* Module:			lobj.c
  *
- * Description:     This module contains routines related to manipulating
- *                  large objects.
+ * Description:		This module contains routines related to manipulating
+ *					large objects.
  *
- * Classes:         none
+ * Classes:			none
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -16,17 +16,18 @@
 #include "connection.h"
 
 Oid
-lo_creat(ConnectionClass *conn, int mode)
+lo_creat(ConnectionClass * conn, int mode)
 {
-LO_ARG argv[1];
-int retval, result_len;
+	LO_ARG		argv[1];
+	int			retval,
+				result_len;
 
 	argv[0].isint = 1;
 	argv[0].len = 4;
 	argv[0].u.integer = mode;
 
-	if ( ! CC_send_function(conn, LO_CREAT, &retval, &result_len, 1, argv, 1))
-		return 0;	/* invalid oid */
+	if (!CC_send_function(conn, LO_CREAT, &retval, &result_len, 1, argv, 1))
+		return 0;				/* invalid oid */
 	else
 		return retval;
 
@@ -34,11 +35,11 @@ int retval, result_len;
 }
 
 int
-lo_open(ConnectionClass *conn, int lobjId, int mode)
+lo_open(ConnectionClass * conn, int lobjId, int mode)
 {
-int fd;
-int result_len;
-LO_ARG argv[2];
+	int			fd;
+	int			result_len;
+	LO_ARG		argv[2];
 
 
 	argv[0].isint = 1;
@@ -49,7 +50,7 @@ LO_ARG argv[2];
 	argv[1].len = 4;
 	argv[1].u.integer = mode;
 
-	if ( ! CC_send_function(conn, LO_OPEN, &fd, &result_len, 1, argv, 2))
+	if (!CC_send_function(conn, LO_OPEN, &fd, &result_len, 1, argv, 2))
 		return -1;
 
 	if (fd >= 0 && lo_lseek(conn, fd, 0L, SEEK_SET) < 0)
@@ -58,18 +59,19 @@ LO_ARG argv[2];
 	return fd;
 }
 
-int 
-lo_close(ConnectionClass *conn, int fd)
+int
+lo_close(ConnectionClass * conn, int fd)
 {
-LO_ARG argv[1];
-int retval, result_len;
+	LO_ARG		argv[1];
+	int			retval,
+				result_len;
 
 
 	argv[0].isint = 1;
 	argv[0].len = 4;
 	argv[0].u.integer = fd;
 
-	if ( ! CC_send_function(conn, LO_CLOSE, &retval, &result_len, 1, argv, 1))
+	if (!CC_send_function(conn, LO_CLOSE, &retval, &result_len, 1, argv, 1))
 		return -1;
 
 	else
@@ -79,10 +81,10 @@ int retval, result_len;
 
 
 int
-lo_read(ConnectionClass *conn, int fd, char *buf, int len)
+lo_read(ConnectionClass * conn, int fd, char *buf, int len)
 {
-LO_ARG argv[2];
-int result_len;
+	LO_ARG		argv[2];
+	int			result_len;
 
 
 	argv[0].isint = 1;
@@ -93,7 +95,7 @@ int result_len;
 	argv[1].len = 4;
 	argv[1].u.integer = len;
 
-	if ( ! CC_send_function(conn, LO_READ, (int *) buf, &result_len, 0, argv, 2))
+	if (!CC_send_function(conn, LO_READ, (int *) buf, &result_len, 0, argv, 2))
 		return -1;
 
 	else
@@ -101,10 +103,11 @@ int result_len;
 }
 
 int
-lo_write(ConnectionClass *conn, int fd, char *buf, int len)
+lo_write(ConnectionClass * conn, int fd, char *buf, int len)
 {
-LO_ARG argv[2];
-int retval, result_len;
+	LO_ARG		argv[2];
+	int			retval,
+				result_len;
 
 
 	if (len <= 0)
@@ -118,7 +121,7 @@ int retval, result_len;
 	argv[1].len = len;
 	argv[1].u.ptr = (char *) buf;
 
-	if ( ! CC_send_function(conn, LO_WRITE, &retval, &result_len, 1, argv, 2))
+	if (!CC_send_function(conn, LO_WRITE, &retval, &result_len, 1, argv, 2))
 		return -1;
 
 	else
@@ -126,10 +129,11 @@ int retval, result_len;
 }
 
 int
-lo_lseek(ConnectionClass *conn, int fd, int offset, int whence)
+lo_lseek(ConnectionClass * conn, int fd, int offset, int whence)
 {
-LO_ARG argv[3];
-int retval, result_len;
+	LO_ARG		argv[3];
+	int			retval,
+				result_len;
 
 
 	argv[0].isint = 1;
@@ -144,7 +148,7 @@ int retval, result_len;
 	argv[2].len = 4;
 	argv[2].u.integer = whence;
 
-	if ( ! CC_send_function(conn, LO_LSEEK, &retval, &result_len, 1, argv, 3))
+	if (!CC_send_function(conn, LO_LSEEK, &retval, &result_len, 1, argv, 3))
 		return -1;
 
 	else
@@ -152,45 +156,39 @@ int retval, result_len;
 }
 
 int
-lo_tell(ConnectionClass *conn, int fd)
+lo_tell(ConnectionClass * conn, int fd)
 {
-LO_ARG argv[1];
-int retval, result_len;
+	LO_ARG		argv[1];
+	int			retval,
+				result_len;
 
 
 	argv[0].isint = 1;
 	argv[0].len = 4;
 	argv[0].u.integer = fd;
 
-	if ( ! CC_send_function(conn, LO_TELL, &retval, &result_len, 1, argv, 1))
+	if (!CC_send_function(conn, LO_TELL, &retval, &result_len, 1, argv, 1))
 		return -1;
 
 	else
 		return retval;
 }
 
-int 
-lo_unlink(ConnectionClass *conn, Oid lobjId)
+int
+lo_unlink(ConnectionClass * conn, Oid lobjId)
 {
-LO_ARG argv[1];
-int retval, result_len;
+	LO_ARG		argv[1];
+	int			retval,
+				result_len;
 
 
 	argv[0].isint = 1;
 	argv[0].len = 4;
 	argv[0].u.integer = lobjId;
 
-	if ( ! CC_send_function(conn, LO_UNLINK, &retval, &result_len, 1, argv, 1))
+	if (!CC_send_function(conn, LO_UNLINK, &retval, &result_len, 1, argv, 1))
 		return -1;
 
 	else
 		return retval;
 }
-
-
-
-
-
-
-
-
diff --git a/src/interfaces/odbc/lobj.h b/src/interfaces/odbc/lobj.h
index 8c4a3075d15ed3f6a0c9fee38daf7535c54dd163..d8ab76bd2471a79bb61d06381a7e814b9b408253 100644
--- a/src/interfaces/odbc/lobj.h
+++ b/src/interfaces/odbc/lobj.h
@@ -1,9 +1,9 @@
 
-/* File:            lobj.h
+/* File:			lobj.h
  *
- * Description:     See "lobj.c"
+ * Description:		See "lobj.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -13,14 +13,15 @@
 
 #include "psqlodbc.h"
 
-struct lo_arg {
-	int		isint;
-	int		len;
+struct lo_arg
+{
+	int			isint;
+	int			len;
 	union
 	{
-		int		integer;
-		char	*ptr;
-	} u;
+		int			integer;
+		char	   *ptr;
+	}			u;
 };
 
 #define LO_CREAT		957
@@ -35,14 +36,13 @@ struct lo_arg {
 #define INV_WRITE		0x00020000
 #define INV_READ		0x00040000
 
-Oid lo_creat(ConnectionClass *conn, int mode);
-int lo_open(ConnectionClass *conn, int lobjId, int mode);
-int lo_close(ConnectionClass *conn, int fd);
-int lo_read(ConnectionClass *conn, int fd, char *buf, int len);
-int lo_write(ConnectionClass *conn, int fd, char *buf, int len);
-int lo_lseek(ConnectionClass *conn, int fd, int offset, int len);
-int lo_tell(ConnectionClass *conn, int fd);
-int lo_unlink(ConnectionClass *conn, Oid lobjId);
+Oid			lo_creat(ConnectionClass * conn, int mode);
+int			lo_open(ConnectionClass * conn, int lobjId, int mode);
+int			lo_close(ConnectionClass * conn, int fd);
+int			lo_read(ConnectionClass * conn, int fd, char *buf, int len);
+int			lo_write(ConnectionClass * conn, int fd, char *buf, int len);
+int			lo_lseek(ConnectionClass * conn, int fd, int offset, int len);
+int			lo_tell(ConnectionClass * conn, int fd);
+int			lo_unlink(ConnectionClass * conn, Oid lobjId);
 
 #endif
-
diff --git a/src/interfaces/odbc/misc.c b/src/interfaces/odbc/misc.c
index b35c5c3d5b6a8cd8cc8eab440a706b043fafe1cf..3dd6c93e0b430786000284a96a5ce4d2a3278c69 100644
--- a/src/interfaces/odbc/misc.c
+++ b/src/interfaces/odbc/misc.c
@@ -1,13 +1,13 @@
-/* Module:          misc.c
+/* Module:			misc.c
  *
- * Description:     This module contains miscellaneous routines
- *                  such as for debugging/logging and string functions.
+ * Description:		This module contains miscellaneous routines
+ *					such as for debugging/logging and string functions.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -24,49 +24,54 @@
 #include <sys/types.h>
 #include <unistd.h>
 #else
-#include <process.h>	/* Byron: is this where Windows keeps def. of getpid ? */
+#include <process.h>			/* Byron: is this where Windows keeps def.
+								 * of getpid ? */
 #endif
 
 extern GLOBAL_VALUES globals;
-void generate_filename(char*,char*,char*);
+void		generate_filename(char *, char *, char *);
 
 void
-generate_filename(char* dirname,char* prefix,char* filename)
+generate_filename(char *dirname, char *prefix, char *filename)
 {
-	int pid = 0;
+	int			pid = 0;
+
 #ifndef WIN32
 	struct passwd *ptr = 0;
+
 	ptr = getpwuid(getuid());
 #endif
 	pid = getpid();
-	if(dirname == 0 || filename == 0)
+	if (dirname == 0 || filename == 0)
 		return;
 
-	strcpy(filename,dirname);
-	strcat(filename,DIRSEPARATOR);
-	if(prefix != 0)
-		strcat(filename,prefix);
+	strcpy(filename, dirname);
+	strcat(filename, DIRSEPARATOR);
+	if (prefix != 0)
+		strcat(filename, prefix);
 #ifndef WIN32
-	strcat(filename,ptr->pw_name);
+	strcat(filename, ptr->pw_name);
 #endif
-	sprintf(filename,"%s%u%s",filename,pid,".log");
+	sprintf(filename, "%s%u%s", filename, pid, ".log");
 	return;
 }
 
 #ifdef MY_LOG
 
 void
-mylog(char * fmt, ...)
+mylog(char *fmt,...)
 {
-	va_list args;
-	char filebuf[80];
-	FILE* LOGFP = globals.mylogFP;
+	va_list		args;
+	char		filebuf[80];
+	FILE	   *LOGFP = globals.mylogFP;
 
-	if ( globals.debug) {
+	if (globals.debug)
+	{
 		va_start(args, fmt);
 
-		if (! LOGFP) {
-			generate_filename(MYLOGDIR,MYLOGFILE,filebuf);
+		if (!LOGFP)
+		{
+			generate_filename(MYLOGDIR, MYLOGFILE, filebuf);
 			LOGFP = fopen(filebuf, PG_BINARY_W);
 			globals.mylogFP = LOGFP;
 			setbuf(LOGFP, NULL);
@@ -78,23 +83,26 @@ mylog(char * fmt, ...)
 		va_end(args);
 	}
 }
+
 #endif
 
 
 #ifdef Q_LOG
 
 void
-qlog(char * fmt, ...)
+qlog(char *fmt,...)
 {
-	va_list args;
-	char filebuf[80];
-	FILE* LOGFP = globals.qlogFP;
+	va_list		args;
+	char		filebuf[80];
+	FILE	   *LOGFP = globals.qlogFP;
 
-	if ( globals.commlog) {
+	if (globals.commlog)
+	{
 		va_start(args, fmt);
 
-		if (! LOGFP) {
-			generate_filename(QLOGDIR,QLOGFILE,filebuf);
+		if (!LOGFP)
+		{
+			generate_filename(QLOGDIR, QLOGFILE, filebuf);
 			LOGFP = fopen(filebuf, PG_BINARY_W);
 			globals.qlogFP = LOGFP;
 			setbuf(LOGFP, NULL);
@@ -106,9 +114,10 @@ qlog(char * fmt, ...)
 		va_end(args);
 	}
 }
+
 #endif
 
-/*  Undefine these because windows.h will redefine and cause a warning */
+/*	Undefine these because windows.h will redefine and cause a warning */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -135,7 +144,8 @@ my_strcpy(char *dst, int dst_len, char *src, int src_len)
 	if (dst_len <= 0)
 		return STRCPY_FAIL;
 
-	if (src_len == SQL_NULL_DATA) {
+	if (src_len == SQL_NULL_DATA)
+	{
 		dst[0] = '\0';
 		return STRCPY_NULL;
 	}
@@ -145,14 +155,17 @@ my_strcpy(char *dst, int dst_len, char *src, int src_len)
 	if (src_len <= 0)
 		return STRCPY_FAIL;
 
-	else {
-		if (src_len < dst_len) {
+	else
+	{
+		if (src_len < dst_len)
+		{
 			memcpy(dst, src, src_len);
 			dst[src_len] = '\0';
 		}
-		else {
-			memcpy(dst, src, dst_len-1);
-			dst[dst_len-1] = '\0';	/* truncated */
+		else
+		{
+			memcpy(dst, src, dst_len - 1);
+			dst[dst_len - 1] = '\0';	/* truncated */
 			return STRCPY_TRUNCATED;
 		}
 	}
@@ -164,28 +177,29 @@ my_strcpy(char *dst, int dst_len, char *src, int src_len)
 /* the destination string if src has len characters or more. */
 /* instead, I want it to copy up to len-1 characters and always */
 /* terminate the destination string. */
-char *strncpy_null(char *dst, const char *src, int len)
+char *
+strncpy_null(char *dst, const char *src, int len)
 {
-int i;
+	int			i;
 
 
-	if (NULL != dst) {
+	if (NULL != dst)
+	{
 
-		/*  Just in case, check for special lengths */
-		if (len == SQL_NULL_DATA) {
+		/* Just in case, check for special lengths */
+		if (len == SQL_NULL_DATA)
+		{
 			dst[0] = '\0';
 			return NULL;
 		}
 		else if (len == SQL_NTS)
 			len = strlen(src) + 1;
 
-		for(i = 0; src[i] && i < len - 1; i++) {
+		for (i = 0; src[i] && i < len - 1; i++)
 			dst[i] = src[i];
-		}
 
-		if(len > 0) {
+		if (len > 0)
 			dst[i] = '\0';
-		}
 	}
 	return dst;
 }
@@ -196,22 +210,24 @@ int i;
 char *
 make_string(char *s, int len, char *buf)
 {
-int length;
-char *str;
+	int			length;
+	char	   *str;
 
-	if(s && (len > 0 || (len == SQL_NTS && strlen(s) > 0))) {
+	if (s && (len > 0 || (len == SQL_NTS && strlen(s) > 0)))
+	{
 		length = (len > 0) ? len : strlen(s);
 
-		if (buf) {
-			strncpy_null(buf, s, length+1);
+		if (buf)
+		{
+			strncpy_null(buf, s, length + 1);
 			return buf;
 		}
 
 		str = malloc(length + 1);
-		if ( ! str)
+		if (!str)
 			return NULL;
 
-		strncpy_null(str, s, length+1);
+		strncpy_null(str, s, length + 1);
 		return str;
 	}
 
@@ -226,10 +242,11 @@ char *
 my_strcat(char *buf, char *fmt, char *s, int len)
 {
 
-	if (s && (len > 0 || (len == SQL_NTS && strlen(s) > 0))) {
-		int length = (len > 0) ? len : strlen(s);
+	if (s && (len > 0 || (len == SQL_NTS && strlen(s) > 0)))
+	{
+		int			length = (len > 0) ? len : strlen(s);
 
-		int pos = strlen(buf);
+		int			pos = strlen(buf);
 
 		sprintf(&buf[pos], fmt, length, s);
 		return buf;
@@ -237,24 +254,26 @@ my_strcat(char *buf, char *fmt, char *s, int len)
 	return NULL;
 }
 
-void remove_newlines(char *string)
+void
+remove_newlines(char *string)
 {
 	unsigned int i;
 
-	for(i=0; i < strlen(string); i++) {
-		if((string[i] == '\n') ||
-		   (string[i] == '\r')) {
+	for (i = 0; i < strlen(string); i++)
+	{
+		if ((string[i] == '\n') ||
+			(string[i] == '\r'))
 			string[i] = ' ';
-		}
 	}
 }
 
 char *
 trim(char *s)
 {
-	int i;
+	int			i;
 
-	for (i = strlen(s) - 1; i >= 0; i--) {
+	for (i = strlen(s) - 1; i >= 0; i--)
+	{
 		if (s[i] == ' ')
 			s[i] = '\0';
 		else
diff --git a/src/interfaces/odbc/misc.h b/src/interfaces/odbc/misc.h
index ebe56ea9d80bf429b3682991216f7d03c00e9fc3..e5e916465eda201503ca769806cf71e4aed71dff 100644
--- a/src/interfaces/odbc/misc.h
+++ b/src/interfaces/odbc/misc.h
@@ -1,9 +1,9 @@
 
-/* File:            misc.h
+/* File:			misc.h
  *
- * Description:     See "misc.c"
+ * Description:		See "misc.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -39,35 +39,37 @@
 
 
 #ifdef MY_LOG
-  #define MYLOGFILE	"mylog_"
-  #ifndef WIN32
-    #define MYLOGDIR	"/tmp"
-  #else
-    #define MYLOGDIR	"c:"
-  #endif
-  extern void mylog(char * fmt, ...);
+#define MYLOGFILE "mylog_"
+#ifndef WIN32
+#define MYLOGDIR	"/tmp"
+#else
+#define MYLOGDIR	"c:"
+#endif
+extern void mylog(char *fmt,...);
+
 #else
-  #ifndef WIN32
-    #define mylog(args...)	/* GNU convention for variable arguments */
-  #else
-    #define mylog    /* mylog */
-  #endif
+#ifndef WIN32
+#define mylog(args...)			/* GNU convention for variable arguments */
+#else
+#define mylog					/* mylog */
+#endif
 #endif
 
 #ifdef Q_LOG
-  #define QLOGFILE	"psqlodbc_"
-  #ifndef WIN32
-    #define QLOGDIR		"/tmp"
-  #else
-    #define QLOGDIR		"c:"
-  #endif
-  extern void qlog(char * fmt, ...);
+#define QLOGFILE  "psqlodbc_"
+#ifndef WIN32
+#define QLOGDIR		"/tmp"
+#else
+#define QLOGDIR		"c:"
+#endif
+extern void qlog(char *fmt,...);
+
 #else
-  #ifndef WIN32
-    #define qlog(args...)	/* GNU convention for variable arguments */
-  #else
-    #define qlog    /* qlog */
-  #endif
+#ifndef WIN32
+#define qlog(args...)			/* GNU convention for variable arguments */
+#else
+#define qlog					/* qlog */
+#endif
 #endif
 
 #ifndef WIN32
@@ -78,20 +80,20 @@
 
 #ifdef WIN32
 #define PG_BINARY	O_BINARY
-#define	PG_BINARY_R	"rb"
-#define	PG_BINARY_W	"wb"
+#define PG_BINARY_R "rb"
+#define PG_BINARY_W "wb"
 #else
-#define	PG_BINARY	0
-#define	PG_BINARY_R	"r"
-#define	PG_BINARY_W	"w"
+#define PG_BINARY	0
+#define PG_BINARY_R "r"
+#define PG_BINARY_W "w"
 #endif
 
 
-void remove_newlines(char *string);
-char *strncpy_null(char *dst, const char *src, int len);
-char *trim(char *string);
-char *make_string(char *s, int len, char *buf);
-char *my_strcat(char *buf, char *fmt, char *s, int len);
+void		remove_newlines(char *string);
+char	   *strncpy_null(char *dst, const char *src, int len);
+char	   *trim(char *string);
+char	   *make_string(char *s, int len, char *buf);
+char	   *my_strcat(char *buf, char *fmt, char *s, int len);
 
 /* defines for return value of my_strcpy */
 #define STRCPY_SUCCESS		1
@@ -99,6 +101,6 @@ char *my_strcat(char *buf, char *fmt, char *s, int len);
 #define STRCPY_TRUNCATED	-1
 #define STRCPY_NULL			-2
 
-int my_strcpy(char *dst, int dst_len, char *src, int src_len);
+int			my_strcpy(char *dst, int dst_len, char *src, int src_len);
 
 #endif
diff --git a/src/interfaces/odbc/options.c b/src/interfaces/odbc/options.c
index 67c973ec0ac873fa02aa27fb4dea23bb2e678292..acb36a2a967c63b27107b7e607fdcca3d9028236 100644
--- a/src/interfaces/odbc/options.c
+++ b/src/interfaces/odbc/options.c
@@ -1,14 +1,14 @@
-/* Module:          options.c
+/* Module:			options.c
  *
- * Description:     This module contains routines for getting/setting
- *                  connection and statement options.
+ * Description:		This module contains routines for getting/setting
+ *					connection and statement options.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   SQLSetConnectOption, SQLSetStmtOption, SQLGetConnectOption,
- *                  SQLGetStmtOption
+ * API functions:	SQLSetConnectOption, SQLSetStmtOption, SQLGetConnectOption,
+ *					SQLGetStmtOption
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -37,207 +37,246 @@
 
 extern GLOBAL_VALUES globals;
 
-RETCODE set_statement_option(ConnectionClass *conn, 
-							 StatementClass *stmt, 
-							 UWORD   fOption,
-							 UDWORD  vParam);
+RETCODE set_statement_option(ConnectionClass * conn,
+					 StatementClass * stmt,
+					 UWORD fOption,
+					 UDWORD vParam);
 
 
 
-RETCODE set_statement_option(ConnectionClass *conn, 
-							 StatementClass *stmt, 
-							 UWORD   fOption,
-							 UDWORD  vParam)
+RETCODE
+set_statement_option(ConnectionClass * conn,
+					 StatementClass * stmt,
+					 UWORD fOption,
+					 UDWORD vParam)
 {
-static char *func="set_statement_option";
-char changed = FALSE;
+	static char *func = "set_statement_option";
+	char		changed = FALSE;
 
 
-	switch(fOption) {
-	case SQL_ASYNC_ENABLE:/* ignored */
-		break;
+	switch (fOption)
+	{
+		case SQL_ASYNC_ENABLE:	/* ignored */
+			break;
 
-	case SQL_BIND_TYPE:		
-		/* now support multi-column and multi-row binding */
-		if (conn) conn->stmtOptions.bind_size = vParam;
-		if (stmt) stmt->options.bind_size = vParam;
-		break;
+		case SQL_BIND_TYPE:
+			/* now support multi-column and multi-row binding */
+			if (conn)
+				conn->stmtOptions.bind_size = vParam;
+			if (stmt)
+				stmt->options.bind_size = vParam;
+			break;
 
-	case SQL_CONCURRENCY:
-		/*	positioned update isn't supported so cursor concurrency is read-only */
+		case SQL_CONCURRENCY:
 
-		if (conn) conn->stmtOptions.scroll_concurrency = vParam;
-		if (stmt) stmt->options.scroll_concurrency = vParam;
-		break;
+			/*
+			 * positioned update isn't supported so cursor concurrency is
+			 * read-only
+			 */
 
-		/*
-		if (globals.lie) {
-			if (conn) conn->stmtOptions.scroll_concurrency = vParam;
-			if (stmt) stmt->options.scroll_concurrency = vParam;
-		}
-		else {
+			if (conn)
+				conn->stmtOptions.scroll_concurrency = vParam;
+			if (stmt)
+				stmt->options.scroll_concurrency = vParam;
+			break;
 
-			if (conn) conn->stmtOptions.scroll_concurrency = SQL_CONCUR_READ_ONLY;
-			if (stmt) stmt->options.scroll_concurrency = SQL_CONCUR_READ_ONLY;
+			/*
+			 * if (globals.lie) { if (conn)
+			 * conn->stmtOptions.scroll_concurrency = vParam; if (stmt)
+			 * stmt->options.scroll_concurrency = vParam; } else {
+			 *
+			 * if (conn) conn->stmtOptions.scroll_concurrency =
+			 * SQL_CONCUR_READ_ONLY; if (stmt)
+			 * stmt->options.scroll_concurrency = SQL_CONCUR_READ_ONLY;
+			 *
+			 * if (vParam != SQL_CONCUR_READ_ONLY) changed = TRUE; } break;
+			 */
+
+		case SQL_CURSOR_TYPE:
+
+			/*
+			 * if declare/fetch, then type can only be forward. otherwise,
+			 * it can only be forward or static.
+			 */
+			mylog("SetStmtOption(): SQL_CURSOR_TYPE = %d\n", vParam);
+
+			if (globals.lie)
+			{
+
+				if (conn)
+					conn->stmtOptions.cursor_type = vParam;
+				if (stmt)
+					stmt->options.cursor_type = vParam;
 
-			if (vParam != SQL_CONCUR_READ_ONLY)
-				changed = TRUE;
-		}
-		break;
-		*/
-		
-	case SQL_CURSOR_TYPE:
-		/*	if declare/fetch, then type can only be forward.
-			otherwise, it can only be forward or static.
-		*/
-		mylog("SetStmtOption(): SQL_CURSOR_TYPE = %d\n", vParam);
+			}
+			else
+			{
+				if (globals.use_declarefetch)
+				{
+
+					if (conn)
+						conn->stmtOptions.cursor_type = SQL_CURSOR_FORWARD_ONLY;
+					if (stmt)
+						stmt->options.cursor_type = SQL_CURSOR_FORWARD_ONLY;
+
+					if (vParam != SQL_CURSOR_FORWARD_ONLY)
+						changed = TRUE;
+				}
+				else
+				{
+					if (vParam == SQL_CURSOR_FORWARD_ONLY || vParam == SQL_CURSOR_STATIC)
+					{
+
+						if (conn)
+							conn->stmtOptions.cursor_type = vParam;		/* valid type */
+						if (stmt)
+							stmt->options.cursor_type = vParam; /* valid type */
+					}
+					else
+					{
+
+						if (conn)
+							conn->stmtOptions.cursor_type = SQL_CURSOR_STATIC;
+						if (stmt)
+							stmt->options.cursor_type = SQL_CURSOR_STATIC;
+
+						changed = TRUE;
+					}
+				}
+			}
+			break;
 
-		if (globals.lie) {
+		case SQL_KEYSET_SIZE:	/* ignored, but saved and returned	*/
+			mylog("SetStmtOption(): SQL_KEYSET_SIZE, vParam = %d\n", vParam);
 
-			if (conn) conn->stmtOptions.cursor_type = vParam;
-			if (stmt) stmt->options.cursor_type = vParam;
+			if (conn)
+				conn->stmtOptions.keyset_size = vParam;
+			if (stmt)
+				stmt->options.keyset_size = vParam;
 
-		}
-		else {
-			if (globals.use_declarefetch) {
+			break;
 
-				if (conn) conn->stmtOptions.cursor_type = SQL_CURSOR_FORWARD_ONLY;
-				if (stmt) stmt->options.cursor_type = SQL_CURSOR_FORWARD_ONLY;
+			/*
+			 * if (globals.lie) stmt->keyset_size = vParam; else {
+			 * stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
+			 * stmt->errormsg = "Driver does not support keyset size
+			 * option"; SC_log_error(func, "", stmt); return SQL_ERROR; }
+			 */
+
+		case SQL_MAX_LENGTH:	/* ignored, but saved */
+			mylog("SetStmtOption(): SQL_MAX_LENGTH, vParam = %d\n", vParam);
+			if (conn)
+				conn->stmtOptions.maxLength = vParam;
+			if (stmt)
+				stmt->options.maxLength = vParam;
+			break;
 
-				if (vParam != SQL_CURSOR_FORWARD_ONLY) 
-					changed = TRUE;
-			}
-			else {
-				if (vParam == SQL_CURSOR_FORWARD_ONLY || vParam == SQL_CURSOR_STATIC) {
+		case SQL_MAX_ROWS:		/* ignored, but saved */
+			mylog("SetStmtOption(): SQL_MAX_ROWS, vParam = %d\n", vParam);
+			if (conn)
+				conn->stmtOptions.maxRows = vParam;
+			if (stmt)
+				stmt->options.maxRows = vParam;
+			break;
 
-					if (conn) conn->stmtOptions.cursor_type = vParam;		/* valid type */
-					if (stmt) stmt->options.cursor_type = vParam;		/* valid type */
-				}
-				else {
+		case SQL_NOSCAN:		/* ignored */
+			mylog("SetStmtOption: SQL_NOSCAN, vParam = %d\n", vParam);
+			break;
 
-					if (conn) conn->stmtOptions.cursor_type = SQL_CURSOR_STATIC;
-					if (stmt) stmt->options.cursor_type = SQL_CURSOR_STATIC;
+		case SQL_QUERY_TIMEOUT:/* ignored */
+			mylog("SetStmtOption: SQL_QUERY_TIMEOUT, vParam = %d\n", vParam);
+			/* "0" returned in SQLGetStmtOption */
+			break;
 
-					changed = TRUE;
-				}
-			}
-		}
-		break;
+		case SQL_RETRIEVE_DATA:/* ignored, but saved */
+			mylog("SetStmtOption(): SQL_RETRIEVE_DATA, vParam = %d\n", vParam);
+			if (conn)
+				conn->stmtOptions.retrieve_data = vParam;
+			if (stmt)
+				stmt->options.retrieve_data = vParam;
+			break;
 
-	case SQL_KEYSET_SIZE: /* ignored, but saved and returned  */
-		mylog("SetStmtOption(): SQL_KEYSET_SIZE, vParam = %d\n", vParam);
+		case SQL_ROWSET_SIZE:
+			mylog("SetStmtOption(): SQL_ROWSET_SIZE, vParam = %d\n", vParam);
 
-		if (conn) conn->stmtOptions.keyset_size = vParam;
-		if (stmt) stmt->options.keyset_size = vParam;
 
-		break;
+			/*
+			 * Save old rowset size for SQLExtendedFetch purposes If the
+			 * rowset_size is being changed since the last call to fetch
+			 * rows.
+			 */
 
-		/*
-		if (globals.lie)
-			stmt->keyset_size = vParam;
-		else {
-			stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
-			stmt->errormsg = "Driver does not support keyset size option";
-			SC_log_error(func, "", stmt);
-			return SQL_ERROR;
-		}
-		*/
-
-	case SQL_MAX_LENGTH:/* ignored, but saved */
-		mylog("SetStmtOption(): SQL_MAX_LENGTH, vParam = %d\n", vParam);
-		if (conn) conn->stmtOptions.maxLength = vParam;
-		if (stmt) stmt->options.maxLength = vParam;
-		break;
-
-	case SQL_MAX_ROWS: /* ignored, but saved */
-		mylog("SetStmtOption(): SQL_MAX_ROWS, vParam = %d\n", vParam);
-		if (conn) conn->stmtOptions.maxRows = vParam;
-		if (stmt) stmt->options.maxRows = vParam;
-		break;
-
-	case SQL_NOSCAN: /* ignored */
-		mylog("SetStmtOption: SQL_NOSCAN, vParam = %d\n", vParam);
-		break;
-
-	case SQL_QUERY_TIMEOUT: /* ignored */
-		mylog("SetStmtOption: SQL_QUERY_TIMEOUT, vParam = %d\n", vParam);
-		/*	"0" returned in SQLGetStmtOption */
-		break;
-
-	case SQL_RETRIEVE_DATA: /* ignored, but saved */
-		mylog("SetStmtOption(): SQL_RETRIEVE_DATA, vParam = %d\n", vParam);
-		if (conn) conn->stmtOptions.retrieve_data = vParam;
-		if (stmt) stmt->options.retrieve_data = vParam;
-		break;
-
-	case SQL_ROWSET_SIZE:
-		mylog("SetStmtOption(): SQL_ROWSET_SIZE, vParam = %d\n", vParam);
-
-
-		/*	Save old rowset size for SQLExtendedFetch purposes 
-			If the rowset_size is being changed since the last call
-			to fetch rows.
-		*/
-
-		if (stmt && stmt->save_rowset_size <= 0 && stmt->last_fetch_count > 0 )
-			stmt->save_rowset_size = stmt->options.rowset_size;
-
-		if (vParam < 1) {
-			vParam = 1;
-			changed = TRUE;
-		}
+			if (stmt && stmt->save_rowset_size <= 0 && stmt->last_fetch_count > 0)
+				stmt->save_rowset_size = stmt->options.rowset_size;
 
-		if (conn) conn->stmtOptions.rowset_size = vParam;
-		if (stmt) stmt->options.rowset_size = vParam;
+			if (vParam < 1)
+			{
+				vParam = 1;
+				changed = TRUE;
+			}
 
-		break;
+			if (conn)
+				conn->stmtOptions.rowset_size = vParam;
+			if (stmt)
+				stmt->options.rowset_size = vParam;
 
-	case SQL_SIMULATE_CURSOR: /* NOT SUPPORTED */
-		if (stmt) {
-			stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
-			stmt->errormsg = "Simulated positioned update/delete not supported.  Use the cursor library.";
-			SC_log_error(func, "", stmt);
-		}
-		if (conn) {
-			conn->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
-			conn->errormsg = "Simulated positioned update/delete not supported.  Use the cursor library.";
-			CC_log_error(func, "", conn);
-		}
-		return SQL_ERROR;
+			break;
 
-	case SQL_USE_BOOKMARKS:
+		case SQL_SIMULATE_CURSOR:		/* NOT SUPPORTED */
+			if (stmt)
+			{
+				stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
+				stmt->errormsg = "Simulated positioned update/delete not supported.  Use the cursor library.";
+				SC_log_error(func, "", stmt);
+			}
+			if (conn)
+			{
+				conn->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
+				conn->errormsg = "Simulated positioned update/delete not supported.  Use the cursor library.";
+				CC_log_error(func, "", conn);
+			}
+			return SQL_ERROR;
 
-		if (stmt) stmt->options.use_bookmarks = vParam;
-		if (conn) conn->stmtOptions.use_bookmarks = vParam;
-		break;
+		case SQL_USE_BOOKMARKS:
 
-    default:
-		{
-		char option[64];
+			if (stmt)
+				stmt->options.use_bookmarks = vParam;
+			if (conn)
+				conn->stmtOptions.use_bookmarks = vParam;
+			break;
 
-		if (stmt) {
-			stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
-			stmt->errormsg = "Unknown statement option (Set)";
-			sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam);
-			SC_log_error(func, option, stmt);
-		}
-		if (conn) {
-			conn->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
-			conn->errormsg = "Unknown statement option (Set)";
-			sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam);
-			CC_log_error(func, option, conn);
-		}
+		default:
+			{
+				char		option[64];
+
+				if (stmt)
+				{
+					stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
+					stmt->errormsg = "Unknown statement option (Set)";
+					sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam);
+					SC_log_error(func, option, stmt);
+				}
+				if (conn)
+				{
+					conn->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
+					conn->errormsg = "Unknown statement option (Set)";
+					sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam);
+					CC_log_error(func, option, conn);
+				}
 
-        return SQL_ERROR;
-		}
-    }
+				return SQL_ERROR;
+			}
+	}
 
-	if (changed) {
-		if (stmt) {
+	if (changed)
+	{
+		if (stmt)
+		{
 			stmt->errormsg = "Requested value changed.";
 			stmt->errornumber = STMT_OPTION_VALUE_CHANGED;
 		}
-		if (conn) {
+		if (conn)
+		{
 			conn->errormsg = "Requested value changed.";
 			conn->errornumber = STMT_OPTION_VALUE_CHANGED;
 		}
@@ -250,133 +289,145 @@ char changed = FALSE;
 
 
 /* Implements only SQL_AUTOCOMMIT */
-RETCODE SQL_API SQLSetConnectOption(
-        HDBC    hdbc,
-        UWORD   fOption,
-        UDWORD  vParam)
+RETCODE SQL_API
+SQLSetConnectOption(
+					HDBC hdbc,
+					UWORD fOption,
+					UDWORD vParam)
 {
-static char *func="SQLSetConnectOption";
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-char changed = FALSE;
-RETCODE retval;
-int i;
+	static char *func = "SQLSetConnectOption";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	char		changed = FALSE;
+	RETCODE		retval;
+	int			i;
 
 	mylog("%s: entering...\n", func);
 
-	if ( ! conn)  {
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 
-	switch (fOption) {
-	/* Statement Options 
-	   (apply to all stmts on the connection and become defaults for new stmts)
-	*/
-	case SQL_ASYNC_ENABLE:
-	case SQL_BIND_TYPE:		
-	case SQL_CONCURRENCY:
-	case SQL_CURSOR_TYPE:
-	case SQL_KEYSET_SIZE: 
-	case SQL_MAX_LENGTH:
-	case SQL_MAX_ROWS:
-	case SQL_NOSCAN: 
-	case SQL_QUERY_TIMEOUT:
-	case SQL_RETRIEVE_DATA:
-	case SQL_ROWSET_SIZE:
-	case SQL_SIMULATE_CURSOR:
-	case SQL_USE_BOOKMARKS:
-
-		/*	Affect all current Statements */
-		for (i = 0; i < conn->num_stmts; i++) {
-			if ( conn->stmts[i]) {
-				set_statement_option(NULL, conn->stmts[i], fOption, vParam);
+	switch (fOption)
+	{
+
+			/*
+			 * Statement Options (apply to all stmts on the connection and
+			 * become defaults for new stmts)
+			 */
+		case SQL_ASYNC_ENABLE:
+		case SQL_BIND_TYPE:
+		case SQL_CONCURRENCY:
+		case SQL_CURSOR_TYPE:
+		case SQL_KEYSET_SIZE:
+		case SQL_MAX_LENGTH:
+		case SQL_MAX_ROWS:
+		case SQL_NOSCAN:
+		case SQL_QUERY_TIMEOUT:
+		case SQL_RETRIEVE_DATA:
+		case SQL_ROWSET_SIZE:
+		case SQL_SIMULATE_CURSOR:
+		case SQL_USE_BOOKMARKS:
+
+			/* Affect all current Statements */
+			for (i = 0; i < conn->num_stmts; i++)
+			{
+				if (conn->stmts[i])
+					set_statement_option(NULL, conn->stmts[i], fOption, vParam);
 			}
-		}
 
-		/*	Become the default for all future statements on this connection */
-		retval = set_statement_option(conn, NULL, fOption, vParam);
+			/*
+			 * Become the default for all future statements on this
+			 * connection
+			 */
+			retval = set_statement_option(conn, NULL, fOption, vParam);
 
-		if (retval == SQL_SUCCESS_WITH_INFO)
-			changed = TRUE;
-		else if (retval == SQL_ERROR)
-			return SQL_ERROR;
+			if (retval == SQL_SUCCESS_WITH_INFO)
+				changed = TRUE;
+			else if (retval == SQL_ERROR)
+				return SQL_ERROR;
 
-		break;
+			break;
 
-	/**********************************/
-	/*****	Connection Options  *******/	
-	/**********************************/
+			/**********************************/
+			/*****	Connection Options	*******/
+			/**********************************/
 
-	case SQL_ACCESS_MODE: /* ignored */
-		break;
+		case SQL_ACCESS_MODE:	/* ignored */
+			break;
 
-	case SQL_AUTOCOMMIT:
+		case SQL_AUTOCOMMIT:
 
-		if (CC_is_in_trans(conn)) {
-			conn->errormsg = "Cannot switch commit mode while a transaction is in progress";
-			conn->errornumber = CONN_TRANSACT_IN_PROGRES;
-			CC_log_error(func, "", conn);
-			return SQL_ERROR;
-		}
+			if (CC_is_in_trans(conn))
+			{
+				conn->errormsg = "Cannot switch commit mode while a transaction is in progress";
+				conn->errornumber = CONN_TRANSACT_IN_PROGRES;
+				CC_log_error(func, "", conn);
+				return SQL_ERROR;
+			}
+
+			mylog("SQLSetConnectOption: AUTOCOMMIT: transact_status=%d, vparam=%d\n", conn->transact_status, vParam);
+
+			switch (vParam)
+			{
+				case SQL_AUTOCOMMIT_OFF:
+					CC_set_autocommit_off(conn);
+					break;
 
-		mylog("SQLSetConnectOption: AUTOCOMMIT: transact_status=%d, vparam=%d\n", conn->transact_status, vParam);
+				case SQL_AUTOCOMMIT_ON:
+					CC_set_autocommit_on(conn);
+					break;
+
+				default:
+					conn->errormsg = "Illegal parameter value for SQL_AUTOCOMMIT";
+					conn->errornumber = CONN_INVALID_ARGUMENT_NO;
+					CC_log_error(func, "", conn);
+					return SQL_ERROR;
+			}
 
-		switch(vParam) {
-		case SQL_AUTOCOMMIT_OFF:
-			CC_set_autocommit_off(conn);
 			break;
 
-		case SQL_AUTOCOMMIT_ON:
-			CC_set_autocommit_on(conn);
+		case SQL_CURRENT_QUALIFIER:		/* ignored */
+			break;
+
+		case SQL_LOGIN_TIMEOUT:/* ignored */
+			break;
+
+		case SQL_PACKET_SIZE:	/* ignored */
+			break;
+
+		case SQL_QUIET_MODE:	/* ignored */
+			break;
+
+		case SQL_TXN_ISOLATION:/* ignored */
+			break;
+
+			/* These options should be handled by driver manager */
+		case SQL_ODBC_CURSORS:
+		case SQL_OPT_TRACE:
+		case SQL_OPT_TRACEFILE:
+		case SQL_TRANSLATE_DLL:
+		case SQL_TRANSLATE_OPTION:
+			CC_log_error(func, "This connect option (Set) is only used by the Driver Manager", conn);
 			break;
 
 		default:
-			conn->errormsg = "Illegal parameter value for SQL_AUTOCOMMIT";
-			conn->errornumber = CONN_INVALID_ARGUMENT_NO;
-			CC_log_error(func, "", conn);
-			return SQL_ERROR;
-		}
+			{
+				char		option[64];
 
-		break;
-
-	case SQL_CURRENT_QUALIFIER: /* ignored */
-		break;
-
-	case SQL_LOGIN_TIMEOUT: /* ignored */
-		break;
-
-	case SQL_PACKET_SIZE:	/* ignored */
-		break;
-
-	case SQL_QUIET_MODE:	/* ignored */
-		break;
-
-	case SQL_TXN_ISOLATION: /* ignored */
-		break;
-		
-	/*	These options should be handled by driver manager */
-	case SQL_ODBC_CURSORS:
-	case SQL_OPT_TRACE:
-	case SQL_OPT_TRACEFILE:
-	case SQL_TRANSLATE_DLL:
-	case SQL_TRANSLATE_OPTION:
-		CC_log_error(func, "This connect option (Set) is only used by the Driver Manager", conn);
-		break;
-
-	default:
-		{ 
-		char option[64];
-		conn->errormsg = "Unknown connect option (Set)";
-		conn->errornumber = CONN_UNSUPPORTED_OPTION;
-		sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam);
-		CC_log_error(func, option, conn);
-		return SQL_ERROR;
-		}
+				conn->errormsg = "Unknown connect option (Set)";
+				conn->errornumber = CONN_UNSUPPORTED_OPTION;
+				sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam);
+				CC_log_error(func, option, conn);
+				return SQL_ERROR;
+			}
 
-	}    
+	}
 
-	if (changed) {
+	if (changed)
+	{
 		conn->errornumber = CONN_OPTION_VALUE_CHANGED;
 		conn->errormsg = "Requested value changed.";
 		return SQL_SUCCESS_WITH_INFO;
@@ -385,90 +436,95 @@ int i;
 		return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
 /* This function just can tell you whether you are in Autcommit mode or not */
-RETCODE SQL_API SQLGetConnectOption(
-        HDBC    hdbc,
-        UWORD   fOption,
-        PTR     pvParam)
+RETCODE SQL_API
+SQLGetConnectOption(
+					HDBC hdbc,
+					UWORD fOption,
+					PTR pvParam)
 {
-static char *func="SQLGetConnectOption";
-ConnectionClass *conn = (ConnectionClass *) hdbc;
+	static char *func = "SQLGetConnectOption";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
 
 	mylog("%s: entering...\n", func);
 
-	if (! conn)  {
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	switch (fOption) {
-	case SQL_ACCESS_MODE:/* NOT SUPPORTED */
-		*((UDWORD *) pvParam) = SQL_MODE_READ_WRITE;
-		break;
+	switch (fOption)
+	{
+		case SQL_ACCESS_MODE:	/* NOT SUPPORTED */
+			*((UDWORD *) pvParam) = SQL_MODE_READ_WRITE;
+			break;
 
-	case SQL_AUTOCOMMIT:
-		*((UDWORD *)pvParam) = (UDWORD)( CC_is_in_autocommit(conn) ?
-						SQL_AUTOCOMMIT_ON : SQL_AUTOCOMMIT_OFF);
-		break;
+		case SQL_AUTOCOMMIT:
+			*((UDWORD *) pvParam) = (UDWORD) (CC_is_in_autocommit(conn) ?
+								 SQL_AUTOCOMMIT_ON : SQL_AUTOCOMMIT_OFF);
+			break;
 
-	case SQL_CURRENT_QUALIFIER:	/* don't use qualifiers */
-		if(pvParam)
-			strcpy(pvParam, "");
+		case SQL_CURRENT_QUALIFIER:		/* don't use qualifiers */
+			if (pvParam)
+				strcpy(pvParam, "");
 
-		break;
+			break;
 
-	case SQL_LOGIN_TIMEOUT: /* NOT SUPPORTED */
-		*((UDWORD *) pvParam) = 0;
-		break;
+		case SQL_LOGIN_TIMEOUT:/* NOT SUPPORTED */
+			*((UDWORD *) pvParam) = 0;
+			break;
 
-	case SQL_PACKET_SIZE: /* NOT SUPPORTED */
-		*((UDWORD *) pvParam) = globals.socket_buffersize;
-		break;
+		case SQL_PACKET_SIZE:	/* NOT SUPPORTED */
+			*((UDWORD *) pvParam) = globals.socket_buffersize;
+			break;
 
-	case SQL_QUIET_MODE:/* NOT SUPPORTED */
-		*((UDWORD *) pvParam) = (UDWORD) NULL;
-		break;
+		case SQL_QUIET_MODE:	/* NOT SUPPORTED */
+			*((UDWORD *) pvParam) = (UDWORD) NULL;
+			break;
 
-	case SQL_TXN_ISOLATION:/* NOT SUPPORTED */
-		*((UDWORD *) pvParam) = SQL_TXN_SERIALIZABLE;
-		break;
+		case SQL_TXN_ISOLATION:/* NOT SUPPORTED */
+			*((UDWORD *) pvParam) = SQL_TXN_SERIALIZABLE;
+			break;
 
-	/*	These options should be handled by driver manager */
-	case SQL_ODBC_CURSORS:
-	case SQL_OPT_TRACE:
-	case SQL_OPT_TRACEFILE:
-	case SQL_TRANSLATE_DLL:
-	case SQL_TRANSLATE_OPTION:
-		CC_log_error(func, "This connect option (Get) is only used by the Driver Manager", conn);
-		break;
+			/* These options should be handled by driver manager */
+		case SQL_ODBC_CURSORS:
+		case SQL_OPT_TRACE:
+		case SQL_OPT_TRACEFILE:
+		case SQL_TRANSLATE_DLL:
+		case SQL_TRANSLATE_OPTION:
+			CC_log_error(func, "This connect option (Get) is only used by the Driver Manager", conn);
+			break;
 
-	default:
-		{
-		char option[64];
-		conn->errormsg = "Unknown connect option (Get)";
-		conn->errornumber = CONN_UNSUPPORTED_OPTION;
-		sprintf(option, "fOption=%d", fOption);
-		CC_log_error(func, option, conn);
-		return SQL_ERROR;
-		break;
-		}
+		default:
+			{
+				char		option[64];
 
-	}    
+				conn->errormsg = "Unknown connect option (Get)";
+				conn->errornumber = CONN_UNSUPPORTED_OPTION;
+				sprintf(option, "fOption=%d", fOption);
+				CC_log_error(func, option, conn);
+				return SQL_ERROR;
+				break;
+			}
+
+	}
 
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLSetStmtOption(
-        HSTMT   hstmt,
-        UWORD   fOption,
-        UDWORD  vParam)
+RETCODE SQL_API
+SQLSetStmtOption(
+				 HSTMT hstmt,
+				 UWORD fOption,
+				 UDWORD vParam)
 {
-static char *func="SQLSetStmtOption";
-StatementClass *stmt = (StatementClass *) hstmt;
+	static char *func = "SQLSetStmtOption";
+	StatementClass *stmt = (StatementClass *) hstmt;
 
 	mylog("%s: entering...\n", func);
 
@@ -476,7 +532,8 @@ StatementClass *stmt = (StatementClass *) hstmt;
 	/* all the time, but it tries to set a huge value for SQL_MAX_LENGTH */
 	/* and expects the driver to reduce it to the real value */
 
-	if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -485,16 +542,17 @@ StatementClass *stmt = (StatementClass *) hstmt;
 }
 
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
-RETCODE SQL_API SQLGetStmtOption(
-        HSTMT   hstmt,
-        UWORD   fOption,
-        PTR     pvParam)
+RETCODE SQL_API
+SQLGetStmtOption(
+				 HSTMT hstmt,
+				 UWORD fOption,
+				 PTR pvParam)
 {
-static char *func="SQLGetStmtOption";
-StatementClass *stmt = (StatementClass *) hstmt;
-QResultClass *res;
+	static char *func = "SQLGetStmtOption";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	QResultClass *res;
 
 	mylog("%s: entering...\n", func);
 
@@ -502,115 +560,123 @@ QResultClass *res;
 	/* all the time, but it tries to set a huge value for SQL_MAX_LENGTH */
 	/* and expects the driver to reduce it to the real value */
 
-	if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	switch(fOption) {
-	case SQL_GET_BOOKMARK:
-	case SQL_ROW_NUMBER:
-
-		res = stmt->result;
-
-		if ( stmt->manual_result || ! globals.use_declarefetch) {
-			/* make sure we're positioned on a valid row */
-			if((stmt->currTuple < 0) ||
-			   (stmt->currTuple >= QR_get_num_tuples(res))) {
-				stmt->errormsg = "Not positioned on a valid row.";
-				stmt->errornumber = STMT_INVALID_CURSOR_STATE_ERROR;
-				SC_log_error(func, "", stmt);
-				return SQL_ERROR;
+	switch (fOption)
+	{
+		case SQL_GET_BOOKMARK:
+		case SQL_ROW_NUMBER:
+
+			res = stmt->result;
+
+			if (stmt->manual_result || !globals.use_declarefetch)
+			{
+				/* make sure we're positioned on a valid row */
+				if ((stmt->currTuple < 0) ||
+					(stmt->currTuple >= QR_get_num_tuples(res)))
+				{
+					stmt->errormsg = "Not positioned on a valid row.";
+					stmt->errornumber = STMT_INVALID_CURSOR_STATE_ERROR;
+					SC_log_error(func, "", stmt);
+					return SQL_ERROR;
+				}
 			}
-		}
-		else {
-			if (stmt->currTuple == -1 || ! res || ! res->tupleField) {
-				stmt->errormsg = "Not positioned on a valid row.";
-				stmt->errornumber = STMT_INVALID_CURSOR_STATE_ERROR;
+			else
+			{
+				if (stmt->currTuple == -1 || !res || !res->tupleField)
+				{
+					stmt->errormsg = "Not positioned on a valid row.";
+					stmt->errornumber = STMT_INVALID_CURSOR_STATE_ERROR;
+					SC_log_error(func, "", stmt);
+					return SQL_ERROR;
+				}
+			}
+
+			if (fOption == SQL_GET_BOOKMARK && stmt->options.use_bookmarks == SQL_UB_OFF)
+			{
+				stmt->errormsg = "Operation invalid because use bookmarks not enabled.";
+				stmt->errornumber = STMT_OPERATION_INVALID;
 				SC_log_error(func, "", stmt);
 				return SQL_ERROR;
 			}
-		}
 
-		if (fOption == SQL_GET_BOOKMARK && stmt->options.use_bookmarks == SQL_UB_OFF) {
-			stmt->errormsg = "Operation invalid because use bookmarks not enabled.";
-			stmt->errornumber = STMT_OPERATION_INVALID;
-			SC_log_error(func, "", stmt);
-			return SQL_ERROR;
-		}
+			*((UDWORD *) pvParam) = SC_get_bookmark(stmt);
 
-		*((UDWORD *) pvParam) = SC_get_bookmark(stmt);
-		
-		break;
+			break;
 
-	case SQL_ASYNC_ENABLE:	/* NOT SUPPORTED */
-		*((SDWORD *) pvParam) = SQL_ASYNC_ENABLE_OFF;
-		break;
+		case SQL_ASYNC_ENABLE:	/* NOT SUPPORTED */
+			*((SDWORD *) pvParam) = SQL_ASYNC_ENABLE_OFF;
+			break;
 
-	case SQL_BIND_TYPE:
-		*((SDWORD *) pvParam) = stmt->options.bind_size;
-		break;
+		case SQL_BIND_TYPE:
+			*((SDWORD *) pvParam) = stmt->options.bind_size;
+			break;
 
-	case SQL_CONCURRENCY: /* NOT REALLY SUPPORTED */
-		mylog("GetStmtOption(): SQL_CONCURRENCY\n");
-		*((SDWORD *)pvParam) = stmt->options.scroll_concurrency;
-		break;
+		case SQL_CONCURRENCY:	/* NOT REALLY SUPPORTED */
+			mylog("GetStmtOption(): SQL_CONCURRENCY\n");
+			*((SDWORD *) pvParam) = stmt->options.scroll_concurrency;
+			break;
 
-	case SQL_CURSOR_TYPE: /* PARTIAL SUPPORT */
-		mylog("GetStmtOption(): SQL_CURSOR_TYPE\n");
-		*((SDWORD *)pvParam) = stmt->options.cursor_type;
-		break;
+		case SQL_CURSOR_TYPE:	/* PARTIAL SUPPORT */
+			mylog("GetStmtOption(): SQL_CURSOR_TYPE\n");
+			*((SDWORD *) pvParam) = stmt->options.cursor_type;
+			break;
 
-	case SQL_KEYSET_SIZE: /* NOT SUPPORTED, but saved */
-		mylog("GetStmtOption(): SQL_KEYSET_SIZE\n");
-		*((SDWORD *)pvParam) = stmt->options.keyset_size;
-		break;
+		case SQL_KEYSET_SIZE:	/* NOT SUPPORTED, but saved */
+			mylog("GetStmtOption(): SQL_KEYSET_SIZE\n");
+			*((SDWORD *) pvParam) = stmt->options.keyset_size;
+			break;
 
-	case SQL_MAX_LENGTH: /* NOT SUPPORTED, but saved */
-		*((SDWORD *)pvParam) = stmt->options.maxLength;
-		break;
+		case SQL_MAX_LENGTH:	/* NOT SUPPORTED, but saved */
+			*((SDWORD *) pvParam) = stmt->options.maxLength;
+			break;
 
-	case SQL_MAX_ROWS: /* NOT SUPPORTED, but saved */
-		*((SDWORD *)pvParam) = stmt->options.maxRows;
-		mylog("GetSmtOption: MAX_ROWS, returning %d\n", stmt->options.maxRows);
-		break;
+		case SQL_MAX_ROWS:		/* NOT SUPPORTED, but saved */
+			*((SDWORD *) pvParam) = stmt->options.maxRows;
+			mylog("GetSmtOption: MAX_ROWS, returning %d\n", stmt->options.maxRows);
+			break;
 
-	case SQL_NOSCAN:/* NOT SUPPORTED */
-		*((SDWORD *) pvParam) = SQL_NOSCAN_ON;
-		break;
+		case SQL_NOSCAN:		/* NOT SUPPORTED */
+			*((SDWORD *) pvParam) = SQL_NOSCAN_ON;
+			break;
 
-	case SQL_QUERY_TIMEOUT: /* NOT SUPPORTED */
-		*((SDWORD *) pvParam) = 0;
-		break;
+		case SQL_QUERY_TIMEOUT:/* NOT SUPPORTED */
+			*((SDWORD *) pvParam) = 0;
+			break;
 
-	case SQL_RETRIEVE_DATA: /* NOT SUPPORTED, but saved */
-		*((SDWORD *) pvParam) = stmt->options.retrieve_data;
-		break;
+		case SQL_RETRIEVE_DATA:/* NOT SUPPORTED, but saved */
+			*((SDWORD *) pvParam) = stmt->options.retrieve_data;
+			break;
 
-	case SQL_ROWSET_SIZE:
-		*((SDWORD *) pvParam) = stmt->options.rowset_size;
-		break;
+		case SQL_ROWSET_SIZE:
+			*((SDWORD *) pvParam) = stmt->options.rowset_size;
+			break;
 
-	case SQL_SIMULATE_CURSOR:/* NOT SUPPORTED */
-		*((SDWORD *) pvParam) = SQL_SC_NON_UNIQUE;
-		break;
+		case SQL_SIMULATE_CURSOR:		/* NOT SUPPORTED */
+			*((SDWORD *) pvParam) = SQL_SC_NON_UNIQUE;
+			break;
 
-	case SQL_USE_BOOKMARKS:
-		*((SDWORD *) pvParam) = stmt->options.use_bookmarks;
-		break;
+		case SQL_USE_BOOKMARKS:
+			*((SDWORD *) pvParam) = stmt->options.use_bookmarks;
+			break;
 
-	default:
-		{
-		char option[64];
-		stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
-		stmt->errormsg = "Unknown statement option (Get)";
-		sprintf(option, "fOption=%d", fOption);
-		SC_log_error(func, option, stmt);
-		return SQL_ERROR;
-		}
+		default:
+			{
+				char		option[64];
+
+				stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
+				stmt->errormsg = "Unknown statement option (Get)";
+				sprintf(option, "fOption=%d", fOption);
+				SC_log_error(func, option, stmt);
+				return SQL_ERROR;
+			}
 	}
 
 	return SQL_SUCCESS;
 }
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
diff --git a/src/interfaces/odbc/parse.c b/src/interfaces/odbc/parse.c
index dd85e66dceb02a791a560509aa934a902a4421ac..20fedccccd7025e47a9d76351109a7e29c7edbe4 100644
--- a/src/interfaces/odbc/parse.c
+++ b/src/interfaces/odbc/parse.c
@@ -1,19 +1,19 @@
-/* Module:          parse.c
+/* Module:			parse.c
  *
- * Description:     This module contains routines related to parsing SQL statements.
- *                  This can be useful for two reasons:
+ * Description:		This module contains routines related to parsing SQL statements.
+ *					This can be useful for two reasons:
  *
- *                  1. So the query does not actually have to be executed to return data about it
+ *					1. So the query does not actually have to be executed to return data about it
  *
- *                  2. To be able to return information about precision, nullability, aliases, etc.
- *                     in the functions SQLDescribeCol and SQLColAttributes.  Currently, Postgres
- *                     doesn't return any information about these things in a query.
+ *					2. To be able to return information about precision, nullability, aliases, etc.
+ *					   in the functions SQLDescribeCol and SQLColAttributes.  Currently, Postgres
+ *					   doesn't return any information about these things in a query.
  *
- * Classes:         none
+ * Classes:			none
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -28,7 +28,7 @@
 
 #ifndef WIN32
 #ifndef HAVE_STRICMP
-#define stricmp(s1,s2) 		strcasecmp(s1,s2)
+#define stricmp(s1,s2)		strcasecmp(s1,s2)
 #define strnicmp(s1,s2,n)	strncasecmp(s1,s2,n)
 #endif
 #endif
@@ -37,16 +37,17 @@
 #define TAB_INCR	8
 #define COL_INCR	16
 
-char *getNextToken(char *s, char *token, int smax, char *delim, char *quote, char *dquote, char *numeric);
-void getColInfo(COL_INFO *col_info, FIELD_INFO *fi, int k);
-char searchColInfo(COL_INFO *col_info, FIELD_INFO *fi);
+char	   *getNextToken(char *s, char *token, int smax, char *delim, char *quote, char *dquote, char *numeric);
+void		getColInfo(COL_INFO * col_info, FIELD_INFO * fi, int k);
+char		searchColInfo(COL_INFO * col_info, FIELD_INFO * fi);
 
 char *
 getNextToken(char *s, char *token, int smax, char *delim, char *quote, char *dquote, char *numeric)
 {
-int i = 0;
-int out = 0;
-char qc, in_escape = FALSE;
+	int			i = 0;
+	int			out = 0;
+	char		qc,
+				in_escape = FALSE;
 
 	if (smax <= 1)
 		return NULL;
@@ -54,44 +55,55 @@ char qc, in_escape = FALSE;
 	smax--;
 
 	/* skip leading delimiters */
-	while (isspace((unsigned char) s[i]) || s[i] == ',') {
+	while (isspace((unsigned char) s[i]) || s[i] == ',')
+	{
 		/* mylog("skipping '%c'\n", s[i]); */
 		i++;
 	}
 
-	if (s[0] == '\0') {
+	if (s[0] == '\0')
+	{
 		token[0] = '\0';
 		return NULL;
 	}
 
-	if (quote) *quote = FALSE;
-	if (dquote) *dquote = FALSE;
-	if (numeric) *numeric = FALSE;
+	if (quote)
+		*quote = FALSE;
+	if (dquote)
+		*dquote = FALSE;
+	if (numeric)
+		*numeric = FALSE;
 
 	/* get the next token */
-	while ( ! isspace((unsigned char) s[i]) && s[i] != ',' &&
-			s[i] != '\0' && out != smax) {
+	while (!isspace((unsigned char) s[i]) && s[i] != ',' &&
+		   s[i] != '\0' && out != smax)
+	{
 
-		/*	Handle quoted stuff */
-		if ( out == 0 && (s[i] == '\"' || s[i] == '\'')) {
+		/* Handle quoted stuff */
+		if (out == 0 && (s[i] == '\"' || s[i] == '\''))
+		{
 			qc = s[i];
-			if (qc == '\"') {
-				if (dquote) *dquote = TRUE;
+			if (qc == '\"')
+			{
+				if (dquote)
+					*dquote = TRUE;
 			}
-			if (qc == '\'') {
-				if (quote) *quote = TRUE;
+			if (qc == '\'')
+			{
+				if (quote)
+					*quote = TRUE;
 			}
 
-			i++;		/* dont return the quote */
-			while (s[i] != '\0' && out != smax) {  
-				if (s[i] == qc && ! in_escape) {
+			i++;				/* dont return the quote */
+			while (s[i] != '\0' && out != smax)
+			{
+				if (s[i] == qc && !in_escape)
 					break;
-				}
-				if (s[i] == '\\' && ! in_escape) {
+				if (s[i] == '\\' && !in_escape)
 					in_escape = TRUE;
-				}
-				else {
-					in_escape = FALSE;	
+				else
+				{
+					in_escape = FALSE;
 					token[out++] = s[i];
 				}
 				i++;
@@ -101,20 +113,24 @@ char qc, in_escape = FALSE;
 			break;
 		}
 
-		/*	Check for numeric literals */
-		if ( out == 0 && isdigit((unsigned char) s[i])) {
-			if (numeric) *numeric = TRUE;
+		/* Check for numeric literals */
+		if (out == 0 && isdigit((unsigned char) s[i]))
+		{
+			if (numeric)
+				*numeric = TRUE;
 			token[out++] = s[i++];
-			while ( isalnum((unsigned char) s[i]) || s[i] == '.')
+			while (isalnum((unsigned char) s[i]) || s[i] == '.')
 				token[out++] = s[i++];
 
 			break;
 		}
 
-		if ( ispunct((unsigned char) s[i]) && s[i] != '_') {
+		if (ispunct((unsigned char) s[i]) && s[i] != '_')
+		{
 			mylog("got ispunct: s[%d] = '%c'\n", i, s[i]);
 
-			if (out == 0) {
+			if (out == 0)
+			{
 				token[out++] = s[i++];
 				break;
 			}
@@ -132,25 +148,30 @@ char qc, in_escape = FALSE;
 
 	token[out] = '\0';
 
-	/*	find the delimiter  */
-	while ( isspace((unsigned char) s[i]))
+	/* find the delimiter  */
+	while (isspace((unsigned char) s[i]))
 		i++;
 
-	/*	return the most priority delimiter */
-	if (s[i] == ',')  {
-		if (delim) *delim = s[i];
+	/* return the most priority delimiter */
+	if (s[i] == ',')
+	{
+		if (delim)
+			*delim = s[i];
 	}
-	else if (s[i] == '\0') {
-		if (delim) *delim = '\0';
+	else if (s[i] == '\0')
+	{
+		if (delim)
+			*delim = '\0';
 	}
-	else  {
-		if (delim) *delim = ' ';
+	else
+	{
+		if (delim)
+			*delim = ' ';
 	}
 
 	/* skip trailing blanks  */
-	while ( isspace((unsigned char) s[i])) {
+	while (isspace((unsigned char) s[i]))
 		i++;
-	}
 
 	return &s[i];
 }
@@ -176,28 +197,30 @@ QR_set_field_info(stmt->result, 13, "FIELD_TYPE", PG_TYPE_INT4, 4);
 #endif
 
 void
-getColInfo(COL_INFO *col_info, FIELD_INFO *fi, int k)
+getColInfo(COL_INFO * col_info, FIELD_INFO * fi, int k)
 {
 	if (fi->name[0] == '\0')
 		strcpy(fi->name, QR_get_value_manual(col_info->result, k, 3));
 
-	fi->type = atoi( QR_get_value_manual(col_info->result, k, 13));
-	fi->precision = atoi( QR_get_value_manual(col_info->result, k, 6));
-	fi->length = atoi( QR_get_value_manual(col_info->result, k, 7));
-	fi->nullable = atoi( QR_get_value_manual(col_info->result, k, 10));
-	fi->display_size = atoi( QR_get_value_manual(col_info->result, k, 12));
+	fi->type = atoi(QR_get_value_manual(col_info->result, k, 13));
+	fi->precision = atoi(QR_get_value_manual(col_info->result, k, 6));
+	fi->length = atoi(QR_get_value_manual(col_info->result, k, 7));
+	fi->nullable = atoi(QR_get_value_manual(col_info->result, k, 10));
+	fi->display_size = atoi(QR_get_value_manual(col_info->result, k, 12));
 }
 
 char
-searchColInfo(COL_INFO *col_info, FIELD_INFO *fi)
+searchColInfo(COL_INFO * col_info, FIELD_INFO * fi)
 {
-int k;
-char *col;
+	int			k;
+	char	   *col;
 
 
-	for (k = 0; k < QR_get_num_tuples(col_info->result); k++) {
+	for (k = 0; k < QR_get_num_tuples(col_info->result); k++)
+	{
 		col = QR_get_value_manual(col_info->result, k, 3);
-		if ( ! strcmp(col, fi->name)) {
+		if (!strcmp(col, fi->name))
+		{
 			getColInfo(col_info, fi, k);
 
 			mylog("PARSE: searchColInfo: \n");
@@ -210,22 +233,39 @@ char *col;
 
 
 char
-parse_statement(StatementClass *stmt)
+parse_statement(StatementClass * stmt)
 {
-static char *func="parse_statement";
-char token[256];
-char delim, quote, dquote, numeric, unquoted;
-char *ptr;
-char in_select = FALSE, in_distinct = FALSE, in_on = FALSE, in_from = FALSE, in_where = FALSE, in_table = FALSE;
-char in_field = FALSE, in_expr = FALSE, in_func = FALSE, in_dot = FALSE, in_as = FALSE;
-int j, i, k = 0, n, blevel = 0;
-FIELD_INFO **fi;
-TABLE_INFO **ti;
-char parse;
-ConnectionClass *conn = stmt->hdbc;
-HSTMT hcol_stmt;
-StatementClass *col_stmt;
-RETCODE result;
+	static char *func = "parse_statement";
+	char		token[256];
+	char		delim,
+				quote,
+				dquote,
+				numeric,
+				unquoted;
+	char	   *ptr;
+	char		in_select = FALSE,
+				in_distinct = FALSE,
+				in_on = FALSE,
+				in_from = FALSE,
+				in_where = FALSE,
+				in_table = FALSE;
+	char		in_field = FALSE,
+				in_expr = FALSE,
+				in_func = FALSE,
+				in_dot = FALSE,
+				in_as = FALSE;
+	int			j,
+				i,
+				k = 0,
+				n,
+				blevel = 0;
+	FIELD_INFO **fi;
+	TABLE_INFO **ti;
+	char		parse;
+	ConnectionClass *conn = stmt->hdbc;
+	HSTMT		hcol_stmt;
+	StatementClass *col_stmt;
+	RETCODE		result;
 
 
 	mylog("%s: entering...\n", func);
@@ -237,34 +277,39 @@ RETCODE result;
 	stmt->nfld = 0;
 	stmt->ntab = 0;
 
-	while ((ptr = getNextToken(ptr, token, sizeof(token), &delim, &quote, &dquote, &numeric)) != NULL) {
+	while ((ptr = getNextToken(ptr, token, sizeof(token), &delim, &quote, &dquote, &numeric)) != NULL)
+	{
 
-		unquoted = ! ( quote || dquote );
+		unquoted = !(quote || dquote);
 
 		mylog("unquoted=%d, quote=%d, dquote=%d, numeric=%d, delim='%c', token='%s', ptr='%s'\n", unquoted, quote, dquote, numeric, delim, token, ptr);
 
-		if ( unquoted && ! stricmp(token, "select")) {
+		if (unquoted && !stricmp(token, "select"))
+		{
 			in_select = TRUE;
 
 			mylog("SELECT\n");
 			continue;
 		}
 
-		if ( unquoted && in_select && ! stricmp(token, "distinct")) {
+		if (unquoted && in_select && !stricmp(token, "distinct"))
+		{
 			in_distinct = TRUE;
 
 			mylog("DISTINCT\n");
 			continue;
 		}
 
-		if ( unquoted && ! stricmp(token, "into")) {
+		if (unquoted && !stricmp(token, "into"))
+		{
 			in_select = FALSE;
 
 			mylog("INTO\n");
 			continue;
 		}
 
-		if ( unquoted && ! stricmp(token, "from")) {
+		if (unquoted && !stricmp(token, "from"))
+		{
 			in_select = FALSE;
 			in_from = TRUE;
 
@@ -272,11 +317,12 @@ RETCODE result;
 			continue;
 		}
 
-		if ( unquoted && (! stricmp(token, "where") ||
-			! stricmp(token, "union") || 
-			! stricmp(token, "order") || 
-			! stricmp(token, "group") || 
-			! stricmp(token, "having"))) {
+		if (unquoted && (!stricmp(token, "where") ||
+						 !stricmp(token, "union") ||
+						 !stricmp(token, "order") ||
+						 !stricmp(token, "group") ||
+						 !stricmp(token, "having")))
+		{
 
 			in_select = FALSE;
 			in_from = FALSE;
@@ -286,44 +332,53 @@ RETCODE result;
 			break;
 		}
 
-		if (in_select) {
+		if (in_select)
+		{
 
-			if ( in_distinct) {
+			if (in_distinct)
+			{
 				mylog("in distinct\n");
 
-				if (unquoted && ! stricmp(token, "on")) {
+				if (unquoted && !stricmp(token, "on"))
+				{
 					in_on = TRUE;
 					mylog("got on\n");
 					continue;
 				}
-				if (in_on) {
+				if (in_on)
+				{
 					in_distinct = FALSE;
 					in_on = FALSE;
-					continue;		/*	just skip the unique on field */
+					continue;	/* just skip the unique on field */
 				}
 				mylog("done distinct\n");
 				in_distinct = FALSE;
 			}
 
-			if ( in_expr || in_func) {		/* just eat the expression */
+			if (in_expr || in_func)
+			{					/* just eat the expression */
 				mylog("in_expr=%d or func=%d\n", in_expr, in_func);
 				if (quote || dquote)
 					continue;
 
-				if (in_expr && blevel == 0 && delim == ',') {
+				if (in_expr && blevel == 0 && delim == ',')
+				{
 					mylog("**** in_expr and Got comma\n");
 					in_expr = FALSE;
 					in_field = FALSE;
 				}
 
-				else if (token[0] == '(') {
+				else if (token[0] == '(')
+				{
 					blevel++;
 					mylog("blevel++ = %d\n", blevel);
 				}
-				else if (token[0] == ')') {
+				else if (token[0] == ')')
+				{
 					blevel--;
 					mylog("blevel-- = %d\n", blevel);
-					if (delim==',') {
+					if (delim == ',')
+					{
 						in_func = FALSE;
 						in_expr = FALSE;
 						in_field = FALSE;
@@ -332,43 +387,50 @@ RETCODE result;
 				continue;
 			}
 
-			if ( ! in_field) {
+			if (!in_field)
+			{
 
-				if ( ! token[0])
+				if (!token[0])
 					continue;
 
-				if ( ! (stmt->nfld % FLD_INCR)) {
+				if (!(stmt->nfld % FLD_INCR))
+				{
 					mylog("reallocing at nfld=%d\n", stmt->nfld);
 					fi = (FIELD_INFO **) realloc(fi, (stmt->nfld + FLD_INCR) * sizeof(FIELD_INFO *));
-					if ( ! fi) {
+					if (!fi)
+					{
 						stmt->parse_status = STMT_PARSE_FATAL;
 						return FALSE;
 					}
 					stmt->fi = fi;
 				}
 
-				fi[stmt->nfld] = (FIELD_INFO *) malloc( sizeof(FIELD_INFO));
-				if (fi[stmt->nfld] == NULL) {
+				fi[stmt->nfld] = (FIELD_INFO *) malloc(sizeof(FIELD_INFO));
+				if (fi[stmt->nfld] == NULL)
+				{
 					stmt->parse_status = STMT_PARSE_FATAL;
 					return FALSE;
 				}
 
-				/*	Initialize the field info */
+				/* Initialize the field info */
 				memset(fi[stmt->nfld], 0, sizeof(FIELD_INFO));
 
-				/*	double quotes are for qualifiers */
+				/* double quotes are for qualifiers */
 				if (dquote)
 					fi[stmt->nfld]->dquote = TRUE;
 
-				if (quote) {
+				if (quote)
+				{
 					fi[stmt->nfld++]->quote = TRUE;
 					continue;
 				}
-				else if (numeric) {
+				else if (numeric)
+				{
 					mylog("**** got numeric: nfld = %d\n", stmt->nfld);
 					fi[stmt->nfld]->numeric = TRUE;
 				}
-				else if (token[0] == '(') {		/* expression */
+				else if (token[0] == '(')
+				{				/* expression */
 					mylog("got EXPRESSION\n");
 					fi[stmt->nfld++]->expr = TRUE;
 					in_expr = TRUE;
@@ -376,33 +438,34 @@ RETCODE result;
 					continue;
 				}
 
-				else {
+				else
+				{
 					strcpy(fi[stmt->nfld]->name, token);
 					fi[stmt->nfld]->dot[0] = '\0';
 				}
 				mylog("got field='%s', dot='%s'\n", fi[stmt->nfld]->name, fi[stmt->nfld]->dot);
 
-				if (delim == ',') {
+				if (delim == ',')
 					mylog("comma (1)\n");
-				}
-				else {
+				else
 					in_field = TRUE;
-				}
 				stmt->nfld++;
 				continue;
 			}
 
 			/**************************/
-			/*	We are in a field now */
+			/* We are in a field now */
 			/**************************/
-			if (in_dot) {
+			if (in_dot)
+			{
 				stmt->nfld--;
 				strcpy(fi[stmt->nfld]->dot, fi[stmt->nfld]->name);
 				strcpy(fi[stmt->nfld]->name, token);
 				stmt->nfld++;
 				in_dot = FALSE;
 
-				if (delim == ',') {
+				if (delim == ',')
+				{
 					mylog("in_dot: got comma\n");
 					in_field = FALSE;
 				}
@@ -410,7 +473,8 @@ RETCODE result;
 				continue;
 			}
 
-			if (in_as) {
+			if (in_as)
+			{
 				stmt->nfld--;
 				strcpy(fi[stmt->nfld]->alias, token);
 				mylog("alias for field '%s' is '%s'\n", fi[stmt->nfld]->name, fi[stmt->nfld]->alias);
@@ -419,58 +483,69 @@ RETCODE result;
 
 				stmt->nfld++;
 
-				if (delim == ',') {
+				if (delim == ',')
 					mylog("comma(2)\n");
-				}
 				continue;
 			}
 
-			/*	Function */
-			if (token[0] == '(') {
+			/* Function */
+			if (token[0] == '(')
+			{
 				in_func = TRUE;
 				blevel = 1;
-				fi[stmt->nfld-1]->func = TRUE;
-				/*	name will have the function name -- maybe useful some day */
-				mylog("**** got function = '%s'\n", fi[stmt->nfld-1]->name);
+				fi[stmt->nfld - 1]->func = TRUE;
+
+				/*
+				 * name will have the function name -- maybe useful some
+				 * day
+				 */
+				mylog("**** got function = '%s'\n", fi[stmt->nfld - 1]->name);
 				continue;
 			}
 
-			if (token[0] == '.') {
-				in_dot = TRUE;	
+			if (token[0] == '.')
+			{
+				in_dot = TRUE;
 				mylog("got dot\n");
 				continue;
 			}
 
-			if ( ! stricmp(token, "as")) {
+			if (!stricmp(token, "as"))
+			{
 				in_as = TRUE;
 				mylog("got AS\n");
 				continue;
 			}
 
-			/*	otherwise, it's probably an expression */
+			/* otherwise, it's probably an expression */
 			in_expr = TRUE;
-			fi[stmt->nfld-1]->expr = TRUE;
-			fi[stmt->nfld-1]->name[0] = '\0';
+			fi[stmt->nfld - 1]->expr = TRUE;
+			fi[stmt->nfld - 1]->name[0] = '\0';
 			mylog("*** setting expression\n");
 
 		}
 
-		if (in_from) {
+		if (in_from)
+		{
 
-			if ( ! in_table) {
-				if ( ! token[0])
+			if (!in_table)
+			{
+				if (!token[0])
 					continue;
 
-				if ( ! (stmt->ntab % TAB_INCR)) {
+				if (!(stmt->ntab % TAB_INCR))
+				{
 					ti = (TABLE_INFO **) realloc(ti, (stmt->ntab + TAB_INCR) * sizeof(TABLE_INFO *));
-					if ( ! ti) {
+					if (!ti)
+					{
 						stmt->parse_status = STMT_PARSE_FATAL;
 						return FALSE;
 					}
 					stmt->ti = ti;
 				}
 				ti[stmt->ntab] = (TABLE_INFO *) malloc(sizeof(TABLE_INFO));
-				if (ti[stmt->ntab] == NULL) {
+				if (ti[stmt->ntab] == NULL)
+				{
 					stmt->parse_status = STMT_PARSE_FATAL;
 					return FALSE;
 				}
@@ -480,57 +555,61 @@ RETCODE result;
 				strcpy(ti[stmt->ntab]->name, token);
 				mylog("got table = '%s'\n", ti[stmt->ntab]->name);
 
-				if (delim == ',') {
+				if (delim == ',')
 					mylog("more than 1 tables\n");
-				}
-				else {
+				else
 					in_table = TRUE;
-				}
 				stmt->ntab++;
 				continue;
 			}
 
-			strcpy(ti[stmt->ntab-1]->alias, token);
-			mylog("alias for table '%s' is '%s'\n", ti[stmt->ntab-1]->name, ti[stmt->ntab-1]->alias);
+			strcpy(ti[stmt->ntab - 1]->alias, token);
+			mylog("alias for table '%s' is '%s'\n", ti[stmt->ntab - 1]->name, ti[stmt->ntab - 1]->alias);
 			in_table = FALSE;
-			if (delim == ',') {
+			if (delim == ',')
 				mylog("more than 1 tables\n");
-			}
 		}
 	}
 
 
 	/*************************************************/
-	/*	Resolve any possible field names with tables */
+	/* Resolve any possible field names with tables */
 	/*************************************************/
 
 	parse = TRUE;
 
-	/*	Resolve field names with tables */
-	for (i = 0; i < stmt->nfld; i++) {
+	/* Resolve field names with tables */
+	for (i = 0; i < stmt->nfld; i++)
+	{
 
-		if (fi[i]->func || fi[i]->expr || fi[i]->numeric) {
+		if (fi[i]->func || fi[i]->expr || fi[i]->numeric)
+		{
 			fi[i]->ti = NULL;
 			fi[i]->type = -1;
 			parse = FALSE;
 			continue;
 		}
 
-		else if (fi[i]->quote) {		/* handle as text */
+		else if (fi[i]->quote)
+		{						/* handle as text */
 			fi[i]->ti = NULL;
 			fi[i]->type = PG_TYPE_TEXT;
 			fi[i]->precision = 0;
 			continue;
-		} 
+		}
 
-		/*	it's a dot, resolve to table or alias */
-		else if (fi[i]->dot[0]) {
-			for (k = 0; k < stmt->ntab; k++) {
-				if ( ! stricmp(ti[k]->name, fi[i]->dot)) {
+		/* it's a dot, resolve to table or alias */
+		else if (fi[i]->dot[0])
+		{
+			for (k = 0; k < stmt->ntab; k++)
+			{
+				if (!stricmp(ti[k]->name, fi[i]->dot))
+				{
 					fi[i]->ti = ti[k];
 					break;
 				}
-				else if ( ! stricmp(ti[k]->alias, fi[i]->dot)) {
+				else if (!stricmp(ti[k]->alias, fi[i]->dot))
+				{
 					fi[i]->ti = ti[k];
 					break;
 				}
@@ -543,41 +622,47 @@ RETCODE result;
 	mylog("--------------------------------------------\n");
 	mylog("nfld=%d, ntab=%d\n", stmt->nfld, stmt->ntab);
 
-	for (i=0; i < stmt->nfld; i++) {
+	for (i = 0; i < stmt->nfld; i++)
+	{
 		mylog("Field %d:  expr=%d, func=%d, quote=%d, dquote=%d, numeric=%d, name='%s', alias='%s', dot='%s'\n", i, fi[i]->expr, fi[i]->func, fi[i]->quote, fi[i]->dquote, fi[i]->numeric, fi[i]->name, fi[i]->alias, fi[i]->dot);
 		if (fi[i]->ti)
-		mylog("     ----> table_name='%s', table_alias='%s'\n", fi[i]->ti->name, fi[i]->ti->alias);
+			mylog("     ----> table_name='%s', table_alias='%s'\n", fi[i]->ti->name, fi[i]->ti->alias);
 	}
 
-	for (i=0; i < stmt->ntab; i++) {
+	for (i = 0; i < stmt->ntab; i++)
 		mylog("Table %d: name='%s', alias='%s'\n", i, ti[i]->name, ti[i]->alias);
-	}
 
 
 	/******************************************************/
-	/*	Now save the SQLColumns Info for the parse tables */
+	/* Now save the SQLColumns Info for the parse tables */
 	/******************************************************/
 
 
-	/*	Call SQLColumns for each table and store the result */
-	for (i = 0; i < stmt->ntab; i++) {
+	/* Call SQLColumns for each table and store the result */
+	for (i = 0; i < stmt->ntab; i++)
+	{
 
-		/*	See if already got it */
-		char found = FALSE;
-		for (k = 0; k < conn->ntables; k++) {
-			if ( ! stricmp(conn->col_info[k]->name, ti[i]->name)) {
+		/* See if already got it */
+		char		found = FALSE;
+
+		for (k = 0; k < conn->ntables; k++)
+		{
+			if (!stricmp(conn->col_info[k]->name, ti[i]->name))
+			{
 				mylog("FOUND col_info table='%s'\n", ti[i]->name);
 				found = TRUE;
 				break;
 			}
 		}
-				
-		if ( ! found) {
+
+		if (!found)
+		{
 
 			mylog("PARSE: Getting SQLColumns for table[%d]='%s'\n", i, ti[i]->name);
 
-			result = SQLAllocStmt( stmt->hdbc, &hcol_stmt);
-			if((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) {
+			result = SQLAllocStmt(stmt->hdbc, &hcol_stmt);
+			if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
+			{
 				stmt->errormsg = "SQLAllocStmt failed in parse_statement for columns.";
 				stmt->errornumber = STMT_NO_MEMORY_ERROR;
 				stmt->parse_status = STMT_PARSE_FATAL;
@@ -587,18 +672,21 @@ RETCODE result;
 			col_stmt = (StatementClass *) hcol_stmt;
 			col_stmt->internal = TRUE;
 
-			result = SQLColumns(hcol_stmt, "", 0, "", 0, 
+			result = SQLColumns(hcol_stmt, "", 0, "", 0,
 						ti[i]->name, (SWORD) strlen(ti[i]->name), "", 0);
-		
+
 			mylog("        Past SQLColumns\n");
-			if (result == SQL_SUCCESS) {
+			if (result == SQL_SUCCESS)
+			{
 				mylog("      Success\n");
-				if ( ! (conn->ntables % COL_INCR)) {
+				if (!(conn->ntables % COL_INCR))
+				{
 
 					mylog("PARSE: Allocing col_info at ntables=%d\n", conn->ntables);
 
 					conn->col_info = (COL_INFO **) realloc(conn->col_info, (conn->ntables + COL_INCR) * sizeof(COL_INFO *));
-					if ( ! conn->col_info) {
+					if (!conn->col_info)
+					{
 						stmt->parse_status = STMT_PARSE_FATAL;
 						return FALSE;
 					}
@@ -606,18 +694,23 @@ RETCODE result;
 
 				mylog("PARSE: malloc at conn->col_info[%d]\n", conn->ntables);
 				conn->col_info[conn->ntables] = (COL_INFO *) malloc(sizeof(COL_INFO));
-				if ( ! conn->col_info[conn->ntables]) {
+				if (!conn->col_info[conn->ntables])
+				{
 					stmt->parse_status = STMT_PARSE_FATAL;
 					return FALSE;
 				}
 
-				/*	Store the table name and the SQLColumns result structure */
+				/*
+				 * Store the table name and the SQLColumns result
+				 * structure
+				 */
 				strcpy(conn->col_info[conn->ntables]->name, ti[i]->name);
 				conn->col_info[conn->ntables]->result = col_stmt->result;
 
-				/*	The connection will now free the result structures, so make
-					sure that the statement doesn't free it 
-				*/
+				/*
+				 * The connection will now free the result structures, so
+				 * make sure that the statement doesn't free it
+				 */
 				col_stmt->result = NULL;
 
 				conn->ntables++;
@@ -625,13 +718,14 @@ RETCODE result;
 				SQLFreeStmt(hcol_stmt, SQL_DROP);
 				mylog("Created col_info table='%s', ntables=%d\n", ti[i]->name, conn->ntables);
 			}
-			else {
+			else
+			{
 				SQLFreeStmt(hcol_stmt, SQL_DROP);
 				break;
 			}
 		}
 
-		/*	Associate a table from the statement with a SQLColumn info */
+		/* Associate a table from the statement with a SQLColumn info */
 		ti[i]->col_info = conn->col_info[k];
 		mylog("associate col_info: i=%d, k=%d\n", i, k);
 	}
@@ -640,96 +734,115 @@ RETCODE result;
 	mylog("Done SQLColumns\n");
 
 	/******************************************************/
-	/*	Now resolve the fields to point to column info    */
+	/* Now resolve the fields to point to column info	 */
 	/******************************************************/
 
 
 
-	for (i = 0; i < stmt->nfld;) {
+	for (i = 0; i < stmt->nfld;)
+	{
 
-		/*	Dont worry about functions or quotes */
-		if (fi[i]->func || fi[i]->quote || fi[i]->numeric) {
+		/* Dont worry about functions or quotes */
+		if (fi[i]->func || fi[i]->quote || fi[i]->numeric)
+		{
 			i++;
 			continue;
 		}
 
-		/*	Stars get expanded to all fields in the table */
-		else if (fi[i]->name[0] == '*') {
+		/* Stars get expanded to all fields in the table */
+		else if (fi[i]->name[0] == '*')
+		{
 
-			char do_all_tables;
-			int total_cols, old_size, need, cols;
+			char		do_all_tables;
+			int			total_cols,
+						old_size,
+						need,
+						cols;
 
 			mylog("expanding field %d\n", i);
 
-			total_cols = 0;	
+			total_cols = 0;
 
-			if (fi[i]->ti)	/*	The star represents only the qualified table */
+			if (fi[i]->ti)		/* The star represents only the qualified
+								 * table */
 				total_cols = QR_get_num_tuples(fi[i]->ti->col_info->result);
 
-			else {	/*	The star represents all tables */
+			else
+			{					/* The star represents all tables */
 
-				/*	Calculate the total number of columns after expansion */
-				for (k = 0; k < stmt->ntab; k++) {
+				/* Calculate the total number of columns after expansion */
+				for (k = 0; k < stmt->ntab; k++)
 					total_cols += QR_get_num_tuples(ti[k]->col_info->result);
-				}
 			}
 			total_cols--;		/* makes up for the star  */
 
-			/*	Allocate some more field pointers if necessary */
+			/* Allocate some more field pointers if necessary */
 			/*------------------------------------------------------------- */
 			old_size = (stmt->nfld / FLD_INCR * FLD_INCR + FLD_INCR);
 			need = total_cols - (old_size - stmt->nfld);
 
-			mylog("k=%d, total_cols=%d, old_size=%d, need=%d\n", k,total_cols,old_size,need);
+			mylog("k=%d, total_cols=%d, old_size=%d, need=%d\n", k, total_cols, old_size, need);
+
+			if (need > 0)
+			{
+				int			new_size = need / FLD_INCR * FLD_INCR + FLD_INCR;
 
-			if (need > 0) {
-				int new_size = need / FLD_INCR * FLD_INCR + FLD_INCR;
 				mylog("need more cols: new_size = %d\n", new_size);
 				fi = (FIELD_INFO **) realloc(fi, (old_size + new_size) * sizeof(FIELD_INFO *));
-				if ( ! fi) {
+				if (!fi)
+				{
 					stmt->parse_status = STMT_PARSE_FATAL;
 					return FALSE;
 				}
 			}
 
 			/*------------------------------------------------------------- */
-			/*	copy any other fields (if there are any) up past the expansion */
-			for (j = stmt->nfld - 1; j > i; j--) {
+
+			/*
+			 * copy any other fields (if there are any) up past the
+			 * expansion
+			 */
+			for (j = stmt->nfld - 1; j > i; j--)
+			{
 				mylog("copying field %d to %d\n", j, total_cols + j);
 				fi[total_cols + j] = fi[j];
 			}
 			mylog("done copying fields\n");
 
 			/*------------------------------------------------------------- */
-			/*	Set the new number of fields */
+			/* Set the new number of fields */
 			stmt->nfld += total_cols;
 			mylog("stmt->nfld now at %d\n", stmt->nfld);
 
 
 			/*------------------------------------------------------------- */
-			/*	copy the new field info */
+			/* copy the new field info */
 
 
 			do_all_tables = (fi[i]->ti ? FALSE : TRUE);
 
-			for (k = 0; k < (do_all_tables ? stmt->ntab : 1); k++) {
+			for (k = 0; k < (do_all_tables ? stmt->ntab : 1); k++)
+			{
 
 				TABLE_INFO *the_ti = do_all_tables ? ti[k] : fi[i]->ti;
 
 				cols = QR_get_num_tuples(the_ti->col_info->result);
 
-				for (n = 0; n < cols; n++) {
+				for (n = 0; n < cols; n++)
+				{
 					mylog("creating field info: n=%d\n", n);
 					/* skip malloc (already did it for the Star) */
-					if (k > 0 || n > 0) {
+					if (k > 0 || n > 0)
+					{
 						mylog("allocating field info at %d\n", n + i);
-						fi[n + i] = (FIELD_INFO *) malloc( sizeof(FIELD_INFO));
-						if (fi[n + i] == NULL) {
+						fi[n + i] = (FIELD_INFO *) malloc(sizeof(FIELD_INFO));
+						if (fi[n + i] == NULL)
+						{
 							stmt->parse_status = STMT_PARSE_FATAL;
 							return FALSE;
 						}
 					}
-					/*	Initialize the new space (or the * field) */
+					/* Initialize the new space (or the * field) */
 					memset(fi[n + i], 0, sizeof(FIELD_INFO));
 					fi[n + i]->ti = the_ti;
 
@@ -747,22 +860,28 @@ RETCODE result;
 			/*------------------------------------------------------------- */
 		}
 
-		/*	We either know which table the field was in because it was qualified 
-			with a table name or alias -OR- there was only 1 table.
-		*/
-		else if (fi[i]->ti) {
+		/*
+		 * We either know which table the field was in because it was
+		 * qualified with a table name or alias -OR- there was only 1
+		 * table.
+		 */
+		else if (fi[i]->ti)
+		{
 
-			if ( ! searchColInfo(fi[i]->ti->col_info, fi[i]))
+			if (!searchColInfo(fi[i]->ti->col_info, fi[i]))
 				parse = FALSE;
 
 			i++;
 		}
 
-		/*	Don't know the table -- search all tables in "from" list */
-		else {
+		/* Don't know the table -- search all tables in "from" list */
+		else
+		{
 			parse = FALSE;
-			for (k = 0; k < stmt->ntab; k++) {
-				if ( searchColInfo(ti[k]->col_info, fi[i])) {
+			for (k = 0; k < stmt->ntab; k++)
+			{
+				if (searchColInfo(ti[k]->col_info, fi[i]))
+				{
 					fi[i]->ti = ti[k];	/* now know the table */
 					parse = TRUE;
 					break;
@@ -773,7 +892,7 @@ RETCODE result;
 	}
 
 
-	if ( ! parse)
+	if (!parse)
 		stmt->parse_status = STMT_PARSE_INCOMPLETE;
 	else
 		stmt->parse_status = STMT_PARSE_COMPLETE;
@@ -782,4 +901,3 @@ RETCODE result;
 	mylog("done parse_statement: parse=%d, parse_status=%d\n", parse, stmt->parse_status);
 	return parse;
 }
-
diff --git a/src/interfaces/odbc/pgtypes.c b/src/interfaces/odbc/pgtypes.c
index 91a1b3d37ff5077f43454f8be7e8ec3f88e54cf7..7139f57a19e20027cf747ff63e4870ba2f9c785e 100644
--- a/src/interfaces/odbc/pgtypes.c
+++ b/src/interfaces/odbc/pgtypes.c
@@ -1,16 +1,16 @@
-/* Module:          pgtypes.c
+/* Module:			pgtypes.c
  *
- * Description:     This module contains routines for getting information
- *                  about the supported Postgres data types.  Only the function
- *                  pgtype_to_sqltype() returns an unknown condition.  All other
- *                  functions return a suitable default so that even data types that
- *                  are not directly supported can be used (it is handled as char data).
+ * Description:		This module contains routines for getting information
+ *					about the supported Postgres data types.  Only the function
+ *					pgtype_to_sqltype() returns an unknown condition.  All other
+ *					functions return a suitable default so that even data types that
+ *					are not directly supported can be used (it is handled as char data).
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -38,48 +38,48 @@
 
 extern GLOBAL_VALUES globals;
 
-Int4 getCharPrecision(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as);
+Int4		getCharPrecision(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as);
 
 
-/* these are the types we support.  all of the pgtype_ functions should */
-/* return values for each one of these.                                 */
-/* Even types not directly supported are handled as character types	
+/* these are the types we support.	all of the pgtype_ functions should */
+/* return values for each one of these.									*/
+/* Even types not directly supported are handled as character types
    so all types should work (points, etc.) */
 
 /* ALL THESE TYPES ARE NO LONGER REPORTED in SQLGetTypeInfo.  Instead, all
-   the SQL TYPES are reported and mapped to a corresponding Postgres Type 
+   the SQL TYPES are reported and mapped to a corresponding Postgres Type
 */
 /*
-Int4 pgtypes_defined[]  = { 
+Int4 pgtypes_defined[]	= {
 				PG_TYPE_CHAR,
 				PG_TYPE_CHAR2,
 				PG_TYPE_CHAR4,
-			    PG_TYPE_CHAR8,
+				PG_TYPE_CHAR8,
 				PG_TYPE_CHAR16,
-			    PG_TYPE_NAME,
-			    PG_TYPE_VARCHAR,
-			    PG_TYPE_BPCHAR,
+				PG_TYPE_NAME,
+				PG_TYPE_VARCHAR,
+				PG_TYPE_BPCHAR,
 				PG_TYPE_DATE,
 				PG_TYPE_TIME,
 				PG_TYPE_DATETIME,
 				PG_TYPE_ABSTIME,
 				PG_TYPE_TIMESTAMP,
-			    PG_TYPE_TEXT,
-			    PG_TYPE_INT2,
-			    PG_TYPE_INT4,
-			    PG_TYPE_FLOAT4,
-			    PG_TYPE_FLOAT8,
-			    PG_TYPE_OID,
+				PG_TYPE_TEXT,
+				PG_TYPE_INT2,
+				PG_TYPE_INT4,
+				PG_TYPE_FLOAT4,
+				PG_TYPE_FLOAT8,
+				PG_TYPE_OID,
 				PG_TYPE_MONEY,
 				PG_TYPE_BOOL,
 				PG_TYPE_BYTEA,
 				PG_TYPE_LO,
-			    0 };
+				0 };
 */
 
 
 /*	These are NOW the SQL Types reported in SQLGetTypeInfo.  */
-Int2 sqlTypes [] = {
+Int2		sqlTypes[] = {
 	SQL_BIGINT,
 	/* SQL_BINARY, -- Commented out because VarBinary is more correct. */
 	SQL_BIT,
@@ -102,232 +102,303 @@ Int2 sqlTypes [] = {
 	0
 };
 
-Int4 sqltype_to_pgtype(SWORD fSqlType)
+Int4
+sqltype_to_pgtype(SWORD fSqlType)
 {
-Int4 pgType;
+	Int4		pgType;
 
-	switch(fSqlType) {
+	switch (fSqlType)
+	{
 
-	case SQL_BINARY:
-		pgType = PG_TYPE_BYTEA;
-		break;
+		case SQL_BINARY:
+			pgType = PG_TYPE_BYTEA;
+			break;
 
-	case SQL_CHAR:
-		pgType = PG_TYPE_BPCHAR;
-		break;
+		case SQL_CHAR:
+			pgType = PG_TYPE_BPCHAR;
+			break;
 
-	case SQL_BIT:
-		pgType = globals.bools_as_char ? PG_TYPE_CHAR : PG_TYPE_BOOL;
-		break;
+		case SQL_BIT:
+			pgType = globals.bools_as_char ? PG_TYPE_CHAR : PG_TYPE_BOOL;
+			break;
 
-	case SQL_DATE:
-		pgType = PG_TYPE_DATE;
-		break;
+		case SQL_DATE:
+			pgType = PG_TYPE_DATE;
+			break;
 
-	case SQL_DOUBLE:
-	case SQL_FLOAT:
-		pgType = PG_TYPE_FLOAT8;
-		break;
+		case SQL_DOUBLE:
+		case SQL_FLOAT:
+			pgType = PG_TYPE_FLOAT8;
+			break;
 
-	case SQL_DECIMAL:
-	case SQL_NUMERIC:
-		pgType = PG_TYPE_NUMERIC;
-		break;
+		case SQL_DECIMAL:
+		case SQL_NUMERIC:
+			pgType = PG_TYPE_NUMERIC;
+			break;
 
-	case SQL_BIGINT:
-		pgType = PG_TYPE_INT8;
-		break;
+		case SQL_BIGINT:
+			pgType = PG_TYPE_INT8;
+			break;
 
-	case SQL_INTEGER:
-		pgType = PG_TYPE_INT4;
-		break;
+		case SQL_INTEGER:
+			pgType = PG_TYPE_INT4;
+			break;
 
-	case SQL_LONGVARBINARY:
-		pgType = PG_TYPE_LO;
-		break;
+		case SQL_LONGVARBINARY:
+			pgType = PG_TYPE_LO;
+			break;
 
-	case SQL_LONGVARCHAR:
-		pgType = globals.text_as_longvarchar ? PG_TYPE_TEXT : PG_TYPE_VARCHAR;
-		break;
+		case SQL_LONGVARCHAR:
+			pgType = globals.text_as_longvarchar ? PG_TYPE_TEXT : PG_TYPE_VARCHAR;
+			break;
 
-	case SQL_REAL:
-		pgType = PG_TYPE_FLOAT4;
-		break;
+		case SQL_REAL:
+			pgType = PG_TYPE_FLOAT4;
+			break;
 
-	case SQL_SMALLINT:
-	case SQL_TINYINT:
-		pgType = PG_TYPE_INT2;
-		break;
+		case SQL_SMALLINT:
+		case SQL_TINYINT:
+			pgType = PG_TYPE_INT2;
+			break;
 
-	case SQL_TIME:
-		pgType = PG_TYPE_TIME;
-		break;
+		case SQL_TIME:
+			pgType = PG_TYPE_TIME;
+			break;
 
-	case SQL_TIMESTAMP:
-		pgType = PG_TYPE_DATETIME;
-		break;
+		case SQL_TIMESTAMP:
+			pgType = PG_TYPE_DATETIME;
+			break;
 
-	case SQL_VARBINARY:
-		pgType = PG_TYPE_BYTEA;
-		break;
+		case SQL_VARBINARY:
+			pgType = PG_TYPE_BYTEA;
+			break;
 
-	case SQL_VARCHAR:
-		pgType = PG_TYPE_VARCHAR;
-		break;
+		case SQL_VARCHAR:
+			pgType = PG_TYPE_VARCHAR;
+			break;
 
-	default:
-	  	pgType = 0;	/* ??? */
-		break;
+		default:
+			pgType = 0;			/* ??? */
+			break;
 	}
 
 	return pgType;
 }
 
-/*	There are two ways of calling this function:  
+/*	There are two ways of calling this function:
 	1.	When going through the supported PG types (SQLGetTypeInfo)
 	2.	When taking any type id (SQLColumns, SQLGetData)
 
 	The first type will always work because all the types defined are returned here.
-	The second type will return a default based on global parameter when it does not 
-	know.  	This allows for supporting
+	The second type will return a default based on global parameter when it does not
+	know.	This allows for supporting
 	types that are unknown.  All other pg routines in here return a suitable default.
 */
-Int2 pgtype_to_sqltype(StatementClass *stmt, Int4 type)
+Int2
+pgtype_to_sqltype(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-	case PG_TYPE_CHAR:
-	case PG_TYPE_CHAR2:
-	case PG_TYPE_CHAR4:
-	case PG_TYPE_CHAR8:
-	case PG_TYPE_NAME:  		return SQL_CHAR;        
-
-	case PG_TYPE_BPCHAR:		return SQL_CHAR;
-
-	case PG_TYPE_VARCHAR:		return SQL_VARCHAR;
-
-	case PG_TYPE_TEXT:			return globals.text_as_longvarchar ? SQL_LONGVARCHAR : SQL_VARCHAR;
-
-	case PG_TYPE_BYTEA:			return SQL_VARBINARY;
-	case PG_TYPE_LO:			return SQL_LONGVARBINARY;
-
-	case PG_TYPE_INT2:          return SQL_SMALLINT;
-
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:          return SQL_INTEGER;
-
-	/* Change this to SQL_BIGINT for ODBC v3 bjm 2001-01-23 */
-	case PG_TYPE_INT8:			return SQL_CHAR;
-
-	case PG_TYPE_NUMERIC:		return SQL_NUMERIC;
-
-	case PG_TYPE_FLOAT4:        return SQL_REAL;
-	case PG_TYPE_FLOAT8:        return SQL_FLOAT;
-	case PG_TYPE_DATE:			return SQL_DATE;
-	case PG_TYPE_TIME:			return SQL_TIME;
-	case PG_TYPE_ABSTIME:		
-	case PG_TYPE_DATETIME:		
-	case PG_TYPE_TIMESTAMP:		return SQL_TIMESTAMP;
-	case PG_TYPE_MONEY:			return SQL_FLOAT;
-	case PG_TYPE_BOOL:			return globals.bools_as_char ? SQL_CHAR : SQL_BIT;
-
-	default:                
-
-		/*	first, check to see if 'type' is in list.  If not, look up with query.
-			Add oid, name to list.  If it's already in list, just return.
-		*/
-		if (type == stmt->hdbc->lobj_type)	/* hack until permanent type is available */
+	switch (type)
+	{
+			case PG_TYPE_CHAR:
+			case PG_TYPE_CHAR2:
+			case PG_TYPE_CHAR4:
+			case PG_TYPE_CHAR8:
+			case PG_TYPE_NAME:return SQL_CHAR;
+
+		case PG_TYPE_BPCHAR:
+			return SQL_CHAR;
+
+		case PG_TYPE_VARCHAR:
+			return SQL_VARCHAR;
+
+		case PG_TYPE_TEXT:
+			return globals.text_as_longvarchar ? SQL_LONGVARCHAR : SQL_VARCHAR;
+
+		case PG_TYPE_BYTEA:
+			return SQL_VARBINARY;
+		case PG_TYPE_LO:
 			return SQL_LONGVARBINARY;
 
-		return globals.unknowns_as_longvarchar ? SQL_LONGVARCHAR : SQL_VARCHAR;
+		case PG_TYPE_INT2:
+			return SQL_SMALLINT;
+
+		case PG_TYPE_OID:
+		case PG_TYPE_XID:
+		case PG_TYPE_INT4:
+			return SQL_INTEGER;
+
+			/* Change this to SQL_BIGINT for ODBC v3 bjm 2001-01-23 */
+		case PG_TYPE_INT8:
+			return SQL_CHAR;
+
+		case PG_TYPE_NUMERIC:
+			return SQL_NUMERIC;
+
+		case PG_TYPE_FLOAT4:
+			return SQL_REAL;
+		case PG_TYPE_FLOAT8:
+			return SQL_FLOAT;
+		case PG_TYPE_DATE:
+			return SQL_DATE;
+		case PG_TYPE_TIME:
+			return SQL_TIME;
+		case PG_TYPE_ABSTIME:
+		case PG_TYPE_DATETIME:
+		case PG_TYPE_TIMESTAMP:
+			return SQL_TIMESTAMP;
+		case PG_TYPE_MONEY:
+			return SQL_FLOAT;
+		case PG_TYPE_BOOL:
+			return globals.bools_as_char ? SQL_CHAR : SQL_BIT;
+
+		default:
+
+			/*
+			 * first, check to see if 'type' is in list.  If not, look up
+			 * with query. Add oid, name to list.  If it's already in
+			 * list, just return.
+			 */
+			if (type == stmt->hdbc->lobj_type)	/* hack until permanent
+												 * type is available */
+				return SQL_LONGVARBINARY;
+
+			return globals.unknowns_as_longvarchar ? SQL_LONGVARCHAR : SQL_VARCHAR;
 	}
 }
 
-Int2 pgtype_to_ctype(StatementClass *stmt, Int4 type)
+Int2
+pgtype_to_ctype(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-	case PG_TYPE_INT8:			return SQL_C_CHAR;
-	case PG_TYPE_NUMERIC:		return SQL_C_CHAR;
-	case PG_TYPE_INT2:          return SQL_C_SSHORT;
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:          return SQL_C_SLONG;
-	case PG_TYPE_FLOAT4:        return SQL_C_FLOAT;
-	case PG_TYPE_FLOAT8:        return SQL_C_DOUBLE;
-	case PG_TYPE_DATE:			return SQL_C_DATE;
-	case PG_TYPE_TIME:			return SQL_C_TIME;
-	case PG_TYPE_ABSTIME:		
-	case PG_TYPE_DATETIME:
-	case PG_TYPE_TIMESTAMP:		return SQL_C_TIMESTAMP;
-	case PG_TYPE_MONEY:			return SQL_C_FLOAT;
-	case PG_TYPE_BOOL:			return globals.bools_as_char ? SQL_C_CHAR : SQL_C_BIT;
-
-	case PG_TYPE_BYTEA:			return SQL_C_BINARY;
-	case PG_TYPE_LO:			return SQL_C_BINARY;
-
-	default:                    
-
-		if (type == stmt->hdbc->lobj_type)	/* hack until permanent type is available */
+	switch (type)
+	{
+			case PG_TYPE_INT8:return SQL_C_CHAR;
+		case PG_TYPE_NUMERIC:
+			return SQL_C_CHAR;
+		case PG_TYPE_INT2:
+			return SQL_C_SSHORT;
+		case PG_TYPE_OID:
+		case PG_TYPE_XID:
+		case PG_TYPE_INT4:
+			return SQL_C_SLONG;
+		case PG_TYPE_FLOAT4:
+			return SQL_C_FLOAT;
+		case PG_TYPE_FLOAT8:
+			return SQL_C_DOUBLE;
+		case PG_TYPE_DATE:
+			return SQL_C_DATE;
+		case PG_TYPE_TIME:
+			return SQL_C_TIME;
+		case PG_TYPE_ABSTIME:
+		case PG_TYPE_DATETIME:
+		case PG_TYPE_TIMESTAMP:
+			return SQL_C_TIMESTAMP;
+		case PG_TYPE_MONEY:
+			return SQL_C_FLOAT;
+		case PG_TYPE_BOOL:
+			return globals.bools_as_char ? SQL_C_CHAR : SQL_C_BIT;
+
+		case PG_TYPE_BYTEA:
 			return SQL_C_BINARY;
+		case PG_TYPE_LO:
+			return SQL_C_BINARY;
+
+		default:
+
+			if (type == stmt->hdbc->lobj_type)	/* hack until permanent
+												 * type is available */
+				return SQL_C_BINARY;
 
-		return SQL_C_CHAR;
+			return SQL_C_CHAR;
 	}
 }
 
-char *pgtype_to_name(StatementClass *stmt, Int4 type)
+char *
+pgtype_to_name(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-	case PG_TYPE_CHAR:          return "char";
-	case PG_TYPE_CHAR2:			return "char2";
-	case PG_TYPE_CHAR4:			return "char4";
-	case PG_TYPE_CHAR8:         return "char8";
-	case PG_TYPE_INT8:			return "int8";
-	case PG_TYPE_NUMERIC:		return "numeric";
-	case PG_TYPE_VARCHAR:       return "varchar";
-	case PG_TYPE_BPCHAR:        return "char";
-	case PG_TYPE_TEXT:          return "text";
-	case PG_TYPE_NAME:          return "name";
-	case PG_TYPE_INT2:          return "int2";
-	case PG_TYPE_OID:           return "oid";
-	case PG_TYPE_INT4:          return "int4";
-	case PG_TYPE_FLOAT4:        return "float4";
-	case PG_TYPE_FLOAT8:        return "float8";
-	case PG_TYPE_DATE:			return "date";
-	case PG_TYPE_TIME:			return "time";
-	case PG_TYPE_ABSTIME:		return "abstime";
-	case PG_TYPE_DATETIME:		return "datetime";
-	case PG_TYPE_TIMESTAMP:		return "timestamp";
-	case PG_TYPE_MONEY:			return "money";
-	case PG_TYPE_BOOL:			return "bool";
-	case PG_TYPE_BYTEA:			return "bytea";
-
-	case PG_TYPE_LO:			return PG_TYPE_LO_NAME;
-
-	default:                    
-		if (type == stmt->hdbc->lobj_type)	/* hack until permanent type is available */
+	switch (type)
+	{
+			case PG_TYPE_CHAR:return "char";
+		case PG_TYPE_CHAR2:
+			return "char2";
+		case PG_TYPE_CHAR4:
+			return "char4";
+		case PG_TYPE_CHAR8:
+			return "char8";
+		case PG_TYPE_INT8:
+			return "int8";
+		case PG_TYPE_NUMERIC:
+			return "numeric";
+		case PG_TYPE_VARCHAR:
+			return "varchar";
+		case PG_TYPE_BPCHAR:
+			return "char";
+		case PG_TYPE_TEXT:
+			return "text";
+		case PG_TYPE_NAME:
+			return "name";
+		case PG_TYPE_INT2:
+			return "int2";
+		case PG_TYPE_OID:
+			return "oid";
+		case PG_TYPE_INT4:
+			return "int4";
+		case PG_TYPE_FLOAT4:
+			return "float4";
+		case PG_TYPE_FLOAT8:
+			return "float8";
+		case PG_TYPE_DATE:
+			return "date";
+		case PG_TYPE_TIME:
+			return "time";
+		case PG_TYPE_ABSTIME:
+			return "abstime";
+		case PG_TYPE_DATETIME:
+			return "datetime";
+		case PG_TYPE_TIMESTAMP:
+			return "timestamp";
+		case PG_TYPE_MONEY:
+			return "money";
+		case PG_TYPE_BOOL:
+			return "bool";
+		case PG_TYPE_BYTEA:
+			return "bytea";
+
+		case PG_TYPE_LO:
 			return PG_TYPE_LO_NAME;
 
-		/* "unknown" can actually be used in alter table because it is a real PG type! */
-		return "unknown";	
-	}    
+		default:
+			if (type == stmt->hdbc->lobj_type)	/* hack until permanent
+												 * type is available */
+				return PG_TYPE_LO_NAME;
+
+			/*
+			 * "unknown" can actually be used in alter table because it is
+			 * a real PG type!
+			 */
+			return "unknown";
+	}
 }
 
 static Int2
-getNumericScale(StatementClass *stmt, Int4 type, int col)
+getNumericScale(StatementClass * stmt, Int4 type, int col)
 {
-Int4 atttypmod;
-QResultClass *result;
-ColumnInfoClass *flds;
+	Int4		atttypmod;
+	QResultClass *result;
+	ColumnInfoClass *flds;
 
-mylog("getNumericScale: type=%d, col=%d, unknown = %d\n", type,col);
+	mylog("getNumericScale: type=%d, col=%d, unknown = %d\n", type, col);
 
 	if (col < 0)
 		return PG_NUMERIC_MAX_SCALE;
 
 	result = SC_get_Result(stmt);
 
-	/*	Manual Result Sets -- use assigned column width (i.e., from set_tuplefield_string) */
-	if (stmt->manual_result) {
+	/*
+	 * Manual Result Sets -- use assigned column width (i.e., from
+	 * set_tuplefield_string)
+	 */
+	if (stmt->manual_result)
+	{
 		flds = result->fields;
 		if (flds)
 			return flds->adtsize[col];
@@ -336,30 +407,34 @@ mylog("getNumericScale: type=%d, col=%d, unknown = %d\n", type,col);
 	}
 
 	atttypmod = QR_get_atttypmod(result, col);
-	if ( atttypmod > -1 )
+	if (atttypmod > -1)
 		return (atttypmod & 0xffff);
 	else
-		return ( QR_get_display_size(result, col) ? 
-			QR_get_display_size(result, col) : 
-			PG_NUMERIC_MAX_SCALE);
+		return (QR_get_display_size(result, col) ?
+				QR_get_display_size(result, col) :
+				PG_NUMERIC_MAX_SCALE);
 }
 
 static Int4
-getNumericPrecision(StatementClass *stmt, Int4 type, int col)
+getNumericPrecision(StatementClass * stmt, Int4 type, int col)
 {
-Int4 atttypmod;
-QResultClass *result;
-ColumnInfoClass *flds;
+	Int4		atttypmod;
+	QResultClass *result;
+	ColumnInfoClass *flds;
 
-mylog("getNumericPrecision: type=%d, col=%d, unknown = %d\n", type,col);
+	mylog("getNumericPrecision: type=%d, col=%d, unknown = %d\n", type, col);
 
 	if (col < 0)
 		return PG_NUMERIC_MAX_PRECISION;
 
 	result = SC_get_Result(stmt);
 
-	/*	Manual Result Sets -- use assigned column width (i.e., from set_tuplefield_string) */
-	if (stmt->manual_result) {
+	/*
+	 * Manual Result Sets -- use assigned column width (i.e., from
+	 * set_tuplefield_string)
+	 */
+	if (stmt->manual_result)
+	{
 		flds = result->fields;
 		if (flds)
 			return flds->adtsize[col];
@@ -368,55 +443,62 @@ mylog("getNumericPrecision: type=%d, col=%d, unknown = %d\n", type,col);
 	}
 
 	atttypmod = QR_get_atttypmod(result, col);
-	if ( atttypmod > -1 )
+	if (atttypmod > -1)
 		return (atttypmod >> 16) & 0xffff;
 	else
-		return ( QR_get_display_size(result, col) >= 0 ? 
-			QR_get_display_size(result, col) : 
-			PG_NUMERIC_MAX_PRECISION );
+		return (QR_get_display_size(result, col) >= 0 ?
+				QR_get_display_size(result, col) :
+				PG_NUMERIC_MAX_PRECISION);
 }
 
 Int4
-getCharPrecision(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as)
+getCharPrecision(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as)
 {
-int p = -1, maxsize;
-QResultClass *result;
-ColumnInfoClass *flds;
-
-mylog("getCharPrecision: type=%d, col=%d, unknown = %d\n", type,col,handle_unknown_size_as);
-
-	/*	Assign Maximum size based on parameters */
-	switch(type) {
-	case PG_TYPE_TEXT:
-		if (globals.text_as_longvarchar)
-			maxsize = globals.max_longvarchar_size;
-		else
-			maxsize = globals.max_varchar_size;
-		break;
-
-	case PG_TYPE_VARCHAR:
-	case PG_TYPE_BPCHAR:
-		maxsize = globals.max_varchar_size;
-		break;
-
-	default:
-		if (globals.unknowns_as_longvarchar)
-			maxsize = globals.max_longvarchar_size;
-		else
+	int			p = -1,
+				maxsize;
+	QResultClass *result;
+	ColumnInfoClass *flds;
+
+	mylog("getCharPrecision: type=%d, col=%d, unknown = %d\n", type, col, handle_unknown_size_as);
+
+	/* Assign Maximum size based on parameters */
+	switch (type)
+	{
+		case PG_TYPE_TEXT:
+			if (globals.text_as_longvarchar)
+				maxsize = globals.max_longvarchar_size;
+			else
+				maxsize = globals.max_varchar_size;
+			break;
+
+		case PG_TYPE_VARCHAR:
+		case PG_TYPE_BPCHAR:
 			maxsize = globals.max_varchar_size;
-		break;
+			break;
+
+		default:
+			if (globals.unknowns_as_longvarchar)
+				maxsize = globals.max_longvarchar_size;
+			else
+				maxsize = globals.max_varchar_size;
+			break;
 	}
 
-	/*	Static Precision (i.e., the Maximum Precision of the datatype)
-		This has nothing to do with a result set.
-	*/
+	/*
+	 * Static Precision (i.e., the Maximum Precision of the datatype) This
+	 * has nothing to do with a result set.
+	 */
 	if (col < 0)
 		return maxsize;
 
 	result = SC_get_Result(stmt);
 
-	/*	Manual Result Sets -- use assigned column width (i.e., from set_tuplefield_string) */
-	if (stmt->manual_result) {
+	/*
+	 * Manual Result Sets -- use assigned column width (i.e., from
+	 * set_tuplefield_string)
+	 */
+	if (stmt->manual_result)
+	{
 		flds = result->fields;
 		if (flds)
 			return flds->adtsize[col];
@@ -424,11 +506,12 @@ mylog("getCharPrecision: type=%d, col=%d, unknown = %d\n", type,col,handle_unkno
 			return maxsize;
 	}
 
-	/*	Size is unknown -- handle according to parameter */
+	/* Size is unknown -- handle according to parameter */
 	if (QR_get_atttypmod(result, col) > -1)
 		return QR_get_atttypmod(result, col);
 
-	if (type == PG_TYPE_BPCHAR || handle_unknown_size_as == UNKNOWNS_AS_LONGEST) {
+	if (type == PG_TYPE_BPCHAR || handle_unknown_size_as == UNKNOWNS_AS_LONGEST)
+	{
 		p = QR_get_display_size(result, col);
 		mylog("getCharPrecision: LONGEST: p = %d\n", p);
 	}
@@ -439,351 +522,424 @@ mylog("getCharPrecision: type=%d, col=%d, unknown = %d\n", type,col,handle_unkno
 		return p;
 }
 
-/*	For PG_TYPE_VARCHAR, PG_TYPE_BPCHAR, PG_TYPE_NUMERIC, SQLColumns will 
+/*	For PG_TYPE_VARCHAR, PG_TYPE_BPCHAR, PG_TYPE_NUMERIC, SQLColumns will
 	override this length with the atttypmod length from pg_attribute .
 
 	If col >= 0, then will attempt to get the info from the result set.
 	This is used for functions SQLDescribeCol and SQLColAttributes.
 */
-Int4 pgtype_precision(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as)
+Int4
+pgtype_precision(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as)
 {
 
-	switch(type) {
+	switch (type)
+	{
 
-	case PG_TYPE_CHAR:			return 1;
-	case PG_TYPE_CHAR2:			return 2;
-	case PG_TYPE_CHAR4:			return 4;
-	case PG_TYPE_CHAR8:       	return 8;
+			case PG_TYPE_CHAR:return 1;
+		case PG_TYPE_CHAR2:
+			return 2;
+		case PG_TYPE_CHAR4:
+			return 4;
+		case PG_TYPE_CHAR8:
+			return 8;
 
-	case PG_TYPE_NAME:			return NAME_FIELD_SIZE;
+		case PG_TYPE_NAME:
+			return NAME_FIELD_SIZE;
 
-	case PG_TYPE_INT2:          return 5;
+		case PG_TYPE_INT2:
+			return 5;
 
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:          return 10;
+		case PG_TYPE_OID:
+		case PG_TYPE_XID:
+		case PG_TYPE_INT4:
+			return 10;
 
-	case PG_TYPE_INT8:			return 19;   /* signed */
+		case PG_TYPE_INT8:
+			return 19;			/* signed */
 
-	case PG_TYPE_NUMERIC:		return getNumericPrecision(stmt,type,col);
+		case PG_TYPE_NUMERIC:
+			return getNumericPrecision(stmt, type, col);
 
-	case PG_TYPE_FLOAT4:        
-	case PG_TYPE_MONEY:			return 7;
+		case PG_TYPE_FLOAT4:
+		case PG_TYPE_MONEY:
+			return 7;
 
-	case PG_TYPE_FLOAT8:        return 15;
+		case PG_TYPE_FLOAT8:
+			return 15;
 
-	case PG_TYPE_DATE:			return 10;
-	case PG_TYPE_TIME:			return 8;
+		case PG_TYPE_DATE:
+			return 10;
+		case PG_TYPE_TIME:
+			return 8;
 
-	case PG_TYPE_ABSTIME:		
-	case PG_TYPE_DATETIME:		
-	case PG_TYPE_TIMESTAMP:		return 19;
+		case PG_TYPE_ABSTIME:
+		case PG_TYPE_DATETIME:
+		case PG_TYPE_TIMESTAMP:
+			return 19;
 
-	case PG_TYPE_BOOL:			return 1;
+		case PG_TYPE_BOOL:
+			return 1;
 
-	case PG_TYPE_LO:			return SQL_NO_TOTAL;
+		case PG_TYPE_LO:
+			return SQL_NO_TOTAL;
 
-	default:
+		default:
 
-		if (type == stmt->hdbc->lobj_type)	/* hack until permanent type is available */
-			return SQL_NO_TOTAL;
+			if (type == stmt->hdbc->lobj_type)	/* hack until permanent
+												 * type is available */
+				return SQL_NO_TOTAL;
 
-		/*	Handle Character types and unknown types */
-		return getCharPrecision(stmt, type, col, handle_unknown_size_as);
-    }
+			/* Handle Character types and unknown types */
+			return getCharPrecision(stmt, type, col, handle_unknown_size_as);
+	}
 }
 
-Int4 pgtype_display_size(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as)
+Int4
+pgtype_display_size(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as)
 {
 
-	switch(type) {
-	case PG_TYPE_INT2:			return 6;
+	switch (type)
+	{
+			case PG_TYPE_INT2:return 6;
+
+		case PG_TYPE_OID:
+		case PG_TYPE_XID:
+			return 10;
 
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:			return 10;
+		case PG_TYPE_INT4:
+			return 11;
 
-	case PG_TYPE_INT4:			return 11;
+		case PG_TYPE_INT8:
+			return 20;			/* signed: 19 digits + sign */
 
-	case PG_TYPE_INT8:			return 20;	/* signed: 19 digits + sign */
+		case PG_TYPE_NUMERIC:
+			return getNumericPrecision(stmt, type, col) + 2;
 
-	case PG_TYPE_NUMERIC:		return getNumericPrecision(stmt,type,col) + 2;
+		case PG_TYPE_MONEY:
+			return 15;			/* ($9,999,999.99) */
 
-	case PG_TYPE_MONEY:			return 15;	/* ($9,999,999.99) */
+		case PG_TYPE_FLOAT4:
+			return 13;
 
-	case PG_TYPE_FLOAT4:		return 13;
+		case PG_TYPE_FLOAT8:
+			return 22;
 
-	case PG_TYPE_FLOAT8:		return 22;
-	
-	/*	Character types use regular precision */
-	default:
-		return pgtype_precision(stmt, type, col, handle_unknown_size_as);
+			/* Character types use regular precision */
+		default:
+			return pgtype_precision(stmt, type, col, handle_unknown_size_as);
 	}
 }
 
-/*	For PG_TYPE_VARCHAR, PG_TYPE_BPCHAR, SQLColumns will 
-	override this length with the atttypmod length from pg_attribute 
+/*	For PG_TYPE_VARCHAR, PG_TYPE_BPCHAR, SQLColumns will
+	override this length with the atttypmod length from pg_attribute
 */
-Int4 pgtype_length(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as)
+Int4
+pgtype_length(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as)
 {
 
-	switch(type) {
+	switch (type)
+	{
 
-	case PG_TYPE_INT2:          return 2;
+			case PG_TYPE_INT2:return 2;
 
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:          return 4;
+		case PG_TYPE_OID:
+		case PG_TYPE_XID:
+		case PG_TYPE_INT4:
+			return 4;
 
-	case PG_TYPE_INT8:			return 20;	/* signed: 19 digits + sign */
+		case PG_TYPE_INT8:
+			return 20;			/* signed: 19 digits + sign */
 
-	case PG_TYPE_NUMERIC:		return getNumericPrecision(stmt,type,col) + 2;
+		case PG_TYPE_NUMERIC:
+			return getNumericPrecision(stmt, type, col) + 2;
 
-	case PG_TYPE_FLOAT4:
-	case PG_TYPE_MONEY:			return 4;
+		case PG_TYPE_FLOAT4:
+		case PG_TYPE_MONEY:
+			return 4;
 
-	case PG_TYPE_FLOAT8:        return 8;
+		case PG_TYPE_FLOAT8:
+			return 8;
 
-	case PG_TYPE_DATE:
-	case PG_TYPE_TIME:			return 6;
+		case PG_TYPE_DATE:
+		case PG_TYPE_TIME:
+			return 6;
 
-	case PG_TYPE_ABSTIME:		
-	case PG_TYPE_DATETIME:
-	case PG_TYPE_TIMESTAMP:		return 16;
+		case PG_TYPE_ABSTIME:
+		case PG_TYPE_DATETIME:
+		case PG_TYPE_TIMESTAMP:
+			return 16;
 
 
-	/*	Character types (and NUMERIC) use the default precision */
-	default:	
-		return pgtype_precision(stmt, type, col, handle_unknown_size_as);
-    }
+			/* Character types (and NUMERIC) use the default precision */
+		default:
+			return pgtype_precision(stmt, type, col, handle_unknown_size_as);
+	}
 }
 
-Int2 pgtype_scale(StatementClass *stmt, Int4 type, int col)
+Int2
+pgtype_scale(StatementClass * stmt, Int4 type, int col)
 {
-	switch(type) {
-
-	case PG_TYPE_INT2:
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:
-	case PG_TYPE_INT8:
-	case PG_TYPE_FLOAT4:
-	case PG_TYPE_FLOAT8:
-	case PG_TYPE_MONEY:
-	case PG_TYPE_BOOL:
-
-	/*	Number of digits to the right of the decimal point in "yyyy-mm=dd hh:mm:ss[.f...]" */
-	case PG_TYPE_ABSTIME:		
-	case PG_TYPE_DATETIME:		
-	case PG_TYPE_TIMESTAMP:		return 0;
-
-	case PG_TYPE_NUMERIC:		return getNumericScale(stmt,type,col);
-
-	default:					return -1;
+	switch (type)
+	{
+
+			case PG_TYPE_INT2:
+			case PG_TYPE_OID:
+			case PG_TYPE_XID:
+			case PG_TYPE_INT4:
+			case PG_TYPE_INT8:
+			case PG_TYPE_FLOAT4:
+			case PG_TYPE_FLOAT8:
+			case PG_TYPE_MONEY:
+			case PG_TYPE_BOOL:
+
+			/*
+			 * Number of digits to the right of the decimal point in
+			 * "yyyy-mm=dd hh:mm:ss[.f...]"
+			 */
+			case PG_TYPE_ABSTIME:
+			case PG_TYPE_DATETIME:
+			case PG_TYPE_TIMESTAMP:return 0;
+
+		case PG_TYPE_NUMERIC:
+			return getNumericScale(stmt, type, col);
+
+		default:
+			return -1;
 	}
 }
 
 
-Int2 pgtype_radix(StatementClass *stmt, Int4 type)
+Int2
+pgtype_radix(StatementClass * stmt, Int4 type)
 {
-    switch(type) {
-    case PG_TYPE_INT2:
-    case PG_TYPE_OID:
-    case PG_TYPE_INT4:
-	case PG_TYPE_INT8:
-	case PG_TYPE_NUMERIC:
-    case PG_TYPE_FLOAT4:
-	case PG_TYPE_MONEY:
-    case PG_TYPE_FLOAT8:        return 10;
-
-    default:                    return -1;
-    }
+	switch (type)
+	{
+			case PG_TYPE_INT2:
+			case PG_TYPE_OID:
+			case PG_TYPE_INT4:
+			case PG_TYPE_INT8:
+			case PG_TYPE_NUMERIC:
+			case PG_TYPE_FLOAT4:
+			case PG_TYPE_MONEY:
+			case PG_TYPE_FLOAT8:return 10;
+
+		default:
+			return -1;
+	}
 }
 
-Int2 pgtype_nullable(StatementClass *stmt, Int4 type)
+Int2
+pgtype_nullable(StatementClass * stmt, Int4 type)
 {
-	return SQL_NULLABLE;	/* everything should be nullable */
+	return SQL_NULLABLE;		/* everything should be nullable */
 }
 
-Int2 pgtype_auto_increment(StatementClass *stmt, Int4 type)
+Int2
+pgtype_auto_increment(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-
-	case PG_TYPE_INT2:         
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:         
-	case PG_TYPE_FLOAT4:       
-	case PG_TYPE_MONEY:
-	case PG_TYPE_BOOL:
-	case PG_TYPE_FLOAT8:
-	case PG_TYPE_INT8:
-	case PG_TYPE_NUMERIC:
-
-	case PG_TYPE_DATE:
-	case PG_TYPE_TIME:			
-	case PG_TYPE_ABSTIME:		
-	case PG_TYPE_DATETIME:		
-	case PG_TYPE_TIMESTAMP:		return FALSE;
-
-	default:					return -1;
-	}    
+	switch (type)
+	{
+
+			case PG_TYPE_INT2:
+			case PG_TYPE_OID:
+			case PG_TYPE_XID:
+			case PG_TYPE_INT4:
+			case PG_TYPE_FLOAT4:
+			case PG_TYPE_MONEY:
+			case PG_TYPE_BOOL:
+			case PG_TYPE_FLOAT8:
+			case PG_TYPE_INT8:
+			case PG_TYPE_NUMERIC:
+
+			case PG_TYPE_DATE:
+			case PG_TYPE_TIME:
+			case PG_TYPE_ABSTIME:
+			case PG_TYPE_DATETIME:
+			case PG_TYPE_TIMESTAMP:return FALSE;
+
+		default:
+			return -1;
+	}
 }
 
-Int2 pgtype_case_sensitive(StatementClass *stmt, Int4 type)
+Int2
+pgtype_case_sensitive(StatementClass * stmt, Int4 type)
 {
-    switch(type) {
-    case PG_TYPE_CHAR:          
+	switch (type)
+	{
+			case PG_TYPE_CHAR:
 
-	case PG_TYPE_CHAR2:
-	case PG_TYPE_CHAR4:
-    case PG_TYPE_CHAR8:         
+			case PG_TYPE_CHAR2:
+			case PG_TYPE_CHAR4:
+			case PG_TYPE_CHAR8:
 
-    case PG_TYPE_VARCHAR:       
-    case PG_TYPE_BPCHAR:
-    case PG_TYPE_TEXT:
-    case PG_TYPE_NAME:          return TRUE;
+			case PG_TYPE_VARCHAR:
+			case PG_TYPE_BPCHAR:
+			case PG_TYPE_TEXT:
+			case PG_TYPE_NAME:return TRUE;
 
-    default:                    return FALSE;
-    }
+		default:
+			return FALSE;
+	}
 }
 
-Int2 pgtype_money(StatementClass *stmt, Int4 type)
+Int2
+pgtype_money(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-	case PG_TYPE_MONEY:			return TRUE;
-	default:					return FALSE;
-	}    
+	switch (type)
+	{
+			case PG_TYPE_MONEY:return TRUE;
+		default:
+			return FALSE;
+	}
 }
 
-Int2 pgtype_searchable(StatementClass *stmt, Int4 type)
+Int2
+pgtype_searchable(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-	case PG_TYPE_CHAR:          
-	case PG_TYPE_CHAR2:
-	case PG_TYPE_CHAR4:			
-	case PG_TYPE_CHAR8:
-
-	case PG_TYPE_VARCHAR:       
-	case PG_TYPE_BPCHAR:
-	case PG_TYPE_TEXT:
-	case PG_TYPE_NAME:          return SQL_SEARCHABLE;
-
-	default:					return SQL_ALL_EXCEPT_LIKE;
-	}    
+	switch (type)
+	{
+			case PG_TYPE_CHAR:
+			case PG_TYPE_CHAR2:
+			case PG_TYPE_CHAR4:
+			case PG_TYPE_CHAR8:
+
+			case PG_TYPE_VARCHAR:
+			case PG_TYPE_BPCHAR:
+			case PG_TYPE_TEXT:
+			case PG_TYPE_NAME:return SQL_SEARCHABLE;
+
+		default:
+			return SQL_ALL_EXCEPT_LIKE;
+	}
 }
 
-Int2 pgtype_unsigned(StatementClass *stmt, Int4 type)
+Int2
+pgtype_unsigned(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:			return TRUE;
-
-	case PG_TYPE_INT2:
-	case PG_TYPE_INT4:
-	case PG_TYPE_INT8:
-	case PG_TYPE_NUMERIC:
-	case PG_TYPE_FLOAT4:
-	case PG_TYPE_FLOAT8:
-	case PG_TYPE_MONEY:			return FALSE;
-
-	default:					return -1;
+	switch (type)
+	{
+			case PG_TYPE_OID:
+			case PG_TYPE_XID:return TRUE;
+
+		case PG_TYPE_INT2:
+		case PG_TYPE_INT4:
+		case PG_TYPE_INT8:
+		case PG_TYPE_NUMERIC:
+		case PG_TYPE_FLOAT4:
+		case PG_TYPE_FLOAT8:
+		case PG_TYPE_MONEY:
+			return FALSE;
+
+		default:
+			return -1;
 	}
 }
 
-char *pgtype_literal_prefix(StatementClass *stmt, Int4 type)
+char *
+pgtype_literal_prefix(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-
-	case PG_TYPE_INT2:
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:
-	case PG_TYPE_INT8:
-	case PG_TYPE_NUMERIC:
-	case PG_TYPE_FLOAT4:
-	case PG_TYPE_FLOAT8:        
-	case PG_TYPE_MONEY:			return NULL;
-
-	default:					return "'";
+	switch (type)
+	{
+
+			case PG_TYPE_INT2:
+			case PG_TYPE_OID:
+			case PG_TYPE_XID:
+			case PG_TYPE_INT4:
+			case PG_TYPE_INT8:
+			case PG_TYPE_NUMERIC:
+			case PG_TYPE_FLOAT4:
+			case PG_TYPE_FLOAT8:
+			case PG_TYPE_MONEY:return NULL;
+
+		default:
+			return "'";
 	}
 }
 
-char *pgtype_literal_suffix(StatementClass *stmt, Int4 type)
+char *
+pgtype_literal_suffix(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-
-	case PG_TYPE_INT2:
-	case PG_TYPE_OID:
-	case PG_TYPE_XID:
-	case PG_TYPE_INT4:
-	case PG_TYPE_INT8:
-	case PG_TYPE_NUMERIC:
-	case PG_TYPE_FLOAT4:
-	case PG_TYPE_FLOAT8:        
-	case PG_TYPE_MONEY:			return NULL;
-
-	default:					return "'";
+	switch (type)
+	{
+
+			case PG_TYPE_INT2:
+			case PG_TYPE_OID:
+			case PG_TYPE_XID:
+			case PG_TYPE_INT4:
+			case PG_TYPE_INT8:
+			case PG_TYPE_NUMERIC:
+			case PG_TYPE_FLOAT4:
+			case PG_TYPE_FLOAT8:
+			case PG_TYPE_MONEY:return NULL;
+
+		default:
+			return "'";
 	}
 }
 
-char *pgtype_create_params(StatementClass *stmt, Int4 type)
+char *
+pgtype_create_params(StatementClass * stmt, Int4 type)
 {
-	switch(type) {
-	case PG_TYPE_CHAR:
-	case PG_TYPE_VARCHAR:		return "max. length";
-	default:					return NULL;
+	switch (type)
+	{
+			case PG_TYPE_CHAR:
+			case PG_TYPE_VARCHAR:return "max. length";
+		default:
+			return NULL;
 	}
 }
 
 
-Int2 sqltype_to_default_ctype(Int2 sqltype)
+Int2
+sqltype_to_default_ctype(Int2 sqltype)
 {
-    /* from the table on page 623 of ODBC 2.0 Programmer's Reference */
-    /* (Appendix D) */
-    switch(sqltype) {
-    case SQL_CHAR: 
-    case SQL_VARCHAR:
-    case SQL_LONGVARCHAR:
-    case SQL_DECIMAL:
-    case SQL_NUMERIC:
-    case SQL_BIGINT:
-		return SQL_C_CHAR;
-
-    case SQL_BIT:
-		return SQL_C_BIT;
-
-    case SQL_TINYINT:
-		return SQL_C_STINYINT;
-
-    case SQL_SMALLINT:
-		return SQL_C_SSHORT;
-
-    case SQL_INTEGER:
-		return SQL_C_SLONG;
-
-    case SQL_REAL:
-		return SQL_C_FLOAT;
-
-    case SQL_FLOAT:
-    case SQL_DOUBLE:
-		return SQL_C_DOUBLE;
-
-    case SQL_BINARY:
-    case SQL_VARBINARY:
-    case SQL_LONGVARBINARY:
-		return SQL_C_BINARY;
+	/* from the table on page 623 of ODBC 2.0 Programmer's Reference */
+	/* (Appendix D) */
+	switch (sqltype)
+	{
+			case SQL_CHAR:
+			case SQL_VARCHAR:
+			case SQL_LONGVARCHAR:
+			case SQL_DECIMAL:
+			case SQL_NUMERIC:
+			case SQL_BIGINT:
+			return SQL_C_CHAR;
+
+		case SQL_BIT:
+			return SQL_C_BIT;
+
+		case SQL_TINYINT:
+			return SQL_C_STINYINT;
+
+		case SQL_SMALLINT:
+			return SQL_C_SSHORT;
+
+		case SQL_INTEGER:
+			return SQL_C_SLONG;
+
+		case SQL_REAL:
+			return SQL_C_FLOAT;
+
+		case SQL_FLOAT:
+		case SQL_DOUBLE:
+			return SQL_C_DOUBLE;
+
+		case SQL_BINARY:
+		case SQL_VARBINARY:
+		case SQL_LONGVARBINARY:
+			return SQL_C_BINARY;
 
-    case SQL_DATE:
-		return SQL_C_DATE;
+		case SQL_DATE:
+			return SQL_C_DATE;
 
-    case SQL_TIME:
-		return SQL_C_TIME;
+		case SQL_TIME:
+			return SQL_C_TIME;
 
-    case SQL_TIMESTAMP:
-		return SQL_C_TIMESTAMP;
+		case SQL_TIMESTAMP:
+			return SQL_C_TIMESTAMP;
 
-    default:			/* should never happen */
-		return SQL_C_CHAR;	
-    }
+		default:				/* should never happen */
+			return SQL_C_CHAR;
+	}
 }
-
diff --git a/src/interfaces/odbc/pgtypes.h b/src/interfaces/odbc/pgtypes.h
index f9c48ff64f11cca54f5a45670435a30f77fc6aac..0c82f6487f331c35250a9b0cb8298a7c4d550934 100644
--- a/src/interfaces/odbc/pgtypes.h
+++ b/src/interfaces/odbc/pgtypes.h
@@ -1,9 +1,9 @@
 
-/* File:            pgtypes.h
+/* File:			pgtypes.h
  *
- * Description:     See "pgtypes.c"
+ * Description:		See "pgtypes.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -17,48 +17,48 @@
 
 
 #if 0
-#define PG_TYPE_LO			???? 	/* waiting for permanent type */
+#define PG_TYPE_LO			????/* waiting for permanent type */
 #endif
 
-#define PG_TYPE_BOOL         16
-#define PG_TYPE_BYTEA        17
-#define PG_TYPE_CHAR         18
-#define PG_TYPE_NAME         19
-#define PG_TYPE_INT8         20
-#define PG_TYPE_INT2         21
-#define PG_TYPE_INT2VECTOR   22
-#define PG_TYPE_INT4         23
-#define PG_TYPE_REGPROC      24
-#define PG_TYPE_TEXT         25
-#define PG_TYPE_OID          26
-#define PG_TYPE_TID          27
-#define PG_TYPE_XID          28
-#define PG_TYPE_CID          29
-#define PG_TYPE_OIDVECTOR    30
-#define PG_TYPE_SET          32
-#define PG_TYPE_CHAR2       409
-#define PG_TYPE_CHAR4       410
-#define PG_TYPE_CHAR8       411
-#define PG_TYPE_POINT       600
-#define PG_TYPE_LSEG        601
-#define PG_TYPE_PATH        602
-#define PG_TYPE_BOX         603
-#define PG_TYPE_POLYGON     604
-#define PG_TYPE_FILENAME    605
-#define PG_TYPE_FLOAT4      700
-#define PG_TYPE_FLOAT8      701
-#define PG_TYPE_ABSTIME     702
-#define PG_TYPE_RELTIME     703
-#define PG_TYPE_TINTERVAL   704
-#define PG_TYPE_UNKNOWN     705
+#define PG_TYPE_BOOL		 16
+#define PG_TYPE_BYTEA		 17
+#define PG_TYPE_CHAR		 18
+#define PG_TYPE_NAME		 19
+#define PG_TYPE_INT8		 20
+#define PG_TYPE_INT2		 21
+#define PG_TYPE_INT2VECTOR	 22
+#define PG_TYPE_INT4		 23
+#define PG_TYPE_REGPROC		 24
+#define PG_TYPE_TEXT		 25
+#define PG_TYPE_OID			 26
+#define PG_TYPE_TID			 27
+#define PG_TYPE_XID			 28
+#define PG_TYPE_CID			 29
+#define PG_TYPE_OIDVECTOR	 30
+#define PG_TYPE_SET			 32
+#define PG_TYPE_CHAR2		409
+#define PG_TYPE_CHAR4		410
+#define PG_TYPE_CHAR8		411
+#define PG_TYPE_POINT		600
+#define PG_TYPE_LSEG		601
+#define PG_TYPE_PATH		602
+#define PG_TYPE_BOX			603
+#define PG_TYPE_POLYGON		604
+#define PG_TYPE_FILENAME	605
+#define PG_TYPE_FLOAT4		700
+#define PG_TYPE_FLOAT8		701
+#define PG_TYPE_ABSTIME		702
+#define PG_TYPE_RELTIME		703
+#define PG_TYPE_TINTERVAL	704
+#define PG_TYPE_UNKNOWN		705
 #define PG_TYPE_MONEY		790
-#define PG_TYPE_OIDINT2     810
-#define PG_TYPE_OIDINT4     910
-#define PG_TYPE_OIDNAME     911
-#define PG_TYPE_BPCHAR     1042
+#define PG_TYPE_OIDINT2		810
+#define PG_TYPE_OIDINT4		910
+#define PG_TYPE_OIDNAME		911
+#define PG_TYPE_BPCHAR	   1042
 #define PG_TYPE_VARCHAR    1043
-#define PG_TYPE_DATE       1082
-#define PG_TYPE_TIME       1083
+#define PG_TYPE_DATE	   1082
+#define PG_TYPE_TIME	   1083
 #define PG_TYPE_DATETIME   1184
 #define PG_TYPE_TIMESTAMP  1296
 #define PG_TYPE_NUMERIC    1700
@@ -67,32 +67,31 @@
 extern Int2 sqlTypes[];
 
 /*	Defines for pgtype_precision */
-#define PG_STATIC		-1	
+#define PG_STATIC		-1
 
-Int4 sqltype_to_pgtype(Int2 fSqlType);
+Int4		sqltype_to_pgtype(Int2 fSqlType);
 
-Int2 pgtype_to_sqltype(StatementClass *stmt, Int4 type);
-Int2 pgtype_to_ctype(StatementClass *stmt, Int4 type);
-char *pgtype_to_name(StatementClass *stmt, Int4 type);
+Int2		pgtype_to_sqltype(StatementClass * stmt, Int4 type);
+Int2		pgtype_to_ctype(StatementClass * stmt, Int4 type);
+char	   *pgtype_to_name(StatementClass * stmt, Int4 type);
 
 /*	These functions can use static numbers or result sets(col parameter) */
-Int4 pgtype_precision(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as);
-Int4 pgtype_display_size(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as);
-Int4 pgtype_length(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_as);
-
-Int2 pgtype_scale(StatementClass *stmt, Int4 type, int col);
-Int2 pgtype_radix(StatementClass *stmt, Int4 type);
-Int2 pgtype_nullable(StatementClass *stmt, Int4 type);
-Int2 pgtype_auto_increment(StatementClass *stmt, Int4 type);
-Int2 pgtype_case_sensitive(StatementClass *stmt, Int4 type);
-Int2 pgtype_money(StatementClass *stmt, Int4 type);
-Int2 pgtype_searchable(StatementClass *stmt, Int4 type);
-Int2 pgtype_unsigned(StatementClass *stmt, Int4 type);
-char *pgtype_literal_prefix(StatementClass *stmt, Int4 type);
-char *pgtype_literal_suffix(StatementClass *stmt, Int4 type);
-char *pgtype_create_params(StatementClass *stmt, Int4 type);
-
-Int2 sqltype_to_default_ctype(Int2 sqltype);
+Int4		pgtype_precision(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as);
+Int4		pgtype_display_size(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as);
+Int4		pgtype_length(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as);
+
+Int2		pgtype_scale(StatementClass * stmt, Int4 type, int col);
+Int2		pgtype_radix(StatementClass * stmt, Int4 type);
+Int2		pgtype_nullable(StatementClass * stmt, Int4 type);
+Int2		pgtype_auto_increment(StatementClass * stmt, Int4 type);
+Int2		pgtype_case_sensitive(StatementClass * stmt, Int4 type);
+Int2		pgtype_money(StatementClass * stmt, Int4 type);
+Int2		pgtype_searchable(StatementClass * stmt, Int4 type);
+Int2		pgtype_unsigned(StatementClass * stmt, Int4 type);
+char	   *pgtype_literal_prefix(StatementClass * stmt, Int4 type);
+char	   *pgtype_literal_suffix(StatementClass * stmt, Int4 type);
+char	   *pgtype_create_params(StatementClass * stmt, Int4 type);
+
+Int2		sqltype_to_default_ctype(Int2 sqltype);
 
 #endif
-
diff --git a/src/interfaces/odbc/psqlodbc.c b/src/interfaces/odbc/psqlodbc.c
index c5770f9d33c648d21c75c5e714e2e4df28483cd9..ef6345cdd2da3caa82d5689f35fb0803a5ac926c 100644
--- a/src/interfaces/odbc/psqlodbc.c
+++ b/src/interfaces/odbc/psqlodbc.c
@@ -1,14 +1,14 @@
-/* Module:          psqlodbc.c
+/* Module:			psqlodbc.c
  *
- * Description:     This module contains the main entry point (DllMain) for the library.
- *                  It also contains functions to get and set global variables for the
- *                  driver in the registry.
+ * Description:		This module contains the main entry point (DllMain) for the library.
+ *					It also contains functions to get and set global variables for the
+ *					driver in the registry.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -35,57 +35,60 @@ GLOBAL_VALUES globals;
 RETCODE SQL_API SQLDummyOrdinal(void);
 
 #ifdef WIN32
-HINSTANCE NEAR s_hModule;               /* Saved module handle. */
+HINSTANCE NEAR s_hModule;		/* Saved module handle. */
 
 /*	This is where the Driver Manager attaches to this Driver */
-BOOL WINAPI DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved) 
+BOOL WINAPI
+DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
 {
-WORD wVersionRequested; 
-WSADATA wsaData; 
+	WORD		wVersionRequested;
+	WSADATA		wsaData;
 
-	switch (ul_reason_for_call) {
-	case DLL_PROCESS_ATTACH:
-		s_hModule = hInst;				/* Save for dialog boxes */
+	switch (ul_reason_for_call)
+	{
+		case DLL_PROCESS_ATTACH:
+			s_hModule = hInst;	/* Save for dialog boxes */
 
-		/*	Load the WinSock Library */
-		wVersionRequested = MAKEWORD(1, 1); 
+			/* Load the WinSock Library */
+			wVersionRequested = MAKEWORD(1, 1);
 
-		if ( WSAStartup(wVersionRequested, &wsaData))
-			return FALSE;
+			if (WSAStartup(wVersionRequested, &wsaData))
+				return FALSE;
 
-		/*	Verify that this is the minimum version of WinSock */
-		if ( LOBYTE( wsaData.wVersion ) != 1 || 
-			HIBYTE( wsaData.wVersion ) != 1 ) { 
+			/* Verify that this is the minimum version of WinSock */
+			if (LOBYTE(wsaData.wVersion) != 1 ||
+				HIBYTE(wsaData.wVersion) != 1)
+			{
 
-			WSACleanup(); 
-			return FALSE;
-		}
+				WSACleanup();
+				return FALSE;
+			}
 
-		getGlobalDefaults(DBMS_NAME, ODBCINST_INI, FALSE);
-		break;
+			getGlobalDefaults(DBMS_NAME, ODBCINST_INI, FALSE);
+			break;
 
-	case DLL_THREAD_ATTACH:
-		break;
+		case DLL_THREAD_ATTACH:
+			break;
 
-	case DLL_PROCESS_DETACH:
+		case DLL_PROCESS_DETACH:
 
-		WSACleanup();
+			WSACleanup();
 
-		return TRUE;
+			return TRUE;
 
-	case DLL_THREAD_DETACH:
-		break;
+		case DLL_THREAD_DETACH:
+			break;
 
-	default:
-		break;
+		default:
+			break;
 	}
 
-	return TRUE;                                                                
-                                                                                
-	UNREFERENCED_PARAMETER(lpReserved);                                         
+	return TRUE;
+
+	UNREFERENCED_PARAMETER(lpReserved);
 }
 
-#else	/* not WIN32 */
+#else							/* not WIN32 */
 
 #ifndef TRUE
 #define TRUE	(BOOL)1
@@ -96,7 +99,7 @@ WSADATA wsaData;
 
 #ifdef __GNUC__
 
-/* This function is called at library initialization time.  */
+/* This function is called at library initialization time.	*/
 
 static BOOL
 __attribute__((constructor))
@@ -106,7 +109,7 @@ init(void)
 	return TRUE;
 }
 
-#else /* not __GNUC__ */
+#else							/* not __GNUC__ */
 
 /* These two functions do shared library initialziation on UNIX, well at least
  * on Linux. I don't know about other systems.
@@ -124,9 +127,9 @@ _fini(void)
 	return TRUE;
 }
 
-#endif /* not __GNUC__ */
+#endif	 /* not __GNUC__ */
 
-#endif /* not WIN32 */
+#endif	 /* not WIN32 */
 
 /*	This function is used to cause the Driver Manager to
 	call functions by number rather than name, which is faster.
@@ -134,8 +137,8 @@ _fini(void)
 	Driver Manager do this.  Also, the ordinal values of the
 	functions must match the value of fFunction in SQLGetFunctions()
 */
-RETCODE SQL_API SQLDummyOrdinal(void)
+RETCODE SQL_API
+SQLDummyOrdinal(void)
 {
 	return SQL_SUCCESS;
 }
-
diff --git a/src/interfaces/odbc/psqlodbc.h b/src/interfaces/odbc/psqlodbc.h
index 96588de59061615d927d776d0d7be89f3a8f44a7..1db83bd9a0509d93e6f70dc8be53c0f8695c206c 100644
--- a/src/interfaces/odbc/psqlodbc.h
+++ b/src/interfaces/odbc/psqlodbc.h
@@ -1,12 +1,12 @@
 
-/* File:            psqlodbc.h
+/* File:			psqlodbc.h
  *
- * Description:     This file contains defines and declarations that are related to
- *                  the entire driver.
+ * Description:		This file contains defines and declarations that are related to
+ *					the entire driver.
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
- * $Id: psqlodbc.h,v 1.31 2001/02/10 06:57:53 momjian Exp $
+ * $Id: psqlodbc.h,v 1.32 2001/02/10 07:01:19 momjian Exp $
  */
 
 #ifndef __PSQLODBC_H__
@@ -16,7 +16,7 @@
 #include "config.h"
 #endif
 
-#include <stdio.h>	/* for FILE* pointers: see GLOBAL_VALUES */
+#include <stdio.h>				/* for FILE* pointers: see GLOBAL_VALUES */
 
 #ifndef WIN32
 #define Int4 long int
@@ -25,6 +25,7 @@
 #define UInt2 unsigned short
 typedef float SFLOAT;
 typedef double SDOUBLE;
+
 #else
 #define Int4 int
 #define UInt4 unsigned int
@@ -38,8 +39,8 @@ typedef UInt4 Oid;
 #define ODBCVER				0x0250
 #define DRIVER_ODBC_VER		"02.50"
 
-#define DRIVERNAME             "PostgreSQL ODBC"
-#define DBMS_NAME              "PostgreSQL"
+#define DRIVERNAME			   "PostgreSQL ODBC"
+#define DBMS_NAME			   "PostgreSQL"
 
 #define POSTGRESDRIVERVERSION  "07.01.0002"
 
@@ -51,17 +52,21 @@ typedef UInt4 Oid;
 
 /* Limits */
 #ifdef WIN32
-#define BLCKSZ                      4096
+#define BLCKSZ						4096
 #endif
 
-#define MAX_MESSAGE_LEN				65536   /* This puts a limit on query size but I don't */
-											/* see an easy way round this - DJP 24-1-2001 */
+#define MAX_MESSAGE_LEN				65536		/* This puts a limit on
+												 * query size but I don't */
+ /* see an easy way round this - DJP 24-1-2001 */
 #define MAX_CONNECT_STRING			4096
 #define ERROR_MSG_LENGTH			4096
-#define FETCH_MAX					100		/* default number of rows to cache for declare/fetch */
+#define FETCH_MAX					100 /* default number of rows to cache
+										 * for declare/fetch */
 #define TUPLE_MALLOC_INC			100
-#define SOCK_BUFFER_SIZE			4096	/* default socket buffer size */
-#define MAX_CONNECTIONS				128		/* conns per environment (arbitrary)  */
+#define SOCK_BUFFER_SIZE			4096		/* default socket buffer
+												 * size */
+#define MAX_CONNECTIONS				128 /* conns per environment
+										 * (arbitrary)	*/
 #define MAX_FIELDS					512
 #define BYTELEN						8
 #define VARHDRSZ					sizeof(Int4)
@@ -71,21 +76,24 @@ typedef UInt4 Oid;
 #define MAX_CURSOR_LEN				32
 
 /*	Registry length limits */
-#define LARGE_REGISTRY_LEN			4096	/* used for special cases */
-#define MEDIUM_REGISTRY_LEN			256		/* normal size for user,database,etc. */
-#define SMALL_REGISTRY_LEN			10		/* for 1/0 settings */
+#define LARGE_REGISTRY_LEN			4096		/* used for special cases */
+#define MEDIUM_REGISTRY_LEN			256 /* normal size for
+										 * user,database,etc. */
+#define SMALL_REGISTRY_LEN			10	/* for 1/0 settings */
 
 
 /*	These prefixes denote system tables */
-#define POSTGRES_SYS_PREFIX	"pg_"
+#define POSTGRES_SYS_PREFIX "pg_"
 #define KEYS_TABLE			"dd_fkey"
 
 /*	Info limits */
 #define MAX_INFO_STRING		128
 #define MAX_KEYPARTS		20
-#define MAX_KEYLEN			512			/*	max key of the form "date+outlet+invoice" */
-#define MAX_ROW_SIZE		0 /* Unlimited rowsize with the Tuple Toaster */
-#define MAX_STATEMENT_LEN	0 /* Unlimited statement size with 7.0 */
+#define MAX_KEYLEN			512 /* max key of the form
+								 * "date+outlet+invoice" */
+#define MAX_ROW_SIZE		0	/* Unlimited rowsize with the Tuple
+								 * Toaster */
+#define MAX_STATEMENT_LEN	0	/* Unlimited statement size with 7.0 */
 
 /* Previously, numerous query strings were defined of length MAX_STATEMENT_LEN */
 /* Now that's 0, lets use this instead. DJP 24-1-2001 */
@@ -110,62 +118,72 @@ typedef struct lo_arg LO_ARG;
 
 typedef struct GlobalValues_
 {
-	int					fetch_max;
-	int					socket_buffersize;
-	int					unknown_sizes;
-	int					max_varchar_size;
-	int					max_longvarchar_size;
-	char				debug;
-	char				commlog;
-	char				disable_optimizer;
-	char				ksqo;
-	char				unique_index;
-	char				onlyread; /* readonly is reserved on Digital C++ compiler */
-	char				use_declarefetch;
-	char				text_as_longvarchar;
-	char				unknowns_as_longvarchar;
-	char				bools_as_char;
-	char				lie;
-	char				parse;
-	char				cancel_as_freestmt;
-	char				extra_systable_prefixes[MEDIUM_REGISTRY_LEN];
-	char				conn_settings[LARGE_REGISTRY_LEN];
-						/* Protocol is not used anymore, but kept in case
-						 * it is useful in the future.  bjm 2001-02-10
-						 */
-	char				protocol[SMALL_REGISTRY_LEN];
-	FILE*				mylogFP;
-	FILE*				qlogFP;	
-} GLOBAL_VALUES;
-
-typedef struct StatementOptions_ {
-	int maxRows;
-	int maxLength;
-	int rowset_size;
-	int keyset_size;
-	int cursor_type;
-	int scroll_concurrency;
-	int retrieve_data;
-	int bind_size;		        /* size of each structure if using Row Binding */
-	int use_bookmarks;
-} StatementOptions;
+	int			fetch_max;
+	int			socket_buffersize;
+	int			unknown_sizes;
+	int			max_varchar_size;
+	int			max_longvarchar_size;
+	char		debug;
+	char		commlog;
+	char		disable_optimizer;
+	char		ksqo;
+	char		unique_index;
+	char		onlyread;		/* readonly is reserved on Digital C++
+								 * compiler */
+	char		use_declarefetch;
+	char		text_as_longvarchar;
+	char		unknowns_as_longvarchar;
+	char		bools_as_char;
+	char		lie;
+	char		parse;
+	char		cancel_as_freestmt;
+	char		extra_systable_prefixes[MEDIUM_REGISTRY_LEN];
+	char		conn_settings[LARGE_REGISTRY_LEN];
+
+	/*
+	 * Protocol is not used anymore, but kept in case it is useful in the
+	 * future.	bjm 2001-02-10
+	 */
+	char		protocol[SMALL_REGISTRY_LEN];
+	FILE	   *mylogFP;
+	FILE	   *qlogFP;
+}			GLOBAL_VALUES;
+
+typedef struct StatementOptions_
+{
+	int			maxRows;
+	int			maxLength;
+	int			rowset_size;
+	int			keyset_size;
+	int			cursor_type;
+	int			scroll_concurrency;
+	int			retrieve_data;
+	int			bind_size;		/* size of each structure if using Row
+								 * Binding */
+	int			use_bookmarks;
+}			StatementOptions;
 
 /*	Used to pass extra query info to send_query */
-typedef struct QueryInfo_ {
-	int				row_size;
-	QResultClass	*result_in;
-	char			*cursor;
-} QueryInfo;
+typedef struct QueryInfo_
+{
+	int			row_size;
+	QResultClass *result_in;
+	char	   *cursor;
+}			QueryInfo;
 
 
-#define PG_TYPE_LO				-999	/* hack until permanent type available */
+#define PG_TYPE_LO				-999	/* hack until permanent type
+										 * available */
 #define PG_TYPE_LO_NAME			"lo"
-#define OID_ATTNUM				-2		/* the attnum in pg_index of the oid */
+#define OID_ATTNUM				-2		/* the attnum in pg_index of the
+										 * oid */
 
 /* sizes */
-#define TEXT_FIELD_SIZE			8190	/* size of text fields (not including null term) */
+#define TEXT_FIELD_SIZE			8190	/* size of text fields (not
+										 * including null term) */
 #define NAME_FIELD_SIZE			32		/* size of name fields */
-#define MAX_VARCHAR_SIZE		254		/* maximum size of a varchar (not including null term) */
+#define MAX_VARCHAR_SIZE		254		/* maximum size of a varchar (not
+										 * including null term) */
 
 #define PG_NUMERIC_MAX_PRECISION	1000
 #define PG_NUMERIC_MAX_SCALE		1000
diff --git a/src/interfaces/odbc/qresult.c b/src/interfaces/odbc/qresult.c
index eaffef5b793ce6a449718cef8bf8bf66385ee078..bc28126cf7317737ad59eb26463a67d53bdcec07 100644
--- a/src/interfaces/odbc/qresult.c
+++ b/src/interfaces/odbc/qresult.c
@@ -1,19 +1,19 @@
-/* Module:          qresult.c
+/* Module:			qresult.c
  *
- * Description:     This module contains functions related to 
- *                  managing result information (i.e, fetching rows from the backend,
- *                  managing the tuple cache, etc.) and retrieving it.
- *                  Depending on the situation, a QResultClass will hold either data
- *                  from the backend or a manually built result (see "qresult.h" to
- *                  see which functions/macros are for manual or backend results.
- *                  For manually built results, the QResultClass simply points to 
- *                  TupleList and ColumnInfo structures, which actually hold the data.
+ * Description:		This module contains functions related to
+ *					managing result information (i.e, fetching rows from the backend,
+ *					managing the tuple cache, etc.) and retrieving it.
+ *					Depending on the situation, a QResultClass will hold either data
+ *					from the backend or a manually built result (see "qresult.h" to
+ *					see which functions/macros are for manual or backend results.
+ *					For manually built results, the QResultClass simply points to
+ *					TupleList and ColumnInfo structures, which actually hold the data.
  *
- * Classes:         QResultClass (Functions prefix: "QR_")
+ * Classes:			QResultClass (Functions prefix: "QR_")
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -31,68 +31,70 @@
 
 extern GLOBAL_VALUES globals;
 
-/*  Used for building a Manual Result only */
+/*	Used for building a Manual Result only */
 /*	All info functions call this function to create the manual result set. */
-void 
-QR_set_num_fields(QResultClass *self, int new_num_fields)
+void
+QR_set_num_fields(QResultClass * self, int new_num_fields)
 {
 	mylog("in QR_set_num_fields\n");
 
-    CI_set_num_fields(self->fields, new_num_fields);
-    if(self->manual_tuples) 
-        TL_Destructor(self->manual_tuples);
+	CI_set_num_fields(self->fields, new_num_fields);
+	if (self->manual_tuples)
+		TL_Destructor(self->manual_tuples);
 
-    self->manual_tuples = TL_Constructor(new_num_fields);
+	self->manual_tuples = TL_Constructor(new_num_fields);
 
 	mylog("exit QR_set_num_fields\n");
 }
 
-void 
-QR_set_position(QResultClass *self, int pos)
+void
+QR_set_position(QResultClass * self, int pos)
 {
 	self->tupleField = self->backend_tuples + ((self->base + pos) * self->num_fields);
 }
 
 void
-QR_set_cache_size(QResultClass *self, int cache_size)
+QR_set_cache_size(QResultClass * self, int cache_size)
 {
 	self->cache_size = cache_size;
 }
 
-void 
-QR_set_rowset_size(QResultClass *self, int rowset_size)
+void
+QR_set_rowset_size(QResultClass * self, int rowset_size)
 {
 	self->rowset_size = rowset_size;
 }
 
 void
-QR_inc_base(QResultClass *self, int base_inc)
+QR_inc_base(QResultClass * self, int base_inc)
 {
 	self->base += base_inc;
 }
 
 /************************************/
-/* CLASS QResult                    */
+/* CLASS QResult					*/
 /************************************/
 
 QResultClass *
 QR_Constructor(void)
 {
-QResultClass *rv;
+	QResultClass *rv;
 
 	mylog("in QR_Constructor\n");
 	rv = (QResultClass *) malloc(sizeof(QResultClass));
 
-	if (rv != NULL) {
+	if (rv != NULL)
+	{
 		rv->status = PGRES_EMPTY_QUERY;
 
 		/* construct the column info */
-		if ( ! (rv->fields = CI_Constructor())) {
+		if (!(rv->fields = CI_Constructor()))
+		{
 			free(rv);
 			return NULL;
 		}
-		rv->manual_tuples = NULL;	
-		rv->backend_tuples = NULL;	
+		rv->manual_tuples = NULL;
+		rv->backend_tuples = NULL;
 		rv->message = NULL;
 		rv->command = NULL;
 		rv->notice = NULL;
@@ -116,7 +118,7 @@ QResultClass *rv;
 }
 
 void
-QR_Destructor(QResultClass *self)
+QR_Destructor(QResultClass * self)
 {
 	mylog("QResult: in DESTRUCTOR\n");
 
@@ -124,26 +126,26 @@ QR_Destructor(QResultClass *self)
 	if (self->manual_tuples)
 		TL_Destructor(self->manual_tuples);
 
-	/*	If conn is defined, then we may have used "backend_tuples", */
-	/*	so in case we need to, free it up.  Also, close the cursor. */
+	/* If conn is defined, then we may have used "backend_tuples", */
+	/* so in case we need to, free it up.  Also, close the cursor. */
 	if (self->conn && self->conn->sock && CC_is_in_trans(self->conn))
 		QR_close(self);			/* close the cursor if there is one */
 
-	QR_free_memory(self);	/* safe to call anyway */
+	QR_free_memory(self);		/* safe to call anyway */
 
-	/*	Should have been freed in the close() but just in case... */
+	/* Should have been freed in the close() but just in case... */
 	if (self->cursor)
 		free(self->cursor);
 
-	/*	Free up column info */
+	/* Free up column info */
 	if (self->fields)
 		CI_Destructor(self->fields);
 
-	/*	Free command info (this is from strdup()) */
+	/* Free command info (this is from strdup()) */
 	if (self->command)
 		free(self->command);
 
-	/*	Free notice info (this is from strdup()) */
+	/* Free notice info (this is from strdup()) */
 	if (self->notice)
 		free(self->notice);
 
@@ -154,7 +156,7 @@ QR_Destructor(QResultClass *self)
 }
 
 void
-QR_set_command(QResultClass *self, char *msg)
+QR_set_command(QResultClass * self, char *msg)
 {
 	if (self->command)
 		free(self->command);
@@ -162,8 +164,8 @@ QR_set_command(QResultClass *self, char *msg)
 	self->command = msg ? strdup(msg) : NULL;
 }
 
-void 
-QR_set_notice(QResultClass *self, char *msg)
+void
+QR_set_notice(QResultClass * self, char *msg)
 {
 	if (self->notice)
 		free(self->notice);
@@ -171,27 +173,32 @@ QR_set_notice(QResultClass *self, char *msg)
 	self->notice = msg ? strdup(msg) : NULL;
 }
 
-void 
-QR_free_memory(QResultClass *self)
+void
+QR_free_memory(QResultClass * self)
 {
-register int lf, row;
-register TupleField *tuple = self->backend_tuples;
-int fcount = self->fcount;
-int num_fields = self->num_fields;
+	register int lf,
+				row;
+	register TupleField *tuple = self->backend_tuples;
+	int			fcount = self->fcount;
+	int			num_fields = self->num_fields;
 
 	mylog("QResult: free memory in, fcount=%d\n", fcount);
 
-	if ( self->backend_tuples) {
+	if (self->backend_tuples)
+	{
 
-		for (row = 0; row < fcount; row++) {
+		for (row = 0; row < fcount; row++)
+		{
 			mylog("row = %d, num_fields = %d\n", row, num_fields);
-			for (lf=0; lf < num_fields; lf++) {
-				if (tuple[lf].value != NULL) {
+			for (lf = 0; lf < num_fields; lf++)
+			{
+				if (tuple[lf].value != NULL)
+				{
 					mylog("free [lf=%d] %u\n", lf, tuple[lf].value);
 					free(tuple[lf].value);
 				}
 			}
-			tuple += num_fields;  /* next row */
+			tuple += num_fields;/* next row */
 		}
 
 		free(self->backend_tuples);
@@ -205,39 +212,44 @@ int num_fields = self->num_fields;
 
 /*	This function is called by send_query() */
 char
-QR_fetch_tuples(QResultClass *self, ConnectionClass *conn, char *cursor)
+QR_fetch_tuples(QResultClass * self, ConnectionClass * conn, char *cursor)
 {
-int tuple_size;
-
-	/*	If called from send_query the first time (conn != NULL),  */
-	/*	then set the inTuples state, */
-	/*	and read the tuples.  If conn is NULL, */
-	/*	it implies that we are being called from next_tuple(), */
-	/*	like to get more rows so don't call next_tuple again! */
-	if (conn != NULL) {
+	int			tuple_size;
+
+	/* If called from send_query the first time (conn != NULL),  */
+	/* then set the inTuples state, */
+	/* and read the tuples.  If conn is NULL, */
+	/* it implies that we are being called from next_tuple(), */
+	/* like to get more rows so don't call next_tuple again! */
+	if (conn != NULL)
+	{
 		self->conn = conn;
 
-		mylog("QR_fetch_tuples: cursor = '%s', self->cursor=%u\n",  (cursor==NULL)?"":cursor, self->cursor);
+		mylog("QR_fetch_tuples: cursor = '%s', self->cursor=%u\n", (cursor == NULL) ? "" : cursor, self->cursor);
 
 		if (self->cursor)
 			free(self->cursor);
 
-		if ( globals.use_declarefetch) {
-			if (! cursor || cursor[0] == '\0') {
+		if (globals.use_declarefetch)
+		{
+			if (!cursor || cursor[0] == '\0')
+			{
 				self->status = PGRES_INTERNAL_ERROR;
 				QR_set_message(self, "Internal Error -- no cursor for fetch");
 				return FALSE;
 			}
 			self->cursor = strdup(cursor);
 		}
- 
-		/*	Read the field attributes. */
-		/*	$$$$ Should do some error control HERE! $$$$ */
-		if ( CI_read_fields(self->fields, self->conn)) {
+
+		/* Read the field attributes. */
+		/* $$$$ Should do some error control HERE! $$$$ */
+		if (CI_read_fields(self->fields, self->conn))
+		{
 			self->status = PGRES_FIELDS_OK;
 			self->num_fields = CI_get_num_fields(self->fields);
 		}
-		else {
+		else
+		{
 			self->status = PGRES_BAD_RESPONSE;
 			QR_set_message(self, "Error reading field information");
 			return FALSE;
@@ -245,7 +257,7 @@ int tuple_size;
 
 		mylog("QR_fetch_tuples: past CI_read_fields: num_fields = %d\n", self->num_fields);
 
-		if (globals.use_declarefetch) 
+		if (globals.use_declarefetch)
 			tuple_size = self->cache_size;
 		else
 			tuple_size = TUPLE_MALLOC_INC;
@@ -253,8 +265,9 @@ int tuple_size;
 		/* allocate memory for the tuple cache */
 		mylog("MALLOC: tuple_size = %d, size = %d\n", tuple_size, self->num_fields * sizeof(TupleField) * tuple_size);
 		self->backend_tuples = (TupleField *) malloc(self->num_fields * sizeof(TupleField) * tuple_size);
-		if ( ! self->backend_tuples) {
-			self->status = PGRES_FATAL_ERROR; 
+		if (!self->backend_tuples)
+		{
+			self->status = PGRES_FATAL_ERROR;
 			QR_set_message(self, "Could not get memory for tuple cache.");
 			return FALSE;
 		}
@@ -262,19 +275,21 @@ int tuple_size;
 		self->inTuples = TRUE;
 
 
-		/*  Force a read to occur in next_tuple */
-		self->fcount = tuple_size+1;
-		self->fetch_count = tuple_size+1;
+		/* Force a read to occur in next_tuple */
+		self->fcount = tuple_size + 1;
+		self->fetch_count = tuple_size + 1;
 		self->base = 0;
 
 		return QR_next_tuple(self);
 	}
-	else {
+	else
+	{
 
-		/*	Always have to read the field attributes. */
-		/*	But we dont have to reallocate memory for them! */
+		/* Always have to read the field attributes. */
+		/* But we dont have to reallocate memory for them! */
 
-		if ( ! CI_read_fields(NULL, self->conn)) {
+		if (!CI_read_fields(NULL, self->conn))
+		{
 			self->status = PGRES_BAD_RESPONSE;
 			QR_set_message(self, "Error reading field information");
 			return FALSE;
@@ -286,12 +301,13 @@ int tuple_size;
 /*	Close the cursor and end the transaction (if no cursors left) */
 /*	We only close cursor/end the transaction if a cursor was used. */
 int
-QR_close(QResultClass *self)
+QR_close(QResultClass * self)
 {
-QResultClass *res;
+	QResultClass *res;
 
-	if (globals.use_declarefetch && self->conn && self->cursor) {
-		char buf[64];
+	if (globals.use_declarefetch && self->conn && self->cursor)
+	{
+		char		buf[64];
 
 		sprintf(buf, "close %s", self->cursor);
 		mylog("QResult: closing cursor: '%s'\n", buf);
@@ -304,21 +320,24 @@ QResultClass *res;
 		free(self->cursor);
 		self->cursor = NULL;
 
-		if (res == NULL) {
+		if (res == NULL)
+		{
 			self->status = PGRES_FATAL_ERROR;
 			QR_set_message(self, "Error closing cursor.");
 			return FALSE;
 		}
 
-		/*	End the transaction if there are no cursors left on this conn */
-		if (CC_cursor_count(self->conn) == 0) {
+		/* End the transaction if there are no cursors left on this conn */
+		if (CC_cursor_count(self->conn) == 0)
+		{
 			mylog("QResult: END transaction on conn=%u\n", self->conn);
 
 			res = CC_send_query(self->conn, "END", NULL);
 
 			CC_set_no_trans(self->conn);
 
-			if (res == NULL) {
+			if (res == NULL)
+			{
 				self->status = PGRES_FATAL_ERROR;
 				QR_set_message(self, "Error ending transaction.");
 				return FALSE;
@@ -332,56 +351,67 @@ QResultClass *res;
 
 /*	This function is called by fetch_tuples() AND SQLFetch() */
 int
-QR_next_tuple(QResultClass *self)
+QR_next_tuple(QResultClass * self)
 {
-int id;
-QResultClass *res;
-SocketClass *sock;
+	int			id;
+	QResultClass *res;
+	SocketClass *sock;
+
 /* Speed up access */
-int fetch_count = self->fetch_count;
-int fcount = self->fcount;
-int fetch_size, offset= 0;
-int end_tuple = self->rowset_size + self->base;
-char corrected = FALSE;
-TupleField *the_tuples = self->backend_tuples;
-static char msgbuffer[MAX_MESSAGE_LEN+1];
-char cmdbuffer[MAX_MESSAGE_LEN+1];	/* QR_set_command() dups this string so dont need static */
-char fetch[128];
-QueryInfo qi;
-
-	if (fetch_count < fcount) {	/* return a row from cache */
+	int			fetch_count = self->fetch_count;
+	int			fcount = self->fcount;
+	int			fetch_size,
+				offset = 0;
+	int			end_tuple = self->rowset_size + self->base;
+	char		corrected = FALSE;
+	TupleField *the_tuples = self->backend_tuples;
+	static char msgbuffer[MAX_MESSAGE_LEN + 1];
+	char		cmdbuffer[MAX_MESSAGE_LEN + 1]; /* QR_set_command() dups
+												 * this string so dont
+												 * need static */
+	char		fetch[128];
+	QueryInfo	qi;
+
+	if (fetch_count < fcount)
+	{							/* return a row from cache */
 		mylog("next_tuple: fetch_count < fcount: returning tuple %d, fcount = %d\n", fetch_count, fcount);
-		self->tupleField = the_tuples + (fetch_count * self->num_fields); /* next row */
+		self->tupleField = the_tuples + (fetch_count * self->num_fields);		/* next row */
 		self->fetch_count++;
 		return TRUE;
 	}
-	else if (self->fcount < self->cache_size) {   /* last row from cache */
-		  /*	We are done because we didn't even get CACHE_SIZE tuples */
-		  mylog("next_tuple: fcount < CACHE_SIZE: fcount = %d, fetch_count = %d\n", fcount, fetch_count);
-		  self->tupleField = NULL;
-		  self->status = PGRES_END_TUPLES;
-		  return -1;	/* end of tuples */
+	else if (self->fcount < self->cache_size)
+	{							/* last row from cache */
+		/* We are done because we didn't even get CACHE_SIZE tuples */
+		mylog("next_tuple: fcount < CACHE_SIZE: fcount = %d, fetch_count = %d\n", fcount, fetch_count);
+		self->tupleField = NULL;
+		self->status = PGRES_END_TUPLES;
+		return -1;				/* end of tuples */
 	}
-	else {	
-		/*	See if we need to fetch another group of rows.
-			We may be being called from send_query(), and
-			if so, don't send another fetch, just fall through
-			and read the tuples.
-		*/
+	else
+	{
+
+		/*
+		 * See if we need to fetch another group of rows. We may be being
+		 * called from send_query(), and if so, don't send another fetch,
+		 * just fall through and read the tuples.
+		 */
 		self->tupleField = NULL;
 
-		if ( ! self->inTuples) {
+		if (!self->inTuples)
+		{
 
-			if ( ! globals.use_declarefetch) {
+			if (!globals.use_declarefetch)
+			{
 				mylog("next_tuple: ALL_ROWS: done, fcount = %d, fetch_count = %d\n", fcount, fetch_count);
 				self->tupleField = NULL;
 				self->status = PGRES_END_TUPLES;
-				return -1;	/* end of tuples */
+				return -1;		/* end of tuples */
 			}
 
-			if (self->base == fcount) {		/* not a correction */
+			if (self->base == fcount)
+			{					/* not a correction */
 
-				/*	Determine the optimum cache size.  */
+				/* Determine the optimum cache size.  */
 				if (globals.fetch_max % self->rowset_size == 0)
 					fetch_size = globals.fetch_max;
 				else if (self->rowset_size < globals.fetch_max)
@@ -390,9 +420,10 @@ QueryInfo qi;
 					fetch_size = self->rowset_size;
 
 				self->cache_size = fetch_size;
-				self->fetch_count = 1;		
-			} 
-			else {	/* need to correct */
+				self->fetch_count = 1;
+			}
+			else
+			{					/* need to correct */
 
 				corrected = TRUE;
 
@@ -407,8 +438,9 @@ QueryInfo qi;
 
 
 			self->backend_tuples = (TupleField *) realloc(self->backend_tuples, self->num_fields * sizeof(TupleField) * self->cache_size);
-			if ( ! self->backend_tuples) {
-				self->status = PGRES_FATAL_ERROR; 
+			if (!self->backend_tuples)
+			{
+				self->status = PGRES_FATAL_ERROR;
 				QR_set_message(self, "Out of memory while reading tuples.");
 				return FALSE;
 			}
@@ -416,29 +448,34 @@ QueryInfo qi;
 
 			mylog("next_tuple: sending actual fetch (%d) query '%s'\n", fetch_size, fetch);
 
-			/*	don't read ahead for the next tuple (self) ! */
+			/* don't read ahead for the next tuple (self) ! */
 			qi.row_size = self->cache_size;
 			qi.result_in = self;
 			qi.cursor = NULL;
 			res = CC_send_query(self->conn, fetch, &qi);
-			if (res == NULL) {
+			if (res == NULL)
+			{
 				self->status = PGRES_FATAL_ERROR;
 				QR_set_message(self, "Error fetching next group.");
 				return FALSE;
 			}
 			self->inTuples = TRUE;
 		}
-		else {
+		else
+		{
 			mylog("next_tuple: inTuples = true, falling through: fcount = %d, fetch_count = %d\n", self->fcount, self->fetch_count);
-			/*	This is a pre-fetch (fetching rows right after query
-				but before any real SQLFetch() calls.  This is done
-				so the field attributes are available.
-			*/
+
+			/*
+			 * This is a pre-fetch (fetching rows right after query but
+			 * before any real SQLFetch() calls.  This is done so the
+			 * field attributes are available.
+			 */
 			self->fetch_count = 0;
 		}
 	}
 
-	if ( ! corrected) {
+	if (!corrected)
+	{
 		self->base = 0;
 		self->fcount = 0;
 	}
@@ -447,107 +484,118 @@ QueryInfo qi;
 	sock = CC_get_socket(self->conn);
 	self->tupleField = NULL;
 
-	for ( ; ;) {
+	for (;;)
+	{
 
 		id = SOCK_get_char(sock);
 
-		switch (id) {
-		case 'T': /* Tuples within tuples cannot be handled */
-			self->status = PGRES_BAD_RESPONSE;
-			QR_set_message(self, "Tuples within tuples cannot be handled");
-			return FALSE;
-		case 'B': /* Tuples in binary format */
-		case 'D': /* Tuples in ASCII format  */
-
-			if ( ! globals.use_declarefetch && self->fcount > 0 && ! (self->fcount % TUPLE_MALLOC_INC)) {
-				size_t old_size = self->fcount * self->num_fields * sizeof(TupleField);
-				mylog("REALLOC: old_size = %d\n", old_size);
+		switch (id)
+		{
+			case 'T':			/* Tuples within tuples cannot be handled */
+				self->status = PGRES_BAD_RESPONSE;
+				QR_set_message(self, "Tuples within tuples cannot be handled");
+				return FALSE;
+			case 'B':			/* Tuples in binary format */
+			case 'D':			/* Tuples in ASCII format  */
+
+				if (!globals.use_declarefetch && self->fcount > 0 && !(self->fcount % TUPLE_MALLOC_INC))
+				{
+					size_t		old_size = self->fcount * self->num_fields * sizeof(TupleField);
+
+					mylog("REALLOC: old_size = %d\n", old_size);
+
+					self->backend_tuples = (TupleField *) realloc(self->backend_tuples, old_size + (self->num_fields * sizeof(TupleField) * TUPLE_MALLOC_INC));
+					if (!self->backend_tuples)
+					{
+						self->status = PGRES_FATAL_ERROR;
+						QR_set_message(self, "Out of memory while reading tuples.");
+						return FALSE;
+					}
+				}
 
-				self->backend_tuples = (TupleField *) realloc(self->backend_tuples, old_size + (self->num_fields * sizeof(TupleField) * TUPLE_MALLOC_INC));
-				if ( ! self->backend_tuples) {
-					self->status = PGRES_FATAL_ERROR; 
-					QR_set_message(self, "Out of memory while reading tuples.");
+				if (!QR_read_tuple(self, (char) (id == 0)))
+				{
+					self->status = PGRES_BAD_RESPONSE;
+					QR_set_message(self, "Error reading the tuple");
 					return FALSE;
 				}
-			}
 
-			if ( ! QR_read_tuple(self, (char) (id == 0))) {
-				self->status = PGRES_BAD_RESPONSE;
-				QR_set_message(self, "Error reading the tuple");
-				return FALSE;
-			}
-			
-			self->fcount++;
-			break;	/* continue reading */
+				self->fcount++;
+				break;			/* continue reading */
 
 
-		case 'C': /* End of tuple list */
-			SOCK_get_string(sock, cmdbuffer, MAX_MESSAGE_LEN);
-			QR_set_command(self, cmdbuffer);
+			case 'C':			/* End of tuple list */
+				SOCK_get_string(sock, cmdbuffer, MAX_MESSAGE_LEN);
+				QR_set_command(self, cmdbuffer);
 
-			mylog("end of tuple list -- setting inUse to false: this = %u\n", self);
+				mylog("end of tuple list -- setting inUse to false: this = %u\n", self);
 
-			self->inTuples = FALSE;
-			if (self->fcount > 0) {
+				self->inTuples = FALSE;
+				if (self->fcount > 0)
+				{
 
-				qlog("    [ fetched %d rows ]\n", self->fcount);
-				mylog("_next_tuple: 'C' fetch_max && fcount = %d\n", self->fcount);
+					qlog("    [ fetched %d rows ]\n", self->fcount);
+					mylog("_next_tuple: 'C' fetch_max && fcount = %d\n", self->fcount);
 
-				/*  set to first row */
-				self->tupleField = self->backend_tuples + (offset * self->num_fields);
-				return TRUE;
-			} 
-			else { /*	We are surely done here (we read 0 tuples) */
-				qlog("    [ fetched 0 rows ]\n");
-				mylog("_next_tuple: 'C': DONE (fcount == 0)\n");
-				return -1;	/* end of tuples */
-			}
+					/* set to first row */
+					self->tupleField = self->backend_tuples + (offset * self->num_fields);
+					return TRUE;
+				}
+				else
+				{				/* We are surely done here (we read 0
+								 * tuples) */
+					qlog("    [ fetched 0 rows ]\n");
+					mylog("_next_tuple: 'C': DONE (fcount == 0)\n");
+					return -1;	/* end of tuples */
+				}
 
-		case 'E': /* Error */
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
-			QR_set_message(self, msgbuffer);
-			self->status = PGRES_FATAL_ERROR;
+			case 'E':			/* Error */
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
+				QR_set_message(self, msgbuffer);
+				self->status = PGRES_FATAL_ERROR;
 
-			if ( ! strncmp(msgbuffer, "FATAL", 5))
-				CC_set_no_trans(self->conn);
+				if (!strncmp(msgbuffer, "FATAL", 5))
+					CC_set_no_trans(self->conn);
 
-			qlog("ERROR from backend in next_tuple: '%s'\n", msgbuffer);
+				qlog("ERROR from backend in next_tuple: '%s'\n", msgbuffer);
 
-			return FALSE;
+				return FALSE;
 
-		case 'N': /* Notice */
-			SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
-			QR_set_message(self, msgbuffer);
-			self->status = PGRES_NONFATAL_ERROR;
-			qlog("NOTICE from backend in next_tuple: '%s'\n", msgbuffer);
-			continue;
-
-		default: /* this should only happen if the backend dumped core */
-			mylog("QR_next_tuple: Unexpected result from backend: id = '%c' (%d)\n", id, id);
-			qlog("QR_next_tuple: Unexpected result from backend: id = '%c' (%d)\n", id, id);
-			QR_set_message(self, "Unexpected result from backend. It probably crashed");
-			self->status = PGRES_FATAL_ERROR;
-			CC_set_no_trans(self->conn);
-			return FALSE;
+			case 'N':			/* Notice */
+				SOCK_get_string(sock, msgbuffer, ERROR_MSG_LENGTH);
+				QR_set_message(self, msgbuffer);
+				self->status = PGRES_NONFATAL_ERROR;
+				qlog("NOTICE from backend in next_tuple: '%s'\n", msgbuffer);
+				continue;
+
+			default:			/* this should only happen if the backend
+								 * dumped core */
+				mylog("QR_next_tuple: Unexpected result from backend: id = '%c' (%d)\n", id, id);
+				qlog("QR_next_tuple: Unexpected result from backend: id = '%c' (%d)\n", id, id);
+				QR_set_message(self, "Unexpected result from backend. It probably crashed");
+				self->status = PGRES_FATAL_ERROR;
+				CC_set_no_trans(self->conn);
+				return FALSE;
 		}
 	}
 	return TRUE;
 }
 
 char
-QR_read_tuple(QResultClass *self, char binary)
+QR_read_tuple(QResultClass * self, char binary)
 {
-Int2 field_lf;
-TupleField *this_tuplefield;
-char bmp, bitmap[MAX_FIELDS];        /* Max. len of the bitmap */
-Int2 bitmaplen;                       /* len of the bitmap in bytes */
-Int2 bitmap_pos;
-Int2 bitcnt;
-Int4 len;
-char *buffer;
-int num_fields = self->num_fields;	/* speed up access */
-SocketClass *sock = CC_get_socket(self->conn);
-ColumnInfoClass *flds;
+	Int2		field_lf;
+	TupleField *this_tuplefield;
+	char		bmp,
+				bitmap[MAX_FIELDS];		/* Max. len of the bitmap */
+	Int2		bitmaplen;		/* len of the bitmap in bytes */
+	Int2		bitmap_pos;
+	Int2		bitcnt;
+	Int4		len;
+	char	   *buffer;
+	int			num_fields = self->num_fields;	/* speed up access */
+	SocketClass *sock = CC_get_socket(self->conn);
+	ColumnInfoClass *flds;
 
 
 	/* set the current row to read the fields into */
@@ -558,31 +606,36 @@ ColumnInfoClass *flds;
 		bitmaplen++;
 
 	/*
-		At first the server sends a bitmap that indicates which
-		database fields are null
-	*/
+	 * At first the server sends a bitmap that indicates which database
+	 * fields are null
+	 */
 	SOCK_get_n_char(sock, bitmap, bitmaplen);
 
 	bitmap_pos = 0;
 	bitcnt = 0;
 	bmp = bitmap[bitmap_pos];
 
-	for(field_lf = 0; field_lf < num_fields; field_lf++) {
+	for (field_lf = 0; field_lf < num_fields; field_lf++)
+	{
 		/* Check if the current field is NULL */
-		if(!(bmp & 0200)) {
+		if (!(bmp & 0200))
+		{
 			/* YES, it is NULL ! */
 			this_tuplefield[field_lf].len = 0;
 			this_tuplefield[field_lf].value = 0;
-		} else {
+		}
+		else
+		{
+
 			/*
-			NO, the field is not null. so get at first the
-			length of the field (four bytes)
-			*/
+			 * NO, the field is not null. so get at first the length of
+			 * the field (four bytes)
+			 */
 			len = SOCK_get_int(sock, VARHDRSZ);
 			if (!binary)
 				len -= VARHDRSZ;
 
-			buffer = (char *)malloc(len+1);
+			buffer = (char *) malloc(len + 1);
 			SOCK_get_n_char(sock, buffer, len);
 			buffer[len] = '\0';
 
@@ -591,27 +644,31 @@ ColumnInfoClass *flds;
 			this_tuplefield[field_lf].len = len;
 			this_tuplefield[field_lf].value = buffer;
 
-			/*	This can be used to set the longest length of the column for any
-				row in the tuple cache.  It would not be accurate for varchar and
-				text fields to use this since a tuple cache is only 100 rows.
-				Bpchar can be handled since the strlen of all rows is fixed,
-				assuming there are not 100 nulls in a row!
-			*/
+			/*
+			 * This can be used to set the longest length of the column
+			 * for any row in the tuple cache.	It would not be accurate
+			 * for varchar and text fields to use this since a tuple cache
+			 * is only 100 rows. Bpchar can be handled since the strlen of
+			 * all rows is fixed, assuming there are not 100 nulls in a
+			 * row!
+			 */
 
 			flds = self->fields;
 			if (flds->display_size[field_lf] < len)
 				flds->display_size[field_lf] = len;
 		}
+
 		/*
-		Now adjust for the next bit to be scanned in the
-		next loop.
-		*/
+		 * Now adjust for the next bit to be scanned in the next loop.
+		 */
 		bitcnt++;
-		if (BYTELEN == bitcnt) {
+		if (BYTELEN == bitcnt)
+		{
 			bitmap_pos++;
 			bmp = bitmap[bitmap_pos];
 			bitcnt = 0;
-		} else
+		}
+		else
 			bmp <<= 1;
 	}
 	self->currTuple++;
diff --git a/src/interfaces/odbc/qresult.h b/src/interfaces/odbc/qresult.h
index 93f11cee1f4ac5243e1b46748392b6657a9e264b..0c284ca0170086016ac92c7693d592fe7672602e 100644
--- a/src/interfaces/odbc/qresult.h
+++ b/src/interfaces/odbc/qresult.h
@@ -1,9 +1,9 @@
 
-/* File:            qresult.h
+/* File:			qresult.h
  *
- * Description:     See "qresult.c"
+ * Description:		See "qresult.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -17,68 +17,75 @@
 #include "psqlodbc.h"
 #include "tuple.h"
 
-enum QueryResultCode_ {
-  PGRES_EMPTY_QUERY = 0,
-  PGRES_COMMAND_OK,  /* a query command that doesn't return */
-                    /* anything was executed properly by the backend */
-  PGRES_TUPLES_OK,  /* a query command that returns tuples */
-                   /* was executed properly by the backend, PGresult */
-                   /* contains the resulttuples */
-  PGRES_COPY_OUT,
-  PGRES_COPY_IN,
-  PGRES_BAD_RESPONSE, /* an unexpected response was recv'd from the backend */
-  PGRES_NONFATAL_ERROR,
-  PGRES_FATAL_ERROR,
-  PGRES_FIELDS_OK,	/* field information from a query was successful */
-  PGRES_END_TUPLES,
-  PGRES_INTERNAL_ERROR
+enum QueryResultCode_
+{
+	PGRES_EMPTY_QUERY = 0,
+	PGRES_COMMAND_OK,			/* a query command that doesn't return */
+	/* anything was executed properly by the backend */
+	PGRES_TUPLES_OK,			/* a query command that returns tuples */
+	/* was executed properly by the backend, PGresult */
+	/* contains the resulttuples */
+	PGRES_COPY_OUT,
+	PGRES_COPY_IN,
+	PGRES_BAD_RESPONSE,			/* an unexpected response was recv'd from
+								 * the backend */
+	PGRES_NONFATAL_ERROR,
+	PGRES_FATAL_ERROR,
+	PGRES_FIELDS_OK,			/* field information from a query was
+								 * successful */
+	PGRES_END_TUPLES,
+	PGRES_INTERNAL_ERROR
 };
 typedef enum QueryResultCode_ QueryResultCode;
 
 
-struct QResultClass_ {
-    ColumnInfoClass *fields;			/* the Column information */
-    TupleListClass *manual_tuples;		/* manual result tuple list */
-	ConnectionClass *conn;				/* the connection this result is using (backend) */
+struct QResultClass_
+{
+	ColumnInfoClass *fields;	/* the Column information */
+	TupleListClass *manual_tuples;		/* manual result tuple list */
+	ConnectionClass *conn;		/* the connection this result is using
+								 * (backend) */
 
-	/*	Stuff for declare/fetch tuples */
-	int fetch_count;					/* logical rows read so far */
-	int fcount;							/* actual rows read in the fetch */
-	int currTuple;
-	int base;
+	/* Stuff for declare/fetch tuples */
+	int			fetch_count;	/* logical rows read so far */
+	int			fcount;			/* actual rows read in the fetch */
+	int			currTuple;
+	int			base;
 
-	int num_fields;						/* number of fields in the result */
-	int cache_size;
-	int rowset_size;
+	int			num_fields;		/* number of fields in the result */
+	int			cache_size;
+	int			rowset_size;
 
-    QueryResultCode status;
+	QueryResultCode status;
 
-    char *message;
-	char *cursor;						/* The name of the cursor for select statements */
-	char *command;
-	char *notice;
+	char	   *message;
+	char	   *cursor;			/* The name of the cursor for select
+								 * statements */
+	char	   *command;
+	char	   *notice;
 
-	TupleField *backend_tuples;			/* data from the backend (the tuple cache) */
-	TupleField *tupleField;				/* current backend tuple being retrieved */
+	TupleField *backend_tuples; /* data from the backend (the tuple cache) */
+	TupleField *tupleField;		/* current backend tuple being retrieved */
 
-	char inTuples;						/* is a fetch of rows from the backend in progress? */
+	char		inTuples;		/* is a fetch of rows from the backend in
+								 * progress? */
 };
 
 #define QR_get_fields(self)				(self->fields)
 
 
 /*	These functions are for retrieving data from the qresult */
-#define QR_get_value_manual(self, tupleno, fieldno)	(TL_get_fieldval(self->manual_tuples, tupleno, fieldno))
-#define QR_get_value_backend(self, fieldno)			(self->tupleField[fieldno].value) 
+#define QR_get_value_manual(self, tupleno, fieldno) (TL_get_fieldval(self->manual_tuples, tupleno, fieldno))
+#define QR_get_value_backend(self, fieldno)			(self->tupleField[fieldno].value)
 #define QR_get_value_backend_row(self, tupleno, fieldno) ((self->backend_tuples + (tupleno * self->num_fields))[fieldno].value)
 
 /*	These functions are used by both manual and backend results */
 #define QR_NumResultCols(self)				(CI_get_num_fields(self->fields))
 #define QR_get_fieldname(self, fieldno_)	(CI_get_fieldname(self->fields, fieldno_))
-#define QR_get_fieldsize(self, fieldno_)	(CI_get_fieldsize(self->fields, fieldno_))    
-#define QR_get_display_size(self, fieldno_)	(CI_get_display_size(self->fields, fieldno_))    
-#define QR_get_atttypmod(self, fieldno_)	(CI_get_atttypmod(self->fields, fieldno_))    
-#define QR_get_field_type(self, fieldno_)   (CI_get_oid(self->fields, fieldno_))
+#define QR_get_fieldsize(self, fieldno_)	(CI_get_fieldsize(self->fields, fieldno_))
+#define QR_get_display_size(self, fieldno_) (CI_get_display_size(self->fields, fieldno_))
+#define QR_get_atttypmod(self, fieldno_)	(CI_get_atttypmod(self->fields, fieldno_))
+#define QR_get_field_type(self, fieldno_)	(CI_get_oid(self->fields, fieldno_))
 
 /*	These functions are used only for manual result sets */
 #define QR_get_num_tuples(self)				(self->manual_tuples ? TL_get_num_tuples(self->manual_tuples) : self->fcount)
@@ -99,20 +106,20 @@ struct QResultClass_ {
 
 /*	Core Functions */
 QResultClass *QR_Constructor(void);
-void QR_Destructor(QResultClass *self);
-char QR_read_tuple(QResultClass *self, char binary);
-int QR_next_tuple(QResultClass *self);
-int QR_close(QResultClass *self);
-char QR_fetch_tuples(QResultClass *self, ConnectionClass *conn, char *cursor);
-void QR_free_memory(QResultClass *self);
-void QR_set_command(QResultClass *self, char *msg);
-void QR_set_notice(QResultClass *self, char *msg);
-
-void QR_set_num_fields(QResultClass *self, int new_num_fields); /* manual result only */
-
-void QR_inc_base(QResultClass *self, int base_inc);
-void QR_set_cache_size(QResultClass *self, int cache_size);
-void QR_set_rowset_size(QResultClass *self, int rowset_size);
-void QR_set_position(QResultClass *self, int pos);
- 
+void		QR_Destructor(QResultClass * self);
+char		QR_read_tuple(QResultClass * self, char binary);
+int			QR_next_tuple(QResultClass * self);
+int			QR_close(QResultClass * self);
+char		QR_fetch_tuples(QResultClass * self, ConnectionClass * conn, char *cursor);
+void		QR_free_memory(QResultClass * self);
+void		QR_set_command(QResultClass * self, char *msg);
+void		QR_set_notice(QResultClass * self, char *msg);
+
+void		QR_set_num_fields(QResultClass * self, int new_num_fields); /* manual result only */
+
+void		QR_inc_base(QResultClass * self, int base_inc);
+void		QR_set_cache_size(QResultClass * self, int cache_size);
+void		QR_set_rowset_size(QResultClass * self, int rowset_size);
+void		QR_set_position(QResultClass * self, int pos);
+
 #endif
diff --git a/src/interfaces/odbc/resource.h b/src/interfaces/odbc/resource.h
index cfe83cf10e8dc16db54fe144d9c4326213c597a6..60e0e61f454135b375ded7cbb15746cd005b3684 100644
--- a/src/interfaces/odbc/resource.h
+++ b/src/interfaces/odbc/resource.h
@@ -2,59 +2,59 @@
 /* Microsoft Developer Studio generated include file. */
 /* Used by psqlodbc.rc */
 
-#define IDS_BADDSN                      1
-#define IDS_MSGTITLE                    2
-#define DLG_OPTIONS_DRV                 102
-#define DLG_OPTIONS_DS                  103
-#define IDC_DSNAME                      400
-#define IDC_DSNAMETEXT                  401
-#define IDC_DESC                        404
-#define IDC_SERVER                      407
-#define IDC_DATABASE                    408
-#define DLG_CONFIG                      1001
-#define IDC_PORT                        1002
-#define IDC_USER                        1006
-#define IDC_PASSWORD                    1009
-#define DS_READONLY                     1011
-#define DS_SHOWOIDCOLUMN                1012
-#define DS_FAKEOIDINDEX                 1013
-#define DRV_COMMLOG                     1014
-#define IDC_DATASOURCE                  1018
-#define DRV_OPTIMIZER                   1019
-#define DS_CONNSETTINGS                 1020
-#define IDC_DRIVER                      1021
-#define DRV_CONNSETTINGS                1031
-#define DRV_UNIQUEINDEX                 1032
-#define DRV_UNKNOWN_MAX                 1035
-#define DRV_UNKNOWN_DONTKNOW            1036
-#define DRV_READONLY                    1037
-#define IDC_DESCTEXT                    1039
-#define DRV_MSG_LABEL                   1040
-#define DRV_UNKNOWN_LONGEST             1041
-#define DRV_TEXT_LONGVARCHAR            1043
-#define DRV_UNKNOWNS_LONGVARCHAR        1044
-#define DRV_CACHE_SIZE                  1045
-#define DRV_VARCHAR_SIZE                1046
-#define DRV_LONGVARCHAR_SIZE            1047
-#define IDDEFAULTS                      1048
-#define DRV_USEDECLAREFETCH             1049
-#define DRV_BOOLS_CHAR                  1050
-#define DS_SHOWSYSTEMTABLES             1051
-#define DRV_EXTRASYSTABLEPREFIXES       1051
-#define DS_ROWVERSIONING                1052
-#define DRV_PARSE                       1052
-#define DRV_CANCELASFREESTMT            1053
-#define IDC_OPTIONS                     1054
-#define DRV_KSQO                        1055
-#define DS_PG64                         1057
+#define IDS_BADDSN						1
+#define IDS_MSGTITLE					2
+#define DLG_OPTIONS_DRV					102
+#define DLG_OPTIONS_DS					103
+#define IDC_DSNAME						400
+#define IDC_DSNAMETEXT					401
+#define IDC_DESC						404
+#define IDC_SERVER						407
+#define IDC_DATABASE					408
+#define DLG_CONFIG						1001
+#define IDC_PORT						1002
+#define IDC_USER						1006
+#define IDC_PASSWORD					1009
+#define DS_READONLY						1011
+#define DS_SHOWOIDCOLUMN				1012
+#define DS_FAKEOIDINDEX					1013
+#define DRV_COMMLOG						1014
+#define IDC_DATASOURCE					1018
+#define DRV_OPTIMIZER					1019
+#define DS_CONNSETTINGS					1020
+#define IDC_DRIVER						1021
+#define DRV_CONNSETTINGS				1031
+#define DRV_UNIQUEINDEX					1032
+#define DRV_UNKNOWN_MAX					1035
+#define DRV_UNKNOWN_DONTKNOW			1036
+#define DRV_READONLY					1037
+#define IDC_DESCTEXT					1039
+#define DRV_MSG_LABEL					1040
+#define DRV_UNKNOWN_LONGEST				1041
+#define DRV_TEXT_LONGVARCHAR			1043
+#define DRV_UNKNOWNS_LONGVARCHAR		1044
+#define DRV_CACHE_SIZE					1045
+#define DRV_VARCHAR_SIZE				1046
+#define DRV_LONGVARCHAR_SIZE			1047
+#define IDDEFAULTS						1048
+#define DRV_USEDECLAREFETCH				1049
+#define DRV_BOOLS_CHAR					1050
+#define DS_SHOWSYSTEMTABLES				1051
+#define DRV_EXTRASYSTABLEPREFIXES		1051
+#define DS_ROWVERSIONING				1052
+#define DRV_PARSE						1052
+#define DRV_CANCELASFREESTMT			1053
+#define IDC_OPTIONS						1054
+#define DRV_KSQO						1055
+#define DS_PG64							1057
 
 /* Next default values for new objects */
 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        104
-#define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1060
-#define _APS_NEXT_SYMED_VALUE           101
+#define _APS_NEXT_RESOURCE_VALUE		104
+#define _APS_NEXT_COMMAND_VALUE			40001
+#define _APS_NEXT_CONTROL_VALUE			1060
+#define _APS_NEXT_SYMED_VALUE			101
 #endif
 #endif
diff --git a/src/interfaces/odbc/results.c b/src/interfaces/odbc/results.c
index 3ef098a91b74ee21e439713ebac7ddf21aaa62b3..c3687ec250b2669b8ab62f1817b4d65fcde23abb 100644
--- a/src/interfaces/odbc/results.c
+++ b/src/interfaces/odbc/results.c
@@ -1,16 +1,16 @@
-/* Module:          results.c
+/* Module:			results.c
  *
- * Description:     This module contains functions related to 
- *                  retrieving result information through the ODBC API.
+ * Description:		This module contains functions related to
+ *					retrieving result information through the ODBC API.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   SQLRowCount, SQLNumResultCols, SQLDescribeCol, SQLColAttributes,
- *                  SQLGetData, SQLFetch, SQLExtendedFetch, 
- *                  SQLMoreResults(NI), SQLSetPos, SQLSetScrollOptions(NI),
- *                  SQLSetCursorName, SQLGetCursorName
+ * API functions:	SQLRowCount, SQLNumResultCols, SQLDescribeCol, SQLColAttributes,
+ *					SQLGetData, SQLFetch, SQLExtendedFetch,
+ *					SQLMoreResults(NI), SQLSetPos, SQLSetScrollOptions(NI),
+ *					SQLSetCursorName, SQLGetCursorName
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -27,7 +27,7 @@
 #include "bind.h"
 #include "qresult.h"
 #include "convert.h"
-#include "pgtypes.h" 
+#include "pgtypes.h"
 
 #include <stdio.h>
 
@@ -43,103 +43,122 @@ extern GLOBAL_VALUES globals;
 
 
 
-RETCODE SQL_API SQLRowCount(
-        HSTMT      hstmt,
-        SDWORD FAR *pcrow)
+RETCODE SQL_API
+SQLRowCount(
+			HSTMT hstmt,
+			SDWORD FAR * pcrow)
 {
-static char *func="SQLRowCount";
-StatementClass *stmt = (StatementClass *) hstmt;
-QResultClass *res;
-char *msg, *ptr;
-
-	if ( ! stmt) {
+	static char *func = "SQLRowCount";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	QResultClass *res;
+	char	   *msg,
+			   *ptr;
+
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
-	if (stmt->manual_result) {
+	if (stmt->manual_result)
+	{
 		if (pcrow)
 			*pcrow = -1;
 		return SQL_SUCCESS;
 	}
 
-	if(stmt->statement_type == STMT_TYPE_SELECT) {
-		if (stmt->status == STMT_FINISHED) {
+	if (stmt->statement_type == STMT_TYPE_SELECT)
+	{
+		if (stmt->status == STMT_FINISHED)
+		{
 			res = SC_get_Result(stmt);
 
-			if(res && pcrow) {
+			if (res && pcrow)
+			{
 				*pcrow = globals.use_declarefetch ? -1 : QR_get_num_tuples(res);
 				return SQL_SUCCESS;
 			}
 		}
-	} else {
+	}
+	else
+	{
 
 		res = SC_get_Result(stmt);
-		if (res && pcrow) {
+		if (res && pcrow)
+		{
 			msg = QR_get_command(res);
 			mylog("*** msg = '%s'\n", msg);
-			trim(msg);	/*	get rid of trailing spaces */
+			trim(msg);			/* get rid of trailing spaces */
 			ptr = strrchr(msg, ' ');
-			if (ptr) {
-				*pcrow = atoi(ptr+1);
+			if (ptr)
+			{
+				*pcrow = atoi(ptr + 1);
 				mylog("**** SQLRowCount(): THE ROWS: *pcrow = %d\n", *pcrow);
 			}
-			else {
+			else
+			{
 				*pcrow = -1;
 
 				mylog("**** SQLRowCount(): NO ROWS: *pcrow = %d\n", *pcrow);
 			}
 
-		return SQL_SUCCESS;
+			return SQL_SUCCESS;
 		}
 	}
 
 	SC_log_error(func, "Bad return value", stmt);
-	return SQL_ERROR;     
+	return SQL_ERROR;
 }
 
 
-/*      This returns the number of columns associated with the database */
-/*      attached to "hstmt". */
+/*		This returns the number of columns associated with the database */
+/*		attached to "hstmt". */
 
 
-RETCODE SQL_API SQLNumResultCols(
-        HSTMT     hstmt,
-        SWORD FAR *pccol)
-{       
-static char *func="SQLNumResultCols";
-StatementClass *stmt = (StatementClass *) hstmt;
-QResultClass *result;
-char parse_ok;
+RETCODE SQL_API
+SQLNumResultCols(
+				 HSTMT hstmt,
+				 SWORD FAR * pccol)
+{
+	static char *func = "SQLNumResultCols";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	QResultClass *result;
+	char		parse_ok;
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	SC_clear_error(stmt);    
+	SC_clear_error(stmt);
 
 	parse_ok = FALSE;
-	if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT) {
+	if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT)
+	{
 
-		if (stmt->parse_status == STMT_PARSE_NONE) {
+		if (stmt->parse_status == STMT_PARSE_NONE)
+		{
 			mylog("SQLNumResultCols: calling parse_statement on stmt=%u\n", stmt);
 			parse_statement(stmt);
 		}
 
-		if (stmt->parse_status != STMT_PARSE_FATAL) {
+		if (stmt->parse_status != STMT_PARSE_FATAL)
+		{
 			parse_ok = TRUE;
 			*pccol = stmt->nfld;
 			mylog("PARSE: SQLNumResultCols: *pccol = %d\n", *pccol);
 		}
 	}
 
-	if ( ! parse_ok) {
+	if (!parse_ok)
+	{
 
-		SC_pre_execute(stmt);       
+		SC_pre_execute(stmt);
 		result = SC_get_Result(stmt);
 
 		mylog("SQLNumResultCols: result = %u, status = %d, numcols = %d\n", result, stmt->status, result != NULL ? QR_NumResultCols(result) : -1);
-		if (( ! result) || ((stmt->status != STMT_FINISHED) && (stmt->status != STMT_PREMATURE)) ) {
+		if ((!result) || ((stmt->status != STMT_FINISHED) && (stmt->status != STMT_PREMATURE)))
+		{
 			/* no query has been executed on this statement */
 			stmt->errornumber = STMT_SEQUENCE_ERROR;
 			stmt->errormsg = "No query has been executed with that handle";
@@ -154,59 +173,65 @@ char parse_ok;
 }
 
 
-/*      -       -       -       -       -       -       -       -       - */
+/*		-		-		-		-		-		-		-		-		- */
 
 
 
-/*      Return information about the database column the user wants */
-/*      information about. */
-RETCODE SQL_API SQLDescribeCol(
-        HSTMT      hstmt,
-        UWORD      icol,
-        UCHAR  FAR *szColName,
-        SWORD      cbColNameMax,
-        SWORD  FAR *pcbColName,
-        SWORD  FAR *pfSqlType,
-        UDWORD FAR *pcbColDef,
-        SWORD  FAR *pibScale,
-        SWORD  FAR *pfNullable)
+/*		Return information about the database column the user wants */
+/*		information about. */
+RETCODE SQL_API
+SQLDescribeCol(
+			   HSTMT hstmt,
+			   UWORD icol,
+			   UCHAR FAR * szColName,
+			   SWORD cbColNameMax,
+			   SWORD FAR * pcbColName,
+			   SWORD FAR * pfSqlType,
+			   UDWORD FAR * pcbColDef,
+			   SWORD FAR * pibScale,
+			   SWORD FAR * pfNullable)
 {
-static char *func="SQLDescribeCol";
-    /* gets all the information about a specific column */
-StatementClass *stmt = (StatementClass *) hstmt;
-QResultClass *res;
-char *col_name = NULL;
-Int4 fieldtype = 0;
-int precision = 0;
-ConnInfo *ci;
-char parse_ok;
-char buf[255];
-int len = 0;
-RETCODE result;
+	static char *func = "SQLDescribeCol";
+
+	/* gets all the information about a specific column */
+	StatementClass *stmt = (StatementClass *) hstmt;
+	QResultClass *res;
+	char	   *col_name = NULL;
+	Int4		fieldtype = 0;
+	int			precision = 0;
+	ConnInfo   *ci;
+	char		parse_ok;
+	char		buf[255];
+	int			len = 0;
+	RETCODE		result;
 
 
 	mylog("%s: entering...\n", func);
 
-    if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
-        return SQL_INVALID_HANDLE;
+		return SQL_INVALID_HANDLE;
 	}
 
 	ci = &(stmt->hdbc->connInfo);
 
-    SC_clear_error(stmt);
+	SC_clear_error(stmt);
 
-	/*	Dont check for bookmark column.  This is the responsibility
-		of the driver manager.  
-	*/
+	/*
+	 * Dont check for bookmark column.	This is the responsibility of the
+	 * driver manager.
+	 */
 
-	icol--;		/* use zero based column numbers */
+	icol--;						/* use zero based column numbers */
 
 
 	parse_ok = FALSE;
-	if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT) {
+	if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT)
+	{
 
-		if (stmt->parse_status == STMT_PARSE_NONE) {
+		if (stmt->parse_status == STMT_PARSE_NONE)
+		{
 			mylog("SQLDescribeCol: calling parse_statement on stmt=%u\n", stmt);
 			parse_statement(stmt);
 		}
@@ -214,9 +239,11 @@ RETCODE result;
 
 		mylog("PARSE: DescribeCol: icol=%d, stmt=%u, stmt->nfld=%d, stmt->fi=%u\n", icol, stmt, stmt->nfld, stmt->fi);
 
-		if (stmt->parse_status != STMT_PARSE_FATAL && stmt->fi && stmt->fi[icol]) {
+		if (stmt->parse_status != STMT_PARSE_FATAL && stmt->fi && stmt->fi[icol])
+		{
 
-			if (icol >= stmt->nfld) {
+			if (icol >= stmt->nfld)
+			{
 				stmt->errornumber = STMT_INVALID_COLUMN_NUMBER_ERROR;
 				stmt->errormsg = "Invalid column number in DescribeCol.";
 				SC_log_error(func, "", stmt);
@@ -235,16 +262,20 @@ RETCODE result;
 	}
 
 
-	/*	If couldn't parse it OR the field being described was not parsed (i.e., because
-		it was a function or expression, etc, then do it the old fashioned way.
-	*/
-	if ( ! parse_ok) {
+	/*
+	 * If couldn't parse it OR the field being described was not parsed
+	 * (i.e., because it was a function or expression, etc, then do it the
+	 * old fashioned way.
+	 */
+	if (!parse_ok)
+	{
 		SC_pre_execute(stmt);
-	
+
 		res = SC_get_Result(stmt);
 
 		mylog("**** SQLDescribeCol: res = %u, stmt->status = %d, !finished=%d, !premature=%d\n", res, stmt->status, stmt->status != STMT_FINISHED, stmt->status != STMT_PREMATURE);
-		if ( (NULL == res) || ((stmt->status != STMT_FINISHED) && (stmt->status != STMT_PREMATURE))) {
+		if ((NULL == res) || ((stmt->status != STMT_FINISHED) && (stmt->status != STMT_PREMATURE)))
+		{
 			/* no query has been executed on this statement */
 			stmt->errornumber = STMT_SEQUENCE_ERROR;
 			stmt->errormsg = "No query has been assigned to this statement.";
@@ -252,7 +283,8 @@ RETCODE result;
 			return SQL_ERROR;
 		}
 
-		if (icol >= QR_NumResultCols(res)) {
+		if (icol >= QR_NumResultCols(res))
+		{
 			stmt->errornumber = STMT_INVALID_COLUMN_NUMBER_ERROR;
 			stmt->errormsg = "Invalid column number in DescribeCol.";
 			sprintf(buf, "Col#=%d, #Cols=%d", icol, QR_NumResultCols(res));
@@ -261,9 +293,10 @@ RETCODE result;
 		}
 
 		col_name = QR_get_fieldname(res, icol);
-        fieldtype = QR_get_field_type(res, icol);
+		fieldtype = QR_get_field_type(res, icol);
 
-		precision = pgtype_precision(stmt, fieldtype, icol, globals.unknown_sizes);  /* atoi(ci->unknown_sizes) */
+		precision = pgtype_precision(stmt, fieldtype, icol, globals.unknown_sizes);		/* atoi(ci->unknown_sizes
+																						 * ) */
 	}
 
 	mylog("describeCol: col %d fieldname = '%s'\n", icol, col_name);
@@ -274,39 +307,43 @@ RETCODE result;
 	result = SQL_SUCCESS;
 
 	/************************/
-	/*		COLUMN NAME     */
+	/* COLUMN NAME	   */
 	/************************/
 	len = strlen(col_name);
 
 	if (pcbColName)
 		*pcbColName = len;
 
-	if (szColName) {
+	if (szColName)
+	{
 		strncpy_null(szColName, col_name, cbColNameMax);
 
-		if (len >= cbColNameMax)  {
+		if (len >= cbColNameMax)
+		{
 			result = SQL_SUCCESS_WITH_INFO;
 			stmt->errornumber = STMT_TRUNCATED;
 			stmt->errormsg = "The buffer was too small for the result.";
 		}
-    }
+	}
 
 
 	/************************/
-	/*		SQL TYPE        */
+	/* SQL TYPE		   */
 	/************************/
-    if (pfSqlType) {
-        *pfSqlType = pgtype_to_sqltype(stmt, fieldtype);
+	if (pfSqlType)
+	{
+		*pfSqlType = pgtype_to_sqltype(stmt, fieldtype);
 
 		mylog("describeCol: col %d *pfSqlType = %d\n", icol, *pfSqlType);
 	}
 
 	/************************/
-	/*		PRECISION       */
+	/* PRECISION	   */
 	/************************/
-    if (pcbColDef) {
+	if (pcbColDef)
+	{
 
-		if ( precision < 0)
+		if (precision < 0)
 			precision = 0;		/* "I dont know" */
 
 		*pcbColDef = precision;
@@ -315,94 +352,110 @@ RETCODE result;
 	}
 
 	/************************/
-	/*		SCALE           */
+	/* SCALE		   */
 	/************************/
-    if (pibScale) {
-        Int2 scale;
-        scale = pgtype_scale(stmt, fieldtype, icol);
-        if(scale == -1) { scale = 0; }
-        
-        *pibScale = scale;
+	if (pibScale)
+	{
+		Int2		scale;
+
+		scale = pgtype_scale(stmt, fieldtype, icol);
+		if (scale == -1)
+			scale = 0;
+
+		*pibScale = scale;
 		mylog("describeCol: col %d  *pibScale = %d\n", icol, *pibScale);
-    }
+	}
 
 	/************************/
-	/*		NULLABILITY     */
+	/* NULLABILITY	   */
 	/************************/
-    if (pfNullable) {
+	if (pfNullable)
+	{
 		*pfNullable = (parse_ok) ? stmt->fi[icol]->nullable : pgtype_nullable(stmt, fieldtype);
 
 		mylog("describeCol: col %d  *pfNullable = %d\n", icol, *pfNullable);
-    }
+	}
 
-    return result;
+	return result;
 }
 
-/*      Returns result column descriptor information for a result set. */
-
-RETCODE SQL_API SQLColAttributes(
-        HSTMT      hstmt,
-        UWORD      icol,
-        UWORD      fDescType,
-        PTR        rgbDesc,
-        SWORD      cbDescMax,
-        SWORD  FAR *pcbDesc,
-        SDWORD FAR *pfDesc)
+/*		Returns result column descriptor information for a result set. */
+
+RETCODE SQL_API
+SQLColAttributes(
+				 HSTMT hstmt,
+				 UWORD icol,
+				 UWORD fDescType,
+				 PTR rgbDesc,
+				 SWORD cbDescMax,
+				 SWORD FAR * pcbDesc,
+				 SDWORD FAR * pfDesc)
 {
-static char *func = "SQLColAttributes";
-StatementClass *stmt = (StatementClass *) hstmt;
-Int4 field_type = 0;
-ConnInfo *ci;
-int unknown_sizes;
-int cols = 0;
-char parse_ok;
-RETCODE result;
-char *p = NULL;
-int len = 0, value = 0;
+	static char *func = "SQLColAttributes";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	Int4		field_type = 0;
+	ConnInfo   *ci;
+	int			unknown_sizes;
+	int			cols = 0;
+	char		parse_ok;
+	RETCODE		result;
+	char	   *p = NULL;
+	int			len = 0,
+				value = 0;
 
 	mylog("%s: entering...\n", func);
 
-	if( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 	ci = &(stmt->hdbc->connInfo);
 
-	/*	Dont check for bookmark column.  This is the responsibility
-		of the driver manager.  For certain types of arguments, the column
-		number is ignored anyway, so it may be 0.
-	*/
+	/*
+	 * Dont check for bookmark column.	This is the responsibility of the
+	 * driver manager.	For certain types of arguments, the column number
+	 * is ignored anyway, so it may be 0.
+	 */
 
 	icol--;
 
-	unknown_sizes = globals.unknown_sizes;          /* atoi(ci->unknown_sizes); */
-	if (unknown_sizes == UNKNOWNS_AS_DONTKNOW)		/* not appropriate for SQLColAttributes() */
+	unknown_sizes = globals.unknown_sizes;		/* atoi(ci->unknown_sizes);
+												 *	*/
+	if (unknown_sizes == UNKNOWNS_AS_DONTKNOW)	/* not appropriate for
+												 * SQLColAttributes() */
 		unknown_sizes = UNKNOWNS_AS_MAX;
 
 	parse_ok = FALSE;
-	if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT) {
+	if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT)
+	{
 
-		if (stmt->parse_status == STMT_PARSE_NONE) {
+		if (stmt->parse_status == STMT_PARSE_NONE)
+		{
 			mylog("SQLColAttributes: calling parse_statement\n");
 			parse_statement(stmt);
 		}
 
 		cols = stmt->nfld;
 
-		/*	Column Count is a special case.  The Column number is ignored
-			in this case.
-		*/
-		if (fDescType == SQL_COLUMN_COUNT) {
+		/*
+		 * Column Count is a special case.	The Column number is ignored
+		 * in this case.
+		 */
+		if (fDescType == SQL_COLUMN_COUNT)
+		{
 			if (pfDesc)
 				*pfDesc = cols;
 
 			return SQL_SUCCESS;
 		}
 
-		if (stmt->parse_status != STMT_PARSE_FATAL && stmt->fi && stmt->fi[icol]) {
+		if (stmt->parse_status != STMT_PARSE_FATAL && stmt->fi && stmt->fi[icol])
+		{
 
-			if (icol >= cols) {
+			if (icol >= cols)
+			{
 				stmt->errornumber = STMT_INVALID_COLUMN_NUMBER_ERROR;
 				stmt->errormsg = "Invalid column number in DescribeCol.";
 				SC_log_error(func, "", stmt);
@@ -415,12 +468,14 @@ int len = 0, value = 0;
 		}
 	}
 
-	if ( ! parse_ok) {
-		SC_pre_execute(stmt);       
+	if (!parse_ok)
+	{
+		SC_pre_execute(stmt);
 
 		mylog("**** SQLColAtt: result = %u, status = %d, numcols = %d\n", stmt->result, stmt->status, stmt->result != NULL ? QR_NumResultCols(stmt->result) : -1);
 
-		if ( (NULL == stmt->result) || ((stmt->status != STMT_FINISHED) && (stmt->status != STMT_PREMATURE)) ) {
+		if ((NULL == stmt->result) || ((stmt->status != STMT_FINISHED) && (stmt->status != STMT_PREMATURE)))
+		{
 			stmt->errormsg = "Can't get column attributes: no result found.";
 			stmt->errornumber = STMT_SEQUENCE_ERROR;
 			SC_log_error(func, "", stmt);
@@ -429,17 +484,20 @@ int len = 0, value = 0;
 
 		cols = QR_NumResultCols(stmt->result);
 
-		/*	Column Count is a special case.  The Column number is ignored
-			in this case.
-		*/
-		if (fDescType == SQL_COLUMN_COUNT) {
+		/*
+		 * Column Count is a special case.	The Column number is ignored
+		 * in this case.
+		 */
+		if (fDescType == SQL_COLUMN_COUNT)
+		{
 			if (pfDesc)
 				*pfDesc = cols;
 
 			return SQL_SUCCESS;
 		}
 
-		if (icol >= cols) {
+		if (icol >= cols)
+		{
 			stmt->errornumber = STMT_INVALID_COLUMN_NUMBER_ERROR;
 			stmt->errormsg = "Invalid column number in DescribeCol.";
 			SC_log_error(func, "", stmt);
@@ -451,137 +509,146 @@ int len = 0, value = 0;
 
 	mylog("colAttr: col %d field_type = %d\n", icol, field_type);
 
-	switch(fDescType) {
-	case SQL_COLUMN_AUTO_INCREMENT:
-		value  = pgtype_auto_increment(stmt, field_type);
-		if (value == -1)  /*  non-numeric becomes FALSE (ODBC Doc) */
-			value = FALSE;
-				
-		break;
+	switch (fDescType)
+	{
+		case SQL_COLUMN_AUTO_INCREMENT:
+			value = pgtype_auto_increment(stmt, field_type);
+			if (value == -1)	/* non-numeric becomes FALSE (ODBC Doc) */
+				value = FALSE;
 
-	case SQL_COLUMN_CASE_SENSITIVE:
-		value = pgtype_case_sensitive(stmt, field_type);
-		break;
+			break;
 
-	/* 	This special case is handled above.
+		case SQL_COLUMN_CASE_SENSITIVE:
+			value = pgtype_case_sensitive(stmt, field_type);
+			break;
 
-	case SQL_COLUMN_COUNT: 
-	*/
+			/*
+			 * This special case is handled above.
+			 *
+			 * case SQL_COLUMN_COUNT:
+			 */
 
-    case SQL_COLUMN_DISPLAY_SIZE:
-		value = (parse_ok) ? stmt->fi[icol]->display_size : pgtype_display_size(stmt, field_type, icol, unknown_sizes);
+		case SQL_COLUMN_DISPLAY_SIZE:
+			value = (parse_ok) ? stmt->fi[icol]->display_size : pgtype_display_size(stmt, field_type, icol, unknown_sizes);
 
-		mylog("SQLColAttributes: col %d, display_size= %d\n", icol, value);
+			mylog("SQLColAttributes: col %d, display_size= %d\n", icol, value);
 
-        break;
+			break;
 
-	case SQL_COLUMN_LABEL:
-		if (parse_ok && stmt->fi[icol]->alias[0] != '\0') {
-			p = stmt->fi[icol]->alias;
+		case SQL_COLUMN_LABEL:
+			if (parse_ok && stmt->fi[icol]->alias[0] != '\0')
+			{
+				p = stmt->fi[icol]->alias;
 
-			mylog("SQLColAttr: COLUMN_LABEL = '%s'\n", p);
-			break;
+				mylog("SQLColAttr: COLUMN_LABEL = '%s'\n", p);
+				break;
 
-		}	/* otherwise same as column name -- FALL THROUGH!!! */
+			}					/* otherwise same as column name -- FALL
+								 * THROUGH!!! */
 
-	case SQL_COLUMN_NAME:
+		case SQL_COLUMN_NAME:
 
-		p = (parse_ok) ? stmt->fi[icol]->name : QR_get_fieldname(stmt->result, icol);
+			p = (parse_ok) ? stmt->fi[icol]->name : QR_get_fieldname(stmt->result, icol);
 
-		mylog("SQLColAttr: COLUMN_NAME = '%s'\n", p);
-		break;
+			mylog("SQLColAttr: COLUMN_NAME = '%s'\n", p);
+			break;
 
-	case SQL_COLUMN_LENGTH:
-		value = (parse_ok) ? stmt->fi[icol]->length :  pgtype_length(stmt, field_type, icol, unknown_sizes); 
+		case SQL_COLUMN_LENGTH:
+			value = (parse_ok) ? stmt->fi[icol]->length : pgtype_length(stmt, field_type, icol, unknown_sizes);
 
-		mylog("SQLColAttributes: col %d, length = %d\n", icol, value);
-        break;
+			mylog("SQLColAttributes: col %d, length = %d\n", icol, value);
+			break;
 
-	case SQL_COLUMN_MONEY:
-		value = pgtype_money(stmt, field_type);
-		break;
+		case SQL_COLUMN_MONEY:
+			value = pgtype_money(stmt, field_type);
+			break;
 
-	case SQL_COLUMN_NULLABLE:
-		value = (parse_ok) ? stmt->fi[icol]->nullable : pgtype_nullable(stmt, field_type);
-		break;
+		case SQL_COLUMN_NULLABLE:
+			value = (parse_ok) ? stmt->fi[icol]->nullable : pgtype_nullable(stmt, field_type);
+			break;
 
-	case SQL_COLUMN_OWNER_NAME:
-		p = "";
-		break;
+		case SQL_COLUMN_OWNER_NAME:
+			p = "";
+			break;
 
-	case SQL_COLUMN_PRECISION:
-		value = (parse_ok) ? stmt->fi[icol]->precision : pgtype_precision(stmt, field_type, icol, unknown_sizes);
+		case SQL_COLUMN_PRECISION:
+			value = (parse_ok) ? stmt->fi[icol]->precision : pgtype_precision(stmt, field_type, icol, unknown_sizes);
 
-		mylog("SQLColAttributes: col %d, precision = %d\n", icol, value);
-        break;
+			mylog("SQLColAttributes: col %d, precision = %d\n", icol, value);
+			break;
 
-	case SQL_COLUMN_QUALIFIER_NAME:
-		p = "";
-		break;
+		case SQL_COLUMN_QUALIFIER_NAME:
+			p = "";
+			break;
 
-	case SQL_COLUMN_SCALE:
-		value = pgtype_scale(stmt, field_type, icol);
-		break;
+		case SQL_COLUMN_SCALE:
+			value = pgtype_scale(stmt, field_type, icol);
+			break;
 
-	case SQL_COLUMN_SEARCHABLE:
-		value = pgtype_searchable(stmt, field_type);
-		break;
+		case SQL_COLUMN_SEARCHABLE:
+			value = pgtype_searchable(stmt, field_type);
+			break;
 
-    case SQL_COLUMN_TABLE_NAME:
+		case SQL_COLUMN_TABLE_NAME:
 
-		p = (parse_ok && stmt->fi[icol]->ti) ? stmt->fi[icol]->ti->name : "";
+			p = (parse_ok && stmt->fi[icol]->ti) ? stmt->fi[icol]->ti->name : "";
 
-		mylog("SQLColAttr: TABLE_NAME = '%s'\n", p);
-        break;
+			mylog("SQLColAttr: TABLE_NAME = '%s'\n", p);
+			break;
 
-	case SQL_COLUMN_TYPE:
-		value = pgtype_to_sqltype(stmt, field_type);
-		break;
+		case SQL_COLUMN_TYPE:
+			value = pgtype_to_sqltype(stmt, field_type);
+			break;
 
-	case SQL_COLUMN_TYPE_NAME:
-		p = pgtype_to_name(stmt, field_type);
-		break;
+		case SQL_COLUMN_TYPE_NAME:
+			p = pgtype_to_name(stmt, field_type);
+			break;
 
-	case SQL_COLUMN_UNSIGNED:
-		value = pgtype_unsigned(stmt, field_type);
-		if(value == -1)	/* non-numeric becomes TRUE (ODBC Doc) */
-			value = TRUE;
+		case SQL_COLUMN_UNSIGNED:
+			value = pgtype_unsigned(stmt, field_type);
+			if (value == -1)	/* non-numeric becomes TRUE (ODBC Doc) */
+				value = TRUE;
 
-		break;
+			break;
 
-	case SQL_COLUMN_UPDATABLE:
-		/*	Neither Access or Borland care about this.
+		case SQL_COLUMN_UPDATABLE:
 
-		if (field_type == PG_TYPE_OID)
-			*pfDesc = SQL_ATTR_READONLY;
-		else
-		*/
+			/*
+			 * Neither Access or Borland care about this.
+			 *
+			 * if (field_type == PG_TYPE_OID) pfDesc = SQL_ATTR_READONLY;
+			 * else
+			 */
 
-		value = SQL_ATTR_WRITE;
+			value = SQL_ATTR_WRITE;
 
-		mylog("SQLColAttr: UPDATEABLE = %d\n", value);
-		break;
-    }
+			mylog("SQLColAttr: UPDATEABLE = %d\n", value);
+			break;
+	}
 
 	result = SQL_SUCCESS;
 
-	if (p) {  /* char/binary data */
+	if (p)
+	{							/* char/binary data */
 		len = strlen(p);
 
-		if (rgbDesc) {
-			strncpy_null((char *)rgbDesc, p, (size_t)cbDescMax);
+		if (rgbDesc)
+		{
+			strncpy_null((char *) rgbDesc, p, (size_t) cbDescMax);
 
-			if (len >= cbDescMax)  {
+			if (len >= cbDescMax)
+			{
 				result = SQL_SUCCESS_WITH_INFO;
 				stmt->errornumber = STMT_TRUNCATED;
 				stmt->errormsg = "The buffer was too small for the result.";
 			}
 		}
 
-		if (pcbDesc) 
+		if (pcbDesc)
 			*pcbDesc = len;
 	}
-	else {	/* numeric data */
+	else
+	{							/* numeric data */
 
 		if (pfDesc)
 			*pfDesc = value;
@@ -589,79 +656,89 @@ int len = 0, value = 0;
 	}
 
 
-    return result;
+	return result;
 }
 
-/*      Returns result data for a single column in the current row. */
+/*		Returns result data for a single column in the current row. */
 
-RETCODE SQL_API SQLGetData(
-        HSTMT      hstmt,
-        UWORD      icol,
-        SWORD      fCType,
-        PTR        rgbValue,
-        SDWORD     cbValueMax,
-        SDWORD FAR *pcbValue)
+RETCODE SQL_API
+SQLGetData(
+		   HSTMT hstmt,
+		   UWORD icol,
+		   SWORD fCType,
+		   PTR rgbValue,
+		   SDWORD cbValueMax,
+		   SDWORD FAR * pcbValue)
 {
-static char *func="SQLGetData";
-QResultClass *res;
-StatementClass *stmt = (StatementClass *) hstmt;
-int num_cols, num_rows;
-Int4 field_type;
-void *value = NULL;
-int result;
-char get_bookmark = FALSE;
-
-mylog("SQLGetData: enter, stmt=%u\n", stmt);
-
-    if( ! stmt) {
+	static char *func = "SQLGetData";
+	QResultClass *res;
+	StatementClass *stmt = (StatementClass *) hstmt;
+	int			num_cols,
+				num_rows;
+	Int4		field_type;
+	void	   *value = NULL;
+	int			result;
+	char		get_bookmark = FALSE;
+
+	mylog("SQLGetData: enter, stmt=%u\n", stmt);
+
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
-        return SQL_INVALID_HANDLE;
-    }
+		return SQL_INVALID_HANDLE;
+	}
 	res = stmt->result;
 
-    if (STMT_EXECUTING == stmt->status) {
-        stmt->errormsg = "Can't get data while statement is still executing.";
-        stmt->errornumber = STMT_SEQUENCE_ERROR;
+	if (STMT_EXECUTING == stmt->status)
+	{
+		stmt->errormsg = "Can't get data while statement is still executing.";
+		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    if (stmt->status != STMT_FINISHED) {
-        stmt->errornumber = STMT_STATUS_ERROR;
-        stmt->errormsg = "GetData can only be called after the successful execution on a SQL statement";
+	if (stmt->status != STMT_FINISHED)
+	{
+		stmt->errornumber = STMT_STATUS_ERROR;
+		stmt->errormsg = "GetData can only be called after the successful execution on a SQL statement";
 		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    if (icol == 0) {
+	if (icol == 0)
+	{
 
-		if (stmt->options.use_bookmarks == SQL_UB_OFF) {
+		if (stmt->options.use_bookmarks == SQL_UB_OFF)
+		{
 			stmt->errornumber = STMT_COLNUM_ERROR;
 			stmt->errormsg = "Attempt to retrieve bookmark with bookmark usage disabled";
 			SC_log_error(func, "", stmt);
 			return SQL_ERROR;
 		}
 
-		/*	Make sure it is the bookmark data type */
-		if (fCType != SQL_C_BOOKMARK) {
+		/* Make sure it is the bookmark data type */
+		if (fCType != SQL_C_BOOKMARK)
+		{
 			stmt->errormsg = "Column 0 is not of type SQL_C_BOOKMARK";
 			stmt->errornumber = STMT_PROGRAM_TYPE_OUT_OF_RANGE;
 			SC_log_error(func, "", stmt);
 			return SQL_ERROR;
 		}
-		
+
 		get_bookmark = TRUE;
 
-    }
+	}
 
-	else {
+	else
+	{
 
 		/* use zero-based column numbers */
 		icol--;
 
 		/* make sure the column number is valid */
 		num_cols = QR_NumResultCols(res);
-		if (icol >= num_cols) {
+		if (icol >= num_cols)
+		{
 			stmt->errormsg = "Invalid column number.";
 			stmt->errornumber = STMT_INVALID_COLUMN_NUMBER_ERROR;
 			SC_log_error(func, "", stmt);
@@ -669,11 +746,13 @@ mylog("SQLGetData: enter, stmt=%u\n", stmt);
 		}
 	}
 
-	if ( stmt->manual_result || ! globals.use_declarefetch) {
+	if (stmt->manual_result || !globals.use_declarefetch)
+	{
 		/* make sure we're positioned on a valid row */
 		num_rows = QR_get_num_tuples(res);
-		if((stmt->currTuple < 0) ||
-		   (stmt->currTuple >= num_rows)) {
+		if ((stmt->currTuple < 0) ||
+			(stmt->currTuple >= num_rows))
+		{
 			stmt->errormsg = "Not positioned on a valid row for GetData.";
 			stmt->errornumber = STMT_INVALID_CURSOR_STATE_ERROR;
 			SC_log_error(func, "", stmt);
@@ -681,31 +760,33 @@ mylog("SQLGetData: enter, stmt=%u\n", stmt);
 		}
 		mylog("     num_rows = %d\n", num_rows);
 
-		if ( ! get_bookmark) {
-			if ( stmt->manual_result) {
+		if (!get_bookmark)
+		{
+			if (stmt->manual_result)
 				value = QR_get_value_manual(res, stmt->currTuple, icol);
-			}
-			else {
+			else
 				value = QR_get_value_backend_row(res, stmt->currTuple, icol);
-			}
 			mylog("     value = '%s'\n", value);
 		}
 	}
-	else { /* it's a SOCKET result (backend data) */
-		if (stmt->currTuple == -1 || ! res || ! res->tupleField) {
+	else
+	{							/* it's a SOCKET result (backend data) */
+		if (stmt->currTuple == -1 || !res || !res->tupleField)
+		{
 			stmt->errormsg = "Not positioned on a valid row for GetData.";
 			stmt->errornumber = STMT_INVALID_CURSOR_STATE_ERROR;
 			SC_log_error(func, "", stmt);
 			return SQL_ERROR;
 		}
 
-		if ( ! get_bookmark)
+		if (!get_bookmark)
 			value = QR_get_value_backend(res, icol);
 
 		mylog("  socket: value = '%s'\n", value);
 	}
 
-	if ( get_bookmark) {
+	if (get_bookmark)
+	{
 		*((UDWORD *) rgbValue) = SC_get_bookmark(stmt);
 
 		if (pcbValue)
@@ -720,85 +801,91 @@ mylog("SQLGetData: enter, stmt=%u\n", stmt);
 
 	stmt->current_col = icol;
 
-    result = copy_and_convert_field(stmt, field_type, value, 
-                                    fCType, rgbValue, cbValueMax, pcbValue);
+	result = copy_and_convert_field(stmt, field_type, value,
+								 fCType, rgbValue, cbValueMax, pcbValue);
 
 	stmt->current_col = -1;
 
-	switch(result) {
-	case COPY_OK:
-		return SQL_SUCCESS;
+	switch (result)
+	{
+		case COPY_OK:
+			return SQL_SUCCESS;
 
-	case COPY_UNSUPPORTED_TYPE:
-		stmt->errormsg = "Received an unsupported type from Postgres.";
-		stmt->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
-		SC_log_error(func, "", stmt);
-		return SQL_ERROR;
+		case COPY_UNSUPPORTED_TYPE:
+			stmt->errormsg = "Received an unsupported type from Postgres.";
+			stmt->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
+			SC_log_error(func, "", stmt);
+			return SQL_ERROR;
 
-	case COPY_UNSUPPORTED_CONVERSION:
-		stmt->errormsg = "Couldn't handle the necessary data type conversion.";
-		stmt->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
-		SC_log_error(func, "", stmt);
-		return SQL_ERROR;
+		case COPY_UNSUPPORTED_CONVERSION:
+			stmt->errormsg = "Couldn't handle the necessary data type conversion.";
+			stmt->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
+			SC_log_error(func, "", stmt);
+			return SQL_ERROR;
 
-	case COPY_RESULT_TRUNCATED:
-		stmt->errornumber = STMT_TRUNCATED;
-		stmt->errormsg = "The buffer was too small for the result.";
-		return SQL_SUCCESS_WITH_INFO;
+		case COPY_RESULT_TRUNCATED:
+			stmt->errornumber = STMT_TRUNCATED;
+			stmt->errormsg = "The buffer was too small for the result.";
+			return SQL_SUCCESS_WITH_INFO;
 
-	case COPY_GENERAL_ERROR:	/* error msg already filled in */
-		SC_log_error(func, "", stmt);
-		return SQL_ERROR;
+		case COPY_GENERAL_ERROR:		/* error msg already filled in */
+			SC_log_error(func, "", stmt);
+			return SQL_ERROR;
 
-	case COPY_NO_DATA_FOUND:
-		/* SC_log_error(func, "no data found", stmt); */
-		return SQL_NO_DATA_FOUND;
+		case COPY_NO_DATA_FOUND:
+			/* SC_log_error(func, "no data found", stmt); */
+			return SQL_NO_DATA_FOUND;
 
-    default:
-        stmt->errormsg = "Unrecognized return value from copy_and_convert_field.";
-        stmt->errornumber = STMT_INTERNAL_ERROR;
-		SC_log_error(func, "", stmt);
-        return SQL_ERROR;
-    }
+		default:
+			stmt->errormsg = "Unrecognized return value from copy_and_convert_field.";
+			stmt->errornumber = STMT_INTERNAL_ERROR;
+			SC_log_error(func, "", stmt);
+			return SQL_ERROR;
+	}
 }
 
 
 
-/*      Returns data for bound columns in the current row ("hstmt->iCursor"), */
-/*      advances the cursor. */
+/*		Returns data for bound columns in the current row ("hstmt->iCursor"), */
+/*		advances the cursor. */
 
-RETCODE SQL_API SQLFetch(
-        HSTMT   hstmt)
+RETCODE SQL_API
+SQLFetch(
+		 HSTMT hstmt)
 {
-static char *func = "SQLFetch";
-StatementClass *stmt = (StatementClass *) hstmt;   
-QResultClass *res;
+	static char *func = "SQLFetch";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	QResultClass *res;
 
-mylog("SQLFetch: stmt = %u, stmt->result= %u\n", stmt, stmt->result);
+	mylog("SQLFetch: stmt = %u, stmt->result= %u\n", stmt, stmt->result);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 	SC_clear_error(stmt);
 
-	if ( ! (res = stmt->result)) {
+	if (!(res = stmt->result))
+	{
 		stmt->errormsg = "Null statement result in SQLFetch.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	/*	Not allowed to bind a bookmark column when using SQLFetch. */
-	if ( stmt->bookmark.buffer) {
+	/* Not allowed to bind a bookmark column when using SQLFetch. */
+	if (stmt->bookmark.buffer)
+	{
 		stmt->errornumber = STMT_COLNUM_ERROR;
 		stmt->errormsg = "Not allowed to bind a bookmark column when using SQLFetch";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if (stmt->status == STMT_EXECUTING) {
+	if (stmt->status == STMT_EXECUTING)
+	{
 		stmt->errormsg = "Can't fetch while statement is still executing.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
@@ -806,14 +893,16 @@ mylog("SQLFetch: stmt = %u, stmt->result= %u\n", stmt, stmt->result);
 	}
 
 
-	if (stmt->status != STMT_FINISHED) {
+	if (stmt->status != STMT_FINISHED)
+	{
 		stmt->errornumber = STMT_STATUS_ERROR;
 		stmt->errormsg = "Fetch can only be called after the successful execution on a SQL statement";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if (stmt->bindings == NULL) {
+	if (stmt->bindings == NULL)
+	{
 		/* just to avoid a crash if the user insists on calling this */
 		/* function even if SQL_ExecDirect has reported an Error */
 		stmt->errormsg = "Bindings were not allocated properly.";
@@ -823,36 +912,43 @@ mylog("SQLFetch: stmt = %u, stmt->result= %u\n", stmt, stmt->result);
 	}
 
 	QR_set_rowset_size(res, 1);
-	QR_inc_base(res, stmt->last_fetch_count);	
+	QR_inc_base(res, stmt->last_fetch_count);
 
 	return SC_fetch(stmt);
 }
 
-/*      This fetchs a block of data (rowset). */
+/*		This fetchs a block of data (rowset). */
 
-RETCODE SQL_API SQLExtendedFetch(
-        HSTMT      hstmt,
-        UWORD      fFetchType,
-        SDWORD     irow,
-        UDWORD FAR *pcrow,
-        UWORD  FAR *rgfRowStatus)
+RETCODE SQL_API
+SQLExtendedFetch(
+				 HSTMT hstmt,
+				 UWORD fFetchType,
+				 SDWORD irow,
+				 UDWORD FAR * pcrow,
+				 UWORD FAR * rgfRowStatus)
 {
-static char *func = "SQLExtendedFetch";
-StatementClass *stmt = (StatementClass *) hstmt;
-QResultClass *res;
-int num_tuples, i, save_rowset_size;
-RETCODE result;
-char truncated, error;
-
-mylog("SQLExtendedFetch: stmt=%u\n", stmt);
-
-	if ( ! stmt) {
+	static char *func = "SQLExtendedFetch";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	QResultClass *res;
+	int			num_tuples,
+				i,
+				save_rowset_size;
+	RETCODE		result;
+	char		truncated,
+				error;
+
+	mylog("SQLExtendedFetch: stmt=%u\n", stmt);
+
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	if ( globals.use_declarefetch && ! stmt->manual_result) {
-		if ( fFetchType != SQL_FETCH_NEXT) {
+	if (globals.use_declarefetch && !stmt->manual_result)
+	{
+		if (fFetchType != SQL_FETCH_NEXT)
+		{
 			stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
 			stmt->errormsg = "Unsupported fetch type for SQLExtendedFetch with UseDeclareFetch option.";
 			return SQL_ERROR;
@@ -861,36 +957,44 @@ mylog("SQLExtendedFetch: stmt=%u\n", stmt);
 
 	SC_clear_error(stmt);
 
-	if ( ! (res = stmt->result)) {
+	if (!(res = stmt->result))
+	{
 		stmt->errormsg = "Null statement result in SQLExtendedFetch.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	/*	If a bookmark colunmn is bound but bookmark usage is off, then error */
-	if (stmt->bookmark.buffer && stmt->options.use_bookmarks == SQL_UB_OFF) {
+	/*
+	 * If a bookmark colunmn is bound but bookmark usage is off, then
+	 * error
+	 */
+	if (stmt->bookmark.buffer && stmt->options.use_bookmarks == SQL_UB_OFF)
+	{
 		stmt->errornumber = STMT_COLNUM_ERROR;
 		stmt->errormsg = "Attempt to retrieve bookmark with bookmark usage disabled";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if (stmt->status == STMT_EXECUTING) {
+	if (stmt->status == STMT_EXECUTING)
+	{
 		stmt->errormsg = "Can't fetch while statement is still executing.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if (stmt->status != STMT_FINISHED) {
+	if (stmt->status != STMT_FINISHED)
+	{
 		stmt->errornumber = STMT_STATUS_ERROR;
 		stmt->errormsg = "ExtendedFetch can only be called after the successful execution on a SQL statement";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if (stmt->bindings == NULL) {
+	if (stmt->bindings == NULL)
+	{
 		/* just to avoid a crash if the user insists on calling this */
 		/* function even if SQL_ExecDirect has reported an Error */
 		stmt->errormsg = "Bindings were not allocated properly.";
@@ -899,7 +1003,7 @@ mylog("SQLExtendedFetch: stmt=%u\n", stmt);
 		return SQL_ERROR;
 	}
 
-	/*	Initialize to no rows fetched */
+	/* Initialize to no rows fetched */
 	if (rgfRowStatus)
 		for (i = 0; i < stmt->options.rowset_size; i++)
 			*(rgfRowStatus + i) = SQL_ROW_NOROW;
@@ -909,150 +1013,170 @@ mylog("SQLExtendedFetch: stmt=%u\n", stmt);
 
 	num_tuples = QR_get_num_tuples(res);
 
-	/*	Save and discard the saved rowset size */
+	/* Save and discard the saved rowset size */
 	save_rowset_size = stmt->save_rowset_size;
 	stmt->save_rowset_size = -1;
 
-	switch (fFetchType)  {
-	case SQL_FETCH_NEXT:
+	switch (fFetchType)
+	{
+		case SQL_FETCH_NEXT:
 
-		/*	From the odbc spec... If positioned before the start of the RESULT SET,
-			then this should be equivalent to SQL_FETCH_FIRST.
-		*/
+			/*
+			 * From the odbc spec... If positioned before the start of the
+			 * RESULT SET, then this should be equivalent to
+			 * SQL_FETCH_FIRST.
+			 */
 
-		if (stmt->rowset_start < 0)
-			stmt->rowset_start = 0;
+			if (stmt->rowset_start < 0)
+				stmt->rowset_start = 0;
 
-		else {
-			
-			stmt->rowset_start += (save_rowset_size > 0 ? save_rowset_size : stmt->options.rowset_size);
-		}
+			else
+			{
 
-		mylog("SQL_FETCH_NEXT: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
-		break;
+				stmt->rowset_start += (save_rowset_size > 0 ? save_rowset_size : stmt->options.rowset_size);
+			}
 
-	case SQL_FETCH_PRIOR:
-		mylog("SQL_FETCH_PRIOR: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
+			mylog("SQL_FETCH_NEXT: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
+			break;
 
+		case SQL_FETCH_PRIOR:
+			mylog("SQL_FETCH_PRIOR: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
 
-		/*	From the odbc spec... If positioned after the end of the RESULT SET,
-			then this should be equivalent to SQL_FETCH_LAST.
-		*/
 
-		if (stmt->rowset_start >= num_tuples) {
-			stmt->rowset_start = num_tuples <= 0 ? 0 : (num_tuples - stmt->options.rowset_size);
+			/*
+			 * From the odbc spec... If positioned after the end of the
+			 * RESULT SET, then this should be equivalent to
+			 * SQL_FETCH_LAST.
+			 */
 
-		}
-		else {
+			if (stmt->rowset_start >= num_tuples)
+			{
+				stmt->rowset_start = num_tuples <= 0 ? 0 : (num_tuples - stmt->options.rowset_size);
 
-			stmt->rowset_start -= stmt->options.rowset_size;
+			}
+			else
+			{
 
-		}
+				stmt->rowset_start -= stmt->options.rowset_size;
 
-		break;
+			}
 
-	case SQL_FETCH_FIRST:
-		mylog("SQL_FETCH_FIRST: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
+			break;
 
-		stmt->rowset_start = 0;
-		break;
+		case SQL_FETCH_FIRST:
+			mylog("SQL_FETCH_FIRST: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
 
-	case SQL_FETCH_LAST:
-		mylog("SQL_FETCH_LAST: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
+			stmt->rowset_start = 0;
+			break;
 
-		stmt->rowset_start = num_tuples <= 0 ? 0 : (num_tuples - stmt->options.rowset_size) ;
-		break;
+		case SQL_FETCH_LAST:
+			mylog("SQL_FETCH_LAST: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple);
 
-	case SQL_FETCH_ABSOLUTE:
-		mylog("SQL_FETCH_ABSOLUTE: num_tuples=%d, currtuple=%d, irow=%d\n", num_tuples, stmt->currTuple, irow);
+			stmt->rowset_start = num_tuples <= 0 ? 0 : (num_tuples - stmt->options.rowset_size);
+			break;
 
-		/*	Position before result set, but dont fetch anything */
-		if (irow == 0) {
-			stmt->rowset_start = -1;
-			stmt->currTuple = -1;
-			return SQL_NO_DATA_FOUND;
-		}
-		/*	Position before the desired row */
-		else if (irow > 0) {
-			stmt->rowset_start = irow - 1;
-		}
-		/*	Position with respect to the end of the result set */
-		else {
-			stmt->rowset_start = num_tuples + irow;
-		}    
+		case SQL_FETCH_ABSOLUTE:
+			mylog("SQL_FETCH_ABSOLUTE: num_tuples=%d, currtuple=%d, irow=%d\n", num_tuples, stmt->currTuple, irow);
 
-		break;
+			/* Position before result set, but dont fetch anything */
+			if (irow == 0)
+			{
+				stmt->rowset_start = -1;
+				stmt->currTuple = -1;
+				return SQL_NO_DATA_FOUND;
+			}
+			/* Position before the desired row */
+			else if (irow > 0)
+				stmt->rowset_start = irow - 1;
+			/* Position with respect to the end of the result set */
+			else
+				stmt->rowset_start = num_tuples + irow;
 
-	case SQL_FETCH_RELATIVE:
-		
-		/*	Refresh the current rowset -- not currently implemented, but lie anyway */
-		if (irow == 0) {
 			break;
-		}
 
-		stmt->rowset_start += irow;
+		case SQL_FETCH_RELATIVE:
 
-		
-		break;
+			/*
+			 * Refresh the current rowset -- not currently implemented,
+			 * but lie anyway
+			 */
+			if (irow == 0)
+				break;
 
-	case SQL_FETCH_BOOKMARK:
+			stmt->rowset_start += irow;
 
-		stmt->rowset_start = irow - 1;
-		break;
 
-	default:
-		SC_log_error(func, "Unsupported SQLExtendedFetch Direction", stmt);
-		return SQL_ERROR;   
+			break;
 
-	}           
+		case SQL_FETCH_BOOKMARK:
+
+			stmt->rowset_start = irow - 1;
+			break;
+
+		default:
+			SC_log_error(func, "Unsupported SQLExtendedFetch Direction", stmt);
+			return SQL_ERROR;
+
+	}
 
 
 	/***********************************/
-	/*	CHECK FOR PROPER CURSOR STATE  */
+	/* CHECK FOR PROPER CURSOR STATE  */
 	/***********************************/
-	/*	Handle Declare Fetch style specially because the end is not really the end... */
-	if ( globals.use_declarefetch && ! stmt->manual_result) {
-		if (QR_end_tuples(res)) {
+
+	/*
+	 * Handle Declare Fetch style specially because the end is not really
+	 * the end...
+	 */
+	if (globals.use_declarefetch && !stmt->manual_result)
+	{
+		if (QR_end_tuples(res))
 			return SQL_NO_DATA_FOUND;
-		}
 	}
-	else {
-		/*	If *new* rowset is after the result_set, return no data found */
-		if (stmt->rowset_start >= num_tuples) {
+	else
+	{
+		/* If *new* rowset is after the result_set, return no data found */
+		if (stmt->rowset_start >= num_tuples)
+		{
 			stmt->rowset_start = num_tuples;
 			return SQL_NO_DATA_FOUND;
 		}
 	}
 
-	/*	If *new* rowset is prior to result_set, return no data found */
-	if (stmt->rowset_start < 0) {
-		if (stmt->rowset_start + stmt->options.rowset_size <= 0) {
+	/* If *new* rowset is prior to result_set, return no data found */
+	if (stmt->rowset_start < 0)
+	{
+		if (stmt->rowset_start + stmt->options.rowset_size <= 0)
+		{
 			stmt->rowset_start = -1;
 			return SQL_NO_DATA_FOUND;
 		}
-		else {	/*	overlap with beginning of result set, so get first rowset */
+		else
+		{						/* overlap with beginning of result set,
+								 * so get first rowset */
 			stmt->rowset_start = 0;
 		}
 	}
 
-	/*	currTuple is always 1 row prior to the rowset */
+	/* currTuple is always 1 row prior to the rowset */
 	stmt->currTuple = stmt->rowset_start - 1;
 
-	/*	increment the base row in the tuple cache */
+	/* increment the base row in the tuple cache */
 	QR_set_rowset_size(res, stmt->options.rowset_size);
-	QR_inc_base(res, stmt->last_fetch_count);	
-		
-	/*	Physical Row advancement occurs for each row fetched below */
+	QR_inc_base(res, stmt->last_fetch_count);
+
+	/* Physical Row advancement occurs for each row fetched below */
 
 	mylog("SQLExtendedFetch: new currTuple = %d\n", stmt->currTuple);
 
 	truncated = error = FALSE;
-	for (i = 0; i < stmt->options.rowset_size; i++) {
+	for (i = 0; i < stmt->options.rowset_size; i++)
+	{
 
 		stmt->bind_row = i;		/* set the binding location */
 		result = SC_fetch(stmt);
 
-		/*	Determine Function status */
+		/* Determine Function status */
 		if (result == SQL_NO_DATA_FOUND)
 			break;
 		else if (result == SQL_SUCCESS_WITH_INFO)
@@ -1060,35 +1184,36 @@ mylog("SQLExtendedFetch: stmt=%u\n", stmt);
 		else if (result == SQL_ERROR)
 			error = TRUE;
 
-		/*	Determine Row Status */
-		if (rgfRowStatus) {
-			if (result == SQL_ERROR) 
+		/* Determine Row Status */
+		if (rgfRowStatus)
+		{
+			if (result == SQL_ERROR)
 				*(rgfRowStatus + i) = SQL_ROW_ERROR;
 			else
-				*(rgfRowStatus + i)= SQL_ROW_SUCCESS;
+				*(rgfRowStatus + i) = SQL_ROW_SUCCESS;
 		}
 	}
 
-	/*	Save the fetch count for SQLSetPos */
-	stmt->last_fetch_count= i;
+	/* Save the fetch count for SQLSetPos */
+	stmt->last_fetch_count = i;
 
-	/*	Reset next binding row */
+	/* Reset next binding row */
 	stmt->bind_row = 0;
 
-	/*	Move the cursor position to the first row in the result set. */
+	/* Move the cursor position to the first row in the result set. */
 	stmt->currTuple = stmt->rowset_start;
 
-	/*	For declare/fetch, need to reset cursor to beginning of rowset */
-	if (globals.use_declarefetch && ! stmt->manual_result) {
+	/* For declare/fetch, need to reset cursor to beginning of rowset */
+	if (globals.use_declarefetch && !stmt->manual_result)
 		QR_set_position(res, 0);
-	}
 
-	/*	Set the number of rows retrieved */
+	/* Set the number of rows retrieved */
 	if (pcrow)
 		*pcrow = i;
 
 	if (i == 0)
-		return SQL_NO_DATA_FOUND;		/*	Only DeclareFetch should wind up here */
+		return SQL_NO_DATA_FOUND;		/* Only DeclareFetch should wind
+										 * up here */
 	else if (error)
 		return SQL_ERROR;
 	else if (truncated)
@@ -1099,43 +1224,49 @@ mylog("SQLExtendedFetch: stmt=%u\n", stmt);
 }
 
 
-/*      This determines whether there are more results sets available for */
-/*      the "hstmt". */
+/*		This determines whether there are more results sets available for */
+/*		the "hstmt". */
 
 /* CC: return SQL_NO_DATA_FOUND since we do not support multiple result sets */
-RETCODE SQL_API SQLMoreResults(
-        HSTMT   hstmt)
+RETCODE SQL_API
+SQLMoreResults(
+			   HSTMT hstmt)
 {
 	return SQL_NO_DATA_FOUND;
 }
 
-/*     This positions the cursor within a rowset, that was positioned using SQLExtendedFetch. */
+/*	   This positions the cursor within a rowset, that was positioned using SQLExtendedFetch. */
 /*	   This will be useful (so far) only when using SQLGetData after SQLExtendedFetch.	 */
-RETCODE SQL_API SQLSetPos(
-        HSTMT   hstmt,
-        UWORD   irow,
-        UWORD   fOption,
-        UWORD   fLock)
+RETCODE SQL_API
+SQLSetPos(
+		  HSTMT hstmt,
+		  UWORD irow,
+		  UWORD fOption,
+		  UWORD fLock)
 {
-static char *func = "SQLSetPos";
-StatementClass *stmt = (StatementClass *) hstmt;
-QResultClass *res;
-int num_cols, i;
-BindInfoClass *bindings = stmt->bindings;
-
-	if ( ! stmt) {
+	static char *func = "SQLSetPos";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	QResultClass *res;
+	int			num_cols,
+				i;
+	BindInfoClass *bindings = stmt->bindings;
+
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	if (fOption != SQL_POSITION && fOption != SQL_REFRESH) {
+	if (fOption != SQL_POSITION && fOption != SQL_REFRESH)
+	{
 		stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR;
 		stmt->errormsg = "Only SQL_POSITION/REFRESH is supported for SQLSetPos";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if ( ! (res = stmt->result)) {
+	if (!(res = stmt->result))
+	{
 		stmt->errormsg = "Null statement result in SQLSetPos.";
 		stmt->errornumber = STMT_SEQUENCE_ERROR;
 		SC_log_error(func, "", stmt);
@@ -1143,14 +1274,16 @@ BindInfoClass *bindings = stmt->bindings;
 	}
 	num_cols = QR_NumResultCols(res);
 
-	if (irow == 0) {
+	if (irow == 0)
+	{
 		stmt->errornumber = STMT_ROW_OUT_OF_RANGE;
 		stmt->errormsg = "Driver does not support Bulk operations.";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	if (irow > stmt->last_fetch_count) {
+	if (irow > stmt->last_fetch_count)
+	{
 		stmt->errornumber = STMT_ROW_OUT_OF_RANGE;
 		stmt->errormsg = "Row value out of range";
 		SC_log_error(func, "", stmt);
@@ -1159,7 +1292,7 @@ BindInfoClass *bindings = stmt->bindings;
 
 	irow--;
 
-	/*	Reset for SQLGetData */
+	/* Reset for SQLGetData */
 	for (i = 0; i < num_cols; i++)
 		bindings[i].data_left = -1;
 
@@ -1171,73 +1304,80 @@ BindInfoClass *bindings = stmt->bindings;
 
 }
 
-/*      Sets options that control the behavior of cursors. */
+/*		Sets options that control the behavior of cursors. */
 
-RETCODE SQL_API SQLSetScrollOptions(
-        HSTMT      hstmt,
-        UWORD      fConcurrency,
-        SDWORD  crowKeyset,
-        UWORD      crowRowset)
+RETCODE SQL_API
+SQLSetScrollOptions(
+					HSTMT hstmt,
+					UWORD fConcurrency,
+					SDWORD crowKeyset,
+					UWORD crowRowset)
 {
-static char *func = "SQLSetScrollOptions";
+	static char *func = "SQLSetScrollOptions";
 
 	SC_log_error(func, "Function not implemented", (StatementClass *) hstmt);
 	return SQL_ERROR;
 }
 
 
-/*      Set the cursor name on a statement handle */
+/*		Set the cursor name on a statement handle */
 
-RETCODE SQL_API SQLSetCursorName(
-        HSTMT     hstmt,
-        UCHAR FAR *szCursor,
-        SWORD     cbCursor)
+RETCODE SQL_API
+SQLSetCursorName(
+				 HSTMT hstmt,
+				 UCHAR FAR * szCursor,
+				 SWORD cbCursor)
 {
-static char *func="SQLSetCursorName";
-StatementClass *stmt = (StatementClass *) hstmt;
-int len;
+	static char *func = "SQLSetCursorName";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	int			len;
 
-mylog("SQLSetCursorName: hstmt=%u, szCursor=%u, cbCursorMax=%d\n", hstmt, szCursor, cbCursor);
+	mylog("SQLSetCursorName: hstmt=%u, szCursor=%u, cbCursorMax=%d\n", hstmt, szCursor, cbCursor);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
 	len = (cbCursor == SQL_NTS) ? strlen(szCursor) : cbCursor;
 
-	if (len <= 0 || len > sizeof(stmt->cursor_name) - 1) {
+	if (len <= 0 || len > sizeof(stmt->cursor_name) - 1)
+	{
 		stmt->errornumber = STMT_INVALID_CURSOR_NAME;
 		stmt->errormsg = "Invalid Cursor Name";
 		SC_log_error(func, "", stmt);
 		return SQL_ERROR;
 	}
 
-	strncpy_null(stmt->cursor_name, szCursor, len+1);
+	strncpy_null(stmt->cursor_name, szCursor, len + 1);
 	return SQL_SUCCESS;
 }
 
-/*      Return the cursor name for a statement handle */
+/*		Return the cursor name for a statement handle */
 
-RETCODE SQL_API SQLGetCursorName(
-        HSTMT     hstmt,
-        UCHAR FAR *szCursor,
-        SWORD     cbCursorMax,
-        SWORD FAR *pcbCursor)
+RETCODE SQL_API
+SQLGetCursorName(
+				 HSTMT hstmt,
+				 UCHAR FAR * szCursor,
+				 SWORD cbCursorMax,
+				 SWORD FAR * pcbCursor)
 {
-static char *func="SQLGetCursorName";
-StatementClass *stmt = (StatementClass *) hstmt;
-int len = 0;
-RETCODE result;
+	static char *func = "SQLGetCursorName";
+	StatementClass *stmt = (StatementClass *) hstmt;
+	int			len = 0;
+	RETCODE		result;
 
-mylog("SQLGetCursorName: hstmt=%u, szCursor=%u, cbCursorMax=%d, pcbCursor=%u\n", hstmt, szCursor, cbCursorMax, pcbCursor);
+	mylog("SQLGetCursorName: hstmt=%u, szCursor=%u, cbCursorMax=%d, pcbCursor=%u\n", hstmt, szCursor, cbCursorMax, pcbCursor);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	if ( stmt->cursor_name[0] == '\0') {
+	if (stmt->cursor_name[0] == '\0')
+	{
 		stmt->errornumber = STMT_NO_CURSOR_NAME;
 		stmt->errormsg = "No Cursor name available";
 		SC_log_error(func, "", stmt);
@@ -1247,10 +1387,12 @@ mylog("SQLGetCursorName: hstmt=%u, szCursor=%u, cbCursorMax=%d, pcbCursor=%u\n",
 	result = SQL_SUCCESS;
 	len = strlen(stmt->cursor_name);
 
-	if (szCursor) {
+	if (szCursor)
+	{
 		strncpy_null(szCursor, stmt->cursor_name, cbCursorMax);
 
-		if (len >= cbCursorMax)  {
+		if (len >= cbCursorMax)
+		{
 			result = SQL_SUCCESS_WITH_INFO;
 			stmt->errornumber = STMT_TRUNCATED;
 			stmt->errormsg = "The buffer was too small for the result.";
@@ -1262,5 +1404,3 @@ mylog("SQLGetCursorName: hstmt=%u, szCursor=%u, cbCursorMax=%d, pcbCursor=%u\n",
 
 	return result;
 }
-
-
diff --git a/src/interfaces/odbc/setup.c b/src/interfaces/odbc/setup.c
index 4c31afed49ecee75453a0f057b0880f3aa7e03c9..51cf6482c83f40eec00c716ecafc090a92847df7 100644
--- a/src/interfaces/odbc/setup.c
+++ b/src/interfaces/odbc/setup.c
@@ -1,14 +1,14 @@
-/* Module:          setup.c
+/* Module:			setup.c
  *
- * Description:     This module contains the setup functions for 
- *                  adding/modifying a Data Source in the ODBC.INI portion
- *                  of the registry.
+ * Description:		This module contains the setup functions for
+ *					adding/modifying a Data Source in the ODBC.INI portion
+ *					of the registry.
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   ConfigDSN
+ * API functions:	ConfigDSN
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  *************************************************************************************/
 
@@ -25,288 +25,313 @@
 
 #define INTFUNC  __stdcall
 
-extern HINSTANCE NEAR s_hModule;               /* Saved module handle. */
+extern HINSTANCE NEAR s_hModule;/* Saved module handle. */
 extern GLOBAL_VALUES globals;
 
 /* Constants --------------------------------------------------------------- */
-#define MIN(x,y)      ((x) < (y) ? (x) : (y))
+#define MIN(x,y)	  ((x) < (y) ? (x) : (y))
 
 #ifdef WIN32
-#define MAXPGPATH       (255+1)
+#define MAXPGPATH		(255+1)
 #endif
 
-#define MAXKEYLEN       (15+1)            /* Max keyword length */
-#define MAXDESC         (255+1)           /* Max description length */
-#define MAXDSNAME       (32+1)            /* Max data source name length */
+#define MAXKEYLEN		(15+1)	/* Max keyword length */
+#define MAXDESC			(255+1) /* Max description length */
+#define MAXDSNAME		(32+1)	/* Max data source name length */
 
 
 /* Globals ----------------------------------------------------------------- */
 /* NOTE:  All these are used by the dialog procedures */
-typedef struct tagSETUPDLG {
-        HWND       hwndParent;                   /* Parent window handle */
-        LPCSTR     lpszDrvr;                     /* Driver description */
-		ConnInfo   ci;
-        char       szDSN[MAXDSNAME];             /* Original data source name */
-        BOOL       fNewDSN;                      /* New data source flag */
-        BOOL       fDefault;                     /* Default data source flag */
+typedef struct tagSETUPDLG
+{
+	HWND		hwndParent;		/* Parent window handle */
+	LPCSTR		lpszDrvr;		/* Driver description */
+	ConnInfo	ci;
+	char		szDSN[MAXDSNAME];		/* Original data source name */
+	BOOL		fNewDSN;		/* New data source flag */
+	BOOL		fDefault;		/* Default data source flag */
 
-} SETUPDLG, FAR *LPSETUPDLG;
+}			SETUPDLG, FAR * LPSETUPDLG;
 
 
 
 /* Prototypes -------------------------------------------------------------- */
 void INTFUNC CenterDialog(HWND hdlg);
-int  CALLBACK ConfigDlgProc(HWND hdlg, WORD wMsg, WPARAM wParam, LPARAM lParam);
-void INTFUNC ParseAttributes (LPCSTR lpszAttributes, LPSETUPDLG lpsetupdlg);
+int CALLBACK ConfigDlgProc(HWND hdlg, WORD wMsg, WPARAM wParam, LPARAM lParam);
+void INTFUNC ParseAttributes(LPCSTR lpszAttributes, LPSETUPDLG lpsetupdlg);
 BOOL INTFUNC SetDSNAttributes(HWND hwnd, LPSETUPDLG lpsetupdlg);
 
 
 /* ConfigDSN ---------------------------------------------------------------
-  Description:  ODBC Setup entry point
-                This entry point is called by the ODBC Installer
-                (see file header for more details)
-  Input      :  hwnd ----------- Parent window handle
-                fRequest ------- Request type (i.e., add, config, or remove)
-                lpszDriver ----- Driver name
-                lpszAttributes - data source attribute string
-  Output     :  TRUE success, FALSE otherwise
+  Description:	ODBC Setup entry point
+				This entry point is called by the ODBC Installer
+				(see file header for more details)
+  Input		 :	hwnd ----------- Parent window handle
+				fRequest ------- Request type (i.e., add, config, or remove)
+				lpszDriver ----- Driver name
+				lpszAttributes - data source attribute string
+  Output	 :	TRUE success, FALSE otherwise
 --------------------------------------------------------------------------*/
 
-BOOL CALLBACK ConfigDSN (HWND    hwnd,
-                         WORD    fRequest,
-                         LPCSTR  lpszDriver,
-                         LPCSTR  lpszAttributes)
+BOOL CALLBACK
+ConfigDSN(HWND hwnd,
+		  WORD fRequest,
+		  LPCSTR lpszDriver,
+		  LPCSTR lpszAttributes)
 {
-BOOL  fSuccess;                                            /* Success/fail flag */
-GLOBALHANDLE hglbAttr;
-LPSETUPDLG lpsetupdlg;
-        
+	BOOL		fSuccess;		/* Success/fail flag */
+	GLOBALHANDLE hglbAttr;
+	LPSETUPDLG	lpsetupdlg;
+
 
 	/* Allocate attribute array */
-        hglbAttr = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(SETUPDLG));
-        if (!hglbAttr)
-                return FALSE;
-        lpsetupdlg = (LPSETUPDLG)GlobalLock(hglbAttr);
-
-        /* Parse attribute string */
-        if (lpszAttributes)
-                ParseAttributes(lpszAttributes, lpsetupdlg);
-
-        /* Save original data source name */
-        if (lpsetupdlg->ci.dsn[0])
-                lstrcpy(lpsetupdlg->szDSN, lpsetupdlg->ci.dsn);
-        else
-                lpsetupdlg->szDSN[0] = '\0';
-
-        /* Remove data source */
-        if (ODBC_REMOVE_DSN == fRequest) {
+	hglbAttr = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, sizeof(SETUPDLG));
+	if (!hglbAttr)
+		return FALSE;
+	lpsetupdlg = (LPSETUPDLG) GlobalLock(hglbAttr);
+
+	/* Parse attribute string */
+	if (lpszAttributes)
+		ParseAttributes(lpszAttributes, lpsetupdlg);
+
+	/* Save original data source name */
+	if (lpsetupdlg->ci.dsn[0])
+		lstrcpy(lpsetupdlg->szDSN, lpsetupdlg->ci.dsn);
+	else
+		lpsetupdlg->szDSN[0] = '\0';
+
+	/* Remove data source */
+	if (ODBC_REMOVE_DSN == fRequest)
+	{
 		/* Fail if no data source name was supplied */
-                if (!lpsetupdlg->ci.dsn[0])
-                        fSuccess = FALSE;
+		if (!lpsetupdlg->ci.dsn[0])
+			fSuccess = FALSE;
 
-                /* Otherwise remove data source from ODBC.INI */
-                else
-                        fSuccess = SQLRemoveDSNFromIni(lpsetupdlg->ci.dsn);
-        }
+		/* Otherwise remove data source from ODBC.INI */
+		else
+			fSuccess = SQLRemoveDSNFromIni(lpsetupdlg->ci.dsn);
+	}
 
-        /* Add or Configure data source */
-        else {
+	/* Add or Configure data source */
+	else
+	{
 		/* Save passed variables for global access (e.g., dialog access) */
-                lpsetupdlg->hwndParent = hwnd;
-                lpsetupdlg->lpszDrvr     = lpszDriver;
-                lpsetupdlg->fNewDSN      = (ODBC_ADD_DSN == fRequest);
-                lpsetupdlg->fDefault     = !lstrcmpi(lpsetupdlg->ci.dsn, INI_DSN);
-
-                /* Display the appropriate dialog (if parent window handle supplied) */
-                if (hwnd) {
-			  /* Display dialog(s) */
-                          fSuccess = (IDOK == DialogBoxParam(s_hModule,
-                                                                MAKEINTRESOURCE(DLG_CONFIG),
-                                                                hwnd,
-                                                                ConfigDlgProc,
-                                                                (LONG)(LPSTR)lpsetupdlg));
-                }
-
-                else if (lpsetupdlg->ci.dsn[0])
-                        fSuccess = SetDSNAttributes(hwnd, lpsetupdlg);
-                else
-                        fSuccess = FALSE;
-        }
-
-        GlobalUnlock(hglbAttr);
-        GlobalFree(hglbAttr);
-
-        return fSuccess;
+		lpsetupdlg->hwndParent = hwnd;
+		lpsetupdlg->lpszDrvr = lpszDriver;
+		lpsetupdlg->fNewDSN = (ODBC_ADD_DSN == fRequest);
+		lpsetupdlg->fDefault = !lstrcmpi(lpsetupdlg->ci.dsn, INI_DSN);
+
+		/*
+		 * Display the appropriate dialog (if parent window handle
+		 * supplied)
+		 */
+		if (hwnd)
+		{
+			/* Display dialog(s) */
+			fSuccess = (IDOK == DialogBoxParam(s_hModule,
+											 MAKEINTRESOURCE(DLG_CONFIG),
+											   hwnd,
+											   ConfigDlgProc,
+											 (LONG) (LPSTR) lpsetupdlg));
+		}
+
+		else if (lpsetupdlg->ci.dsn[0])
+			fSuccess = SetDSNAttributes(hwnd, lpsetupdlg);
+		else
+			fSuccess = FALSE;
+	}
+
+	GlobalUnlock(hglbAttr);
+	GlobalFree(hglbAttr);
+
+	return fSuccess;
 }
 
 
 /* CenterDialog ------------------------------------------------------------
-        Description:  Center the dialog over the frame window
-        Input      :  hdlg -- Dialog window handle
-        Output     :  None
+		Description:  Center the dialog over the frame window
+		Input	   :  hdlg -- Dialog window handle
+		Output	   :  None
 --------------------------------------------------------------------------*/
-void INTFUNC CenterDialog(HWND hdlg)
+void INTFUNC
+CenterDialog(HWND hdlg)
 {
-        HWND    hwndFrame;
-        RECT    rcDlg, rcScr, rcFrame;
-        int             cx, cy;
-
-        hwndFrame = GetParent(hdlg);
-
-        GetWindowRect(hdlg, &rcDlg);
-        cx = rcDlg.right  - rcDlg.left;
-        cy = rcDlg.bottom - rcDlg.top;
-
-        GetClientRect(hwndFrame, &rcFrame);
-        ClientToScreen(hwndFrame, (LPPOINT)(&rcFrame.left));
-        ClientToScreen(hwndFrame, (LPPOINT)(&rcFrame.right));
-        rcDlg.top    = rcFrame.top  + (((rcFrame.bottom - rcFrame.top) - cy) >> 1);
-        rcDlg.left   = rcFrame.left + (((rcFrame.right - rcFrame.left) - cx) >> 1);
-        rcDlg.bottom = rcDlg.top  + cy;
-        rcDlg.right  = rcDlg.left + cx;
-
-        GetWindowRect(GetDesktopWindow(), &rcScr);
-        if (rcDlg.bottom > rcScr.bottom)
-        {
-                rcDlg.bottom = rcScr.bottom;
-                rcDlg.top    = rcDlg.bottom - cy;
-        }
-        if (rcDlg.right  > rcScr.right)
-        {
-                rcDlg.right = rcScr.right;
-                rcDlg.left  = rcDlg.right - cx;
-        }
-
-        if (rcDlg.left < 0) rcDlg.left = 0;
-        if (rcDlg.top  < 0) rcDlg.top  = 0;
-
-        MoveWindow(hdlg, rcDlg.left, rcDlg.top, cx, cy, TRUE);
-        return;
+	HWND		hwndFrame;
+	RECT		rcDlg,
+				rcScr,
+				rcFrame;
+	int			cx,
+				cy;
+
+	hwndFrame = GetParent(hdlg);
+
+	GetWindowRect(hdlg, &rcDlg);
+	cx = rcDlg.right - rcDlg.left;
+	cy = rcDlg.bottom - rcDlg.top;
+
+	GetClientRect(hwndFrame, &rcFrame);
+	ClientToScreen(hwndFrame, (LPPOINT) (&rcFrame.left));
+	ClientToScreen(hwndFrame, (LPPOINT) (&rcFrame.right));
+	rcDlg.top = rcFrame.top + (((rcFrame.bottom - rcFrame.top) - cy) >> 1);
+	rcDlg.left = rcFrame.left + (((rcFrame.right - rcFrame.left) - cx) >> 1);
+	rcDlg.bottom = rcDlg.top + cy;
+	rcDlg.right = rcDlg.left + cx;
+
+	GetWindowRect(GetDesktopWindow(), &rcScr);
+	if (rcDlg.bottom > rcScr.bottom)
+	{
+		rcDlg.bottom = rcScr.bottom;
+		rcDlg.top = rcDlg.bottom - cy;
+	}
+	if (rcDlg.right > rcScr.right)
+	{
+		rcDlg.right = rcScr.right;
+		rcDlg.left = rcDlg.right - cx;
+	}
+
+	if (rcDlg.left < 0)
+		rcDlg.left = 0;
+	if (rcDlg.top < 0)
+		rcDlg.top = 0;
+
+	MoveWindow(hdlg, rcDlg.left, rcDlg.top, cx, cy, TRUE);
+	return;
 }
 
 /* ConfigDlgProc -----------------------------------------------------------
-  Description:  Manage add data source name dialog
-  Input      :  hdlg --- Dialog window handle
-                wMsg --- Message
-                wParam - Message parameter
-                lParam - Message parameter
-  Output     :  TRUE if message processed, FALSE otherwise
+  Description:	Manage add data source name dialog
+  Input		 :	hdlg --- Dialog window handle
+				wMsg --- Message
+				wParam - Message parameter
+				lParam - Message parameter
+  Output	 :	TRUE if message processed, FALSE otherwise
 --------------------------------------------------------------------------*/
 
 
-int CALLBACK ConfigDlgProc(HWND   hdlg,
-                           WORD   wMsg,
-                           WPARAM wParam,
-                           LPARAM lParam)
+int CALLBACK
+ConfigDlgProc(HWND hdlg,
+			  WORD wMsg,
+			  WPARAM wParam,
+			  LPARAM lParam)
 {
 
-	switch (wMsg) {
-	/* Initialize the dialog */
-	case WM_INITDIALOG:
+	switch (wMsg)
 	{
-		LPSETUPDLG lpsetupdlg = (LPSETUPDLG) lParam;
-		ConnInfo *ci = &lpsetupdlg->ci;
+			/* Initialize the dialog */
+			case WM_INITDIALOG:
+			{
+				LPSETUPDLG	lpsetupdlg = (LPSETUPDLG) lParam;
+				ConnInfo   *ci = &lpsetupdlg->ci;
 
-		/*	Hide the driver connect message */
-		ShowWindow(GetDlgItem(hdlg, DRV_MSG_LABEL), SW_HIDE);
+				/* Hide the driver connect message */
+				ShowWindow(GetDlgItem(hdlg, DRV_MSG_LABEL), SW_HIDE);
 
-		SetWindowLong(hdlg, DWL_USER, lParam);
-		CenterDialog(hdlg);                             /* Center dialog */
+				SetWindowLong(hdlg, DWL_USER, lParam);
+				CenterDialog(hdlg);		/* Center dialog */
 
-		/* NOTE: Values supplied in the attribute string will always */
-		/*       override settings in ODBC.INI */
+				/*
+				 * NOTE: Values supplied in the attribute string will
+				 * always
+				 */
+				/* override settings in ODBC.INI */
 
-		/*	Get the rest of the common attributes */
-		getDSNinfo(ci, CONN_DONT_OVERWRITE);
+				/* Get the rest of the common attributes */
+				getDSNinfo(ci, CONN_DONT_OVERWRITE);
 
-		/*	Fill in any defaults */
-		getDSNdefaults(ci);
+				/* Fill in any defaults */
+				getDSNdefaults(ci);
 
 
-		/* Initialize dialog fields */
-		SetDlgStuff(hdlg, ci);
+				/* Initialize dialog fields */
+				SetDlgStuff(hdlg, ci);
 
 
-		if (lpsetupdlg->fDefault) {
-			EnableWindow(GetDlgItem(hdlg, IDC_DSNAME), FALSE);
-			EnableWindow(GetDlgItem(hdlg, IDC_DSNAMETEXT), FALSE);
-		}
-		else
-			SendDlgItemMessage(hdlg, IDC_DSNAME,
-				EM_LIMITTEXT, (WPARAM)(MAXDSNAME-1), 0L);
+				if (lpsetupdlg->fDefault)
+				{
+					EnableWindow(GetDlgItem(hdlg, IDC_DSNAME), FALSE);
+					EnableWindow(GetDlgItem(hdlg, IDC_DSNAMETEXT), FALSE);
+				}
+				else
+					SendDlgItemMessage(hdlg, IDC_DSNAME,
+							 EM_LIMITTEXT, (WPARAM) (MAXDSNAME - 1), 0L);
 
-		SendDlgItemMessage(hdlg, IDC_DESC,
-			EM_LIMITTEXT, (WPARAM)(MAXDESC-1), 0L);
-		return TRUE;                                            /* Focus was not set */
-    }
+				SendDlgItemMessage(hdlg, IDC_DESC,
+							   EM_LIMITTEXT, (WPARAM) (MAXDESC - 1), 0L);
+				return TRUE;	/* Focus was not set */
+			}
 
 
-	/* Process buttons */
-	case WM_COMMAND:
+			/* Process buttons */
+		case WM_COMMAND:
 
-		switch (GET_WM_COMMAND_ID(wParam, lParam)) {
-		/* Ensure the OK button is enabled only when a data source name */
-		/* is entered */
-		case IDC_DSNAME:
-			if (GET_WM_COMMAND_CMD(wParam, lParam) == EN_CHANGE)
+			switch (GET_WM_COMMAND_ID(wParam, lParam))
 			{
-				char    szItem[MAXDSNAME];              /* Edit control text */
 
-				/* Enable/disable the OK button */
-				EnableWindow(GetDlgItem(hdlg, IDOK),
-					GetDlgItemText(hdlg, IDC_DSNAME,
-					szItem, sizeof(szItem)));
+					/*
+					 * Ensure the OK button is enabled only when a data
+					 * source name
+					 */
+					/* is entered */
+				case IDC_DSNAME:
+					if (GET_WM_COMMAND_CMD(wParam, lParam) == EN_CHANGE)
+					{
+						char		szItem[MAXDSNAME];	/* Edit control text */
 
-				return TRUE;
-			}
-			break;
+						/* Enable/disable the OK button */
+						EnableWindow(GetDlgItem(hdlg, IDOK),
+									 GetDlgItemText(hdlg, IDC_DSNAME,
+												szItem, sizeof(szItem)));
 
-		/* Accept results */
-		case IDOK:
-		{
-			LPSETUPDLG lpsetupdlg;
+						return TRUE;
+					}
+					break;
 
-			lpsetupdlg = (LPSETUPDLG)GetWindowLong(hdlg, DWL_USER);
-			/* Retrieve dialog values */
-			if (!lpsetupdlg->fDefault)
-					GetDlgItemText(hdlg, IDC_DSNAME,
-							lpsetupdlg->ci.dsn,
-							sizeof(lpsetupdlg->ci.dsn));
+					/* Accept results */
+				case IDOK:
+					{
+						LPSETUPDLG	lpsetupdlg;
 
+						lpsetupdlg = (LPSETUPDLG) GetWindowLong(hdlg, DWL_USER);
+						/* Retrieve dialog values */
+						if (!lpsetupdlg->fDefault)
+							GetDlgItemText(hdlg, IDC_DSNAME,
+										   lpsetupdlg->ci.dsn,
+										   sizeof(lpsetupdlg->ci.dsn));
 
-			/*	Get Dialog Values */
-			GetDlgStuff(hdlg, &lpsetupdlg->ci);
 
-			/* Update ODBC.INI */
-			SetDSNAttributes(hdlg, lpsetupdlg);
-        }
+						/* Get Dialog Values */
+						GetDlgStuff(hdlg, &lpsetupdlg->ci);
 
-		/* Return to caller */
-		case IDCANCEL:
-			EndDialog(hdlg, wParam);
-			return TRUE;
+						/* Update ODBC.INI */
+						SetDSNAttributes(hdlg, lpsetupdlg);
+					}
 
-		case IDC_DRIVER:
+					/* Return to caller */
+				case IDCANCEL:
+					EndDialog(hdlg, wParam);
+					return TRUE;
 
-			DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DRV),
-									hdlg, driver_optionsProc, (LPARAM) NULL);
+				case IDC_DRIVER:
 
-			return TRUE;
+					DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DRV),
+								hdlg, driver_optionsProc, (LPARAM) NULL);
 
-		case IDC_DATASOURCE:
-			{
-			LPSETUPDLG lpsetupdlg;
+					return TRUE;
+
+				case IDC_DATASOURCE:
+					{
+						LPSETUPDLG	lpsetupdlg;
 
-			lpsetupdlg = (LPSETUPDLG)GetWindowLong(hdlg, DWL_USER);
+						lpsetupdlg = (LPSETUPDLG) GetWindowLong(hdlg, DWL_USER);
 
-			DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DS),
-									hdlg, ds_optionsProc, (LPARAM) &lpsetupdlg->ci);
+						DialogBoxParam(s_hModule, MAKEINTRESOURCE(DLG_OPTIONS_DS),
+						hdlg, ds_optionsProc, (LPARAM) & lpsetupdlg->ci);
 
-			return TRUE;
+						return TRUE;
+					}
 			}
-		}
 
-		break;
+			break;
 	}
 
 	/* Message not processed */
@@ -315,97 +340,98 @@ int CALLBACK ConfigDlgProc(HWND   hdlg,
 
 
 /* ParseAttributes ---------------------------------------------------------
-  Description:  Parse attribute string moving values into the aAttr array
-  Input      :  lpszAttributes - Pointer to attribute string
-  Output     :  None (global aAttr normally updated)
+  Description:	Parse attribute string moving values into the aAttr array
+  Input		 :	lpszAttributes - Pointer to attribute string
+  Output	 :	None (global aAttr normally updated)
 --------------------------------------------------------------------------*/
-void INTFUNC ParseAttributes(LPCSTR lpszAttributes, LPSETUPDLG lpsetupdlg)
+void INTFUNC
+ParseAttributes(LPCSTR lpszAttributes, LPSETUPDLG lpsetupdlg)
 {
-LPCSTR  lpsz;
-LPCSTR  lpszStart;
-char    aszKey[MAXKEYLEN];
-int     cbKey;
-char    value[MAXPGPATH];
-
-		memset(&lpsetupdlg->ci, 0, sizeof(ConnInfo));
-
-        for (lpsz=lpszAttributes; *lpsz; lpsz++)
-        {  /*  Extract key name (e.g., DSN), it must be terminated by an equals */
-                lpszStart = lpsz;
-                for (;; lpsz++)
-                {
-                        if (!*lpsz)
-                                return;         /* No key was found */
-                        else if (*lpsz == '=')
-                                break;          /* Valid key found */
-                }
-                /* Determine the key's index in the key table (-1 if not found) */
-                cbKey    = lpsz - lpszStart;
-                if (cbKey < sizeof(aszKey))
-                {
-
-                        _fmemcpy(aszKey, lpszStart, cbKey);
-                        aszKey[cbKey] = '\0';
-                }
-
-                /* Locate end of key value */
-                lpszStart = ++lpsz;
-                for (; *lpsz; lpsz++);
-
-
-                /* lpsetupdlg->aAttr[iElement].fSupplied = TRUE; */
-                _fmemcpy(value, lpszStart, MIN(lpsz-lpszStart+1, MAXPGPATH));
-
-				mylog("aszKey='%s', value='%s'\n", aszKey, value);
-
-				/*	Copy the appropriate value to the conninfo  */
-				copyAttributes(&lpsetupdlg->ci, aszKey, value);
-        }
-        return;
+	LPCSTR		lpsz;
+	LPCSTR		lpszStart;
+	char		aszKey[MAXKEYLEN];
+	int			cbKey;
+	char		value[MAXPGPATH];
+
+	memset(&lpsetupdlg->ci, 0, sizeof(ConnInfo));
+
+	for (lpsz = lpszAttributes; *lpsz; lpsz++)
+	{							/* Extract key name (e.g., DSN), it must
+								 * be terminated by an equals */
+		lpszStart = lpsz;
+		for (;; lpsz++)
+		{
+			if (!*lpsz)
+				return;			/* No key was found */
+			else if (*lpsz == '=')
+				break;			/* Valid key found */
+		}
+		/* Determine the key's index in the key table (-1 if not found) */
+		cbKey = lpsz - lpszStart;
+		if (cbKey < sizeof(aszKey))
+		{
+
+			_fmemcpy(aszKey, lpszStart, cbKey);
+			aszKey[cbKey] = '\0';
+		}
+
+		/* Locate end of key value */
+		lpszStart = ++lpsz;
+		for (; *lpsz; lpsz++);
+
+
+		/* lpsetupdlg->aAttr[iElement].fSupplied = TRUE; */
+		_fmemcpy(value, lpszStart, MIN(lpsz - lpszStart + 1, MAXPGPATH));
+
+		mylog("aszKey='%s', value='%s'\n", aszKey, value);
+
+		/* Copy the appropriate value to the conninfo  */
+		copyAttributes(&lpsetupdlg->ci, aszKey, value);
+	}
+	return;
 }
 
 
 /* SetDSNAttributes --------------------------------------------------------
-  Description:  Write data source attributes to ODBC.INI
-  Input      :  hwnd - Parent window handle (plus globals)
-  Output     :  TRUE if successful, FALSE otherwise
+  Description:	Write data source attributes to ODBC.INI
+  Input		 :	hwnd - Parent window handle (plus globals)
+  Output	 :	TRUE if successful, FALSE otherwise
 --------------------------------------------------------------------------*/
 
-BOOL INTFUNC SetDSNAttributes(HWND hwndParent, LPSETUPDLG lpsetupdlg)
+BOOL INTFUNC
+SetDSNAttributes(HWND hwndParent, LPSETUPDLG lpsetupdlg)
 {
-LPCSTR  lpszDSN;                                                /* Pointer to data source name */
-    
-        lpszDSN = lpsetupdlg->ci.dsn;
+	LPCSTR		lpszDSN;		/* Pointer to data source name */
 
-        /* Validate arguments */
-        if (lpsetupdlg->fNewDSN && !*lpsetupdlg->ci.dsn)
-                return FALSE;
+	lpszDSN = lpsetupdlg->ci.dsn;
 
-        /* Write the data source name */
-        if (!SQLWriteDSNToIni(lpszDSN, lpsetupdlg->lpszDrvr))
-        {
-                if (hwndParent)
-                {
-                        char  szBuf[MAXPGPATH];
-                        char  szMsg[MAXPGPATH];
+	/* Validate arguments */
+	if (lpsetupdlg->fNewDSN && !*lpsetupdlg->ci.dsn)
+		return FALSE;
 
-                        LoadString(s_hModule, IDS_BADDSN, szBuf, sizeof(szBuf));
-                        wsprintf(szMsg, szBuf, lpszDSN);
-                        LoadString(s_hModule, IDS_MSGTITLE, szBuf, sizeof(szBuf));
-                        MessageBox(hwndParent, szMsg, szBuf, MB_ICONEXCLAMATION | MB_OK);
-                }
-                return FALSE;
-        }
+	/* Write the data source name */
+	if (!SQLWriteDSNToIni(lpszDSN, lpsetupdlg->lpszDrvr))
+	{
+		if (hwndParent)
+		{
+			char		szBuf[MAXPGPATH];
+			char		szMsg[MAXPGPATH];
+
+			LoadString(s_hModule, IDS_BADDSN, szBuf, sizeof(szBuf));
+			wsprintf(szMsg, szBuf, lpszDSN);
+			LoadString(s_hModule, IDS_MSGTITLE, szBuf, sizeof(szBuf));
+			MessageBox(hwndParent, szMsg, szBuf, MB_ICONEXCLAMATION | MB_OK);
+		}
+		return FALSE;
+	}
 
 
-        /* Update ODBC.INI */
-		writeDSNinfo(&lpsetupdlg->ci);
+	/* Update ODBC.INI */
+	writeDSNinfo(&lpsetupdlg->ci);
 
 
 	/* If the data source name has changed, remove the old name */
-        if (lstrcmpi(lpsetupdlg->szDSN, lpsetupdlg->ci.dsn))
-        {
-                SQLRemoveDSNFromIni(lpsetupdlg->szDSN);
-        }
-        return TRUE;
+	if (lstrcmpi(lpsetupdlg->szDSN, lpsetupdlg->ci.dsn))
+		SQLRemoveDSNFromIni(lpsetupdlg->szDSN);
+	return TRUE;
 }
diff --git a/src/interfaces/odbc/socket.c b/src/interfaces/odbc/socket.c
index 917951f49d4df68ee59a396193906dd9da6001bf..dfc8175db9ce7a07d3dd9fd94f522c99b5a713ce 100644
--- a/src/interfaces/odbc/socket.c
+++ b/src/interfaces/odbc/socket.c
@@ -1,13 +1,13 @@
-/* Module:          socket.c
+/* Module:			socket.c
  *
- * Description:     This module contains functions for low level socket
- *                  operations (connecting/reading/writing to the backend)
+ * Description:		This module contains functions for low level socket
+ *					operations (connecting/reading/writing to the backend)
  *
- * Classes:         SocketClass (Functions prefix: "SOCK_")
+ * Classes:			SocketClass (Functions prefix: "SOCK_")
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -19,7 +19,7 @@
 
 #ifndef WIN32
 #include <stdlib.h>
-#include <string.h>	/* for memset */
+#include <string.h>				/* for memset */
 #endif
 
 extern GLOBAL_VALUES globals;
@@ -36,47 +36,49 @@ extern GLOBAL_VALUES globals;
 
 
 void
-SOCK_clear_error(SocketClass *self)
+SOCK_clear_error(SocketClass * self)
 {
-	self->errornumber = 0; 
-	self->errormsg = NULL; 
+	self->errornumber = 0;
+	self->errormsg = NULL;
 }
 
-SocketClass * 
+SocketClass *
 SOCK_Constructor()
 {
-SocketClass *rv;
+	SocketClass *rv;
 
-    rv = (SocketClass *) malloc(sizeof(SocketClass));
+	rv = (SocketClass *) malloc(sizeof(SocketClass));
 
-    if (rv != NULL) {
-		rv->socket = (SOCKETFD) -1;
+	if (rv != NULL)
+	{
+		rv->socket = (SOCKETFD) - 1;
 		rv->buffer_filled_in = 0;
 		rv->buffer_filled_out = 0;
 		rv->buffer_read_in = 0;
 
 		rv->buffer_in = (unsigned char *) malloc(globals.socket_buffersize);
-		if ( ! rv->buffer_in)
+		if (!rv->buffer_in)
 			return NULL;
 
 		rv->buffer_out = (unsigned char *) malloc(globals.socket_buffersize);
-		if ( ! rv->buffer_out)
+		if (!rv->buffer_out)
 			return NULL;
-		
-        rv->errormsg = NULL;
-        rv->errornumber = 0;
+
+		rv->errormsg = NULL;
+		rv->errornumber = 0;
 
 		rv->reverse = FALSE;
-    } 
-    return rv;
+	}
+	return rv;
 
 }
 
 void
-SOCK_Destructor(SocketClass *self)
+SOCK_Destructor(SocketClass * self)
 {
-	if (self->socket != -1) {
-		if ( ! shutdown(self->socket, 2)) /* no sends or receives */
+	if (self->socket != -1)
+	{
+		if (!shutdown(self->socket, 2)) /* no sends or receives */
 		{
 			SOCK_put_char(self, 'X');
 			SOCK_flush_output(self);
@@ -95,28 +97,31 @@ SOCK_Destructor(SocketClass *self)
 }
 
 
-char 
-SOCK_connect_to(SocketClass *self, unsigned short port, char *hostname)
+char
+SOCK_connect_to(SocketClass * self, unsigned short port, char *hostname)
 {
-struct hostent *host;
-struct sockaddr_in sadr;
-unsigned long iaddr;
+	struct hostent *host;
+	struct sockaddr_in sadr;
+	unsigned long iaddr;
 
-	if (self->socket != -1) {
+	if (self->socket != -1)
+	{
 		self->errornumber = SOCKET_ALREADY_CONNECTED;
 		self->errormsg = "Socket is already connected";
 		return 0;
 	}
 
-	memset((char *)&sadr, 0, sizeof(sadr));
+	memset((char *) &sadr, 0, sizeof(sadr));
 
-	/*	If it is a valid IP address, use it.
-		Otherwise use hostname lookup. 
-	*/
+	/*
+	 * If it is a valid IP address, use it. Otherwise use hostname lookup.
+	 */
 	iaddr = inet_addr(hostname);
-	if (iaddr == INADDR_NONE) {
+	if (iaddr == INADDR_NONE)
+	{
 		host = gethostbyname(hostname);
-		if (host == NULL) {
+		if (host == NULL)
+		{
 			self->errornumber = SOCKET_HOST_NOT_FOUND;
 			self->errormsg = "Could not resolve hostname.";
 			return 0;
@@ -124,176 +129,186 @@ unsigned long iaddr;
 		memcpy(&(sadr.sin_addr), host->h_addr, host->h_length);
 	}
 	else
-		memcpy(&(sadr.sin_addr), (struct in_addr *) &iaddr, sizeof(iaddr));
+		memcpy(&(sadr.sin_addr), (struct in_addr *) & iaddr, sizeof(iaddr));
 
 	sadr.sin_family = AF_INET;
 	sadr.sin_port = htons(port);
 
 	self->socket = socket(AF_INET, SOCK_STREAM, 0);
-	if (self->socket == -1) {
+	if (self->socket == -1)
+	{
 		self->errornumber = SOCKET_COULD_NOT_CREATE_SOCKET;
 		self->errormsg = "Could not create Socket.";
 		return 0;
 	}
 
-	if ( connect(self->socket, (struct sockaddr *)&(sadr),
-			sizeof(sadr))  < 0) {
+	if (connect(self->socket, (struct sockaddr *) & (sadr),
+				sizeof(sadr)) < 0)
+	{
 
 		self->errornumber = SOCKET_COULD_NOT_CONNECT;
 		self->errormsg = "Could not connect to remote socket.";
 		closesocket(self->socket);
-		self->socket = (SOCKETFD) -1;
+		self->socket = (SOCKETFD) - 1;
 		return 0;
 	}
 	return 1;
 }
 
 
-void 
-SOCK_get_n_char(SocketClass *self, char *buffer, int len)
+void
+SOCK_get_n_char(SocketClass * self, char *buffer, int len)
 {
-int lf;
+	int			lf;
 
-	if ( ! buffer) {
+	if (!buffer)
+	{
 		self->errornumber = SOCKET_NULLPOINTER_PARAMETER;
 		self->errormsg = "get_n_char was called with NULL-Pointer";
 		return;
 	}
 
-	for(lf=0; lf < len; lf++)
+	for (lf = 0; lf < len; lf++)
 		buffer[lf] = SOCK_get_next_byte(self);
 }
 
 
-void 
-SOCK_put_n_char(SocketClass *self, char *buffer, int len)
+void
+SOCK_put_n_char(SocketClass * self, char *buffer, int len)
 {
-int lf;
+	int			lf;
 
-	if ( ! buffer) {
+	if (!buffer)
+	{
 		self->errornumber = SOCKET_NULLPOINTER_PARAMETER;
 		self->errormsg = "put_n_char was called with NULL-Pointer";
 		return;
 	}
 
-	for(lf=0; lf < len; lf++)
-		SOCK_put_next_byte(self, (unsigned char)buffer[lf]);
+	for (lf = 0; lf < len; lf++)
+		SOCK_put_next_byte(self, (unsigned char) buffer[lf]);
 }
 
 
-/*  bufsize must include room for the null terminator 
-	will read at most bufsize-1 characters + null. 
+/*	bufsize must include room for the null terminator
+	will read at most bufsize-1 characters + null.
 */
-void 
-SOCK_get_string(SocketClass *self, char *buffer, int bufsize)
+void
+SOCK_get_string(SocketClass * self, char *buffer, int bufsize)
 {
-register int lf = 0;
+	register int lf = 0;
 
 	for (lf = 0; lf < bufsize; lf++)
-		if ( ! (buffer[lf] = SOCK_get_next_byte(self)))
+		if (!(buffer[lf] = SOCK_get_next_byte(self)))
 			return;
-		
-	buffer[bufsize-1] = '\0';
+
+	buffer[bufsize - 1] = '\0';
 }
 
 
-void 
-SOCK_put_string(SocketClass *self, char *string)
+void
+SOCK_put_string(SocketClass * self, char *string)
 {
-register int lf;
-int len;
+	register int lf;
+	int			len;
 
-	len = strlen(string)+1;
+	len = strlen(string) + 1;
 
-	for(lf = 0; lf < len; lf++)
-		SOCK_put_next_byte(self, (unsigned char)string[lf]);
+	for (lf = 0; lf < len; lf++)
+		SOCK_put_next_byte(self, (unsigned char) string[lf]);
 }
 
 
-int 
-SOCK_get_int(SocketClass *self, short len)
+int
+SOCK_get_int(SocketClass * self, short len)
 {
-char buf[4];
-
-	switch (len) {
-	case 2:
-		SOCK_get_n_char(self, buf, len);
-		if (self->reverse)
-			return *((unsigned short *) buf);
-		else
-			return ntohs( *((unsigned short *) buf) );
-
-	case 4:
-		SOCK_get_n_char(self, buf, len);
-		if (self->reverse)
-			return *((unsigned int *) buf);
-		else
-			return ntohl( *((unsigned int *) buf) );
-
-	default:
-		self->errornumber = SOCKET_GET_INT_WRONG_LENGTH;
-		self->errormsg = "Cannot read ints of that length";
-		return 0;
+	char		buf[4];
+
+	switch (len)
+	{
+		case 2:
+			SOCK_get_n_char(self, buf, len);
+			if (self->reverse)
+				return *((unsigned short *) buf);
+			else
+				return ntohs(*((unsigned short *) buf));
+
+		case 4:
+			SOCK_get_n_char(self, buf, len);
+			if (self->reverse)
+				return *((unsigned int *) buf);
+			else
+				return ntohl(*((unsigned int *) buf));
+
+		default:
+			self->errornumber = SOCKET_GET_INT_WRONG_LENGTH;
+			self->errormsg = "Cannot read ints of that length";
+			return 0;
 	}
 }
 
 
-void 
-SOCK_put_int(SocketClass *self, int value, short len)
+void
+SOCK_put_int(SocketClass * self, int value, short len)
 {
-unsigned int rv;
+	unsigned int rv;
 
-	switch (len) {
-	case 2:
-		rv = self->reverse ? value : htons( (unsigned short) value);
-		SOCK_put_n_char(self, (char *) &rv, 2);
-		return;
+	switch (len)
+	{
+		case 2:
+			rv = self->reverse ? value : htons((unsigned short) value);
+			SOCK_put_n_char(self, (char *) &rv, 2);
+			return;
 
-	case 4:
-		rv = self->reverse ? value : htonl( (unsigned int) value);
-		SOCK_put_n_char(self, (char *) &rv, 4);
-		return;
+		case 4:
+			rv = self->reverse ? value : htonl((unsigned int) value);
+			SOCK_put_n_char(self, (char *) &rv, 4);
+			return;
 
-	default:
-		self->errornumber = SOCKET_PUT_INT_WRONG_LENGTH;
-		self->errormsg = "Cannot write ints of that length";
-		return;
-	 }
+		default:
+			self->errornumber = SOCKET_PUT_INT_WRONG_LENGTH;
+			self->errormsg = "Cannot write ints of that length";
+			return;
+	}
 }
 
 
-void 
-SOCK_flush_output(SocketClass *self)
+void
+SOCK_flush_output(SocketClass * self)
 {
-int written;
+	int			written;
 
-	written = send(self->socket, (char *)self->buffer_out, self->buffer_filled_out, 0);
-	if (written != self->buffer_filled_out) {
+	written = send(self->socket, (char *) self->buffer_out, self->buffer_filled_out, 0);
+	if (written != self->buffer_filled_out)
+	{
 		self->errornumber = SOCKET_WRITE_ERROR;
 		self->errormsg = "Could not flush socket buffer.";
 	}
 	self->buffer_filled_out = 0;
 }
 
-unsigned char 
-SOCK_get_next_byte(SocketClass *self)
+unsigned char
+SOCK_get_next_byte(SocketClass * self)
 {
 
-	if (self->buffer_read_in >= self->buffer_filled_in) {
+	if (self->buffer_read_in >= self->buffer_filled_in)
+	{
 		/* there are no more bytes left in the buffer -> */
-	  	/* reload the buffer */
+		/* reload the buffer */
 
 		self->buffer_read_in = 0;
-		self->buffer_filled_in = recv(self->socket, (char *)self->buffer_in, globals.socket_buffersize, 0);
+		self->buffer_filled_in = recv(self->socket, (char *) self->buffer_in, globals.socket_buffersize, 0);
 
 		mylog("read %d, global_socket_buffersize=%d\n", self->buffer_filled_in, globals.socket_buffersize);
 
-		if (self->buffer_filled_in == -1) {
+		if (self->buffer_filled_in == -1)
+		{
 			self->errornumber = SOCKET_READ_ERROR;
 			self->errormsg = "Error while reading from the socket.";
 			self->buffer_filled_in = 0;
 		}
-		if (self->buffer_filled_in == 0) {
+		if (self->buffer_filled_in == 0)
+		{
 			self->errornumber = SOCKET_CLOSED;
 			self->errormsg = "Socket has been closed.";
 			self->buffer_filled_in = 0;
@@ -303,17 +318,19 @@ SOCK_get_next_byte(SocketClass *self)
 	return self->buffer_in[self->buffer_read_in++];
 }
 
-void 
-SOCK_put_next_byte(SocketClass *self, unsigned char next_byte)
+void
+SOCK_put_next_byte(SocketClass * self, unsigned char next_byte)
 {
-int bytes_sent;
+	int			bytes_sent;
 
 	self->buffer_out[self->buffer_filled_out++] = next_byte;
 
-	if (self->buffer_filled_out == globals.socket_buffersize) {
+	if (self->buffer_filled_out == globals.socket_buffersize)
+	{
 		/* buffer is full, so write it out */
-		bytes_sent = send(self->socket, (char *)self->buffer_out, globals.socket_buffersize, 0);
-		if (bytes_sent != globals.socket_buffersize) {
+		bytes_sent = send(self->socket, (char *) self->buffer_out, globals.socket_buffersize, 0);
+		if (bytes_sent != globals.socket_buffersize)
+		{
 			self->errornumber = SOCKET_WRITE_ERROR;
 			self->errormsg = "Error while writing to the socket.";
 		}
diff --git a/src/interfaces/odbc/socket.h b/src/interfaces/odbc/socket.h
index 0b4b9101d6fa483b19a54e6e80f0048e572fa102..08bd63528c3eecf32dac9fca27fd764eae58da67 100644
--- a/src/interfaces/odbc/socket.h
+++ b/src/interfaces/odbc/socket.h
@@ -1,9 +1,9 @@
 
-/* File:            socket.h
+/* File:			socket.h
  *
- * Description:     See "socket.c"
+ * Description:		See "socket.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -25,10 +25,11 @@
 #define closesocket(xxx) close(xxx)
 #define SOCKETFD int
 
-#ifndef       INADDR_NONE
+#ifndef		  INADDR_NONE
 #ifndef _IN_ADDR_T
 #define _IN_ADDR_T
-typedef unsigned int    in_addr_t;
+typedef unsigned int in_addr_t;
+
 #endif
 #define INADDR_NONE ((in_addr_t)-1)
 #endif
@@ -52,20 +53,22 @@ typedef unsigned int    in_addr_t;
 #define SOCKET_CLOSED 10
 
 
-struct SocketClass_ {
+struct SocketClass_
+{
 
-	int buffer_filled_in;
-	int buffer_filled_out;
-	int buffer_read_in;
+	int			buffer_filled_in;
+	int			buffer_filled_out;
+	int			buffer_read_in;
 	unsigned char *buffer_in;
 	unsigned char *buffer_out;
 
-	SOCKETFD socket;
+	SOCKETFD	socket;
 
-	char *errormsg;
-	int errornumber;
+	char	   *errormsg;
+	int			errornumber;
 
-	char reverse;	/* used to handle Postgres 6.2 protocol (reverse byte order) */
+	char		reverse;		/* used to handle Postgres 6.2 protocol
+								 * (reverse byte order) */
 
 };
 
@@ -80,17 +83,17 @@ struct SocketClass_ {
 
 /* Socket prototypes */
 SocketClass *SOCK_Constructor(void);
-void SOCK_Destructor(SocketClass *self);
-char SOCK_connect_to(SocketClass *self, unsigned short port, char *hostname);
-void SOCK_get_n_char(SocketClass *self, char *buffer, int len);
-void SOCK_put_n_char(SocketClass *self, char *buffer, int len);
-void SOCK_get_string(SocketClass *self, char *buffer, int bufsize);
-void SOCK_put_string(SocketClass *self, char *string);
-int SOCK_get_int(SocketClass *self, short len);
-void SOCK_put_int(SocketClass *self, int value, short len);
-void SOCK_flush_output(SocketClass *self);
-unsigned char SOCK_get_next_byte(SocketClass *self);
-void SOCK_put_next_byte(SocketClass *self, unsigned char next_byte);
-void SOCK_clear_error(SocketClass *self);
+void		SOCK_Destructor(SocketClass * self);
+char		SOCK_connect_to(SocketClass * self, unsigned short port, char *hostname);
+void		SOCK_get_n_char(SocketClass * self, char *buffer, int len);
+void		SOCK_put_n_char(SocketClass * self, char *buffer, int len);
+void		SOCK_get_string(SocketClass * self, char *buffer, int bufsize);
+void		SOCK_put_string(SocketClass * self, char *string);
+int			SOCK_get_int(SocketClass * self, short len);
+void		SOCK_put_int(SocketClass * self, int value, short len);
+void		SOCK_flush_output(SocketClass * self);
+unsigned char SOCK_get_next_byte(SocketClass * self);
+void		SOCK_put_next_byte(SocketClass * self, unsigned char next_byte);
+void		SOCK_clear_error(SocketClass * self);
 
 #endif
diff --git a/src/interfaces/odbc/statement.c b/src/interfaces/odbc/statement.c
index 82eaffefd558fff8c3c73d98061a2978f28e694b..0069d5e34138a1ae149b42a4beec020dec0df35d 100644
--- a/src/interfaces/odbc/statement.c
+++ b/src/interfaces/odbc/statement.c
@@ -1,13 +1,13 @@
-/* Module:          statement.c
+/* Module:			statement.c
  *
- * Description:     This module contains functions related to creating
- *                  and manipulating a statement.
+ * Description:		This module contains functions related to creating
+ *					and manipulating a statement.
  *
- * Classes:         StatementClass (Functions prefix: "SC_")
+ * Classes:			StatementClass (Functions prefix: "SC_")
  *
- * API functions:   SQLAllocStmt, SQLFreeStmt
+ * API functions:	SQLAllocStmt, SQLFreeStmt
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -38,40 +38,65 @@ extern GLOBAL_VALUES globals;
 
 #ifndef WIN32
 #ifndef HAVE_STRICMP
-#define stricmp(s1,s2) 		strcasecmp(s1,s2)
+#define stricmp(s1,s2)		strcasecmp(s1,s2)
 #define strnicmp(s1,s2,n)	strncasecmp(s1,s2,n)
 #endif
 #endif
 #define PRN_NULLCHECK
 
 /*	Map sql commands to statement types */
-static struct {
-	int  type;
-	char *s;
-} Statement_Type[] = {
-	{ STMT_TYPE_SELECT, "SELECT" },
-	{ STMT_TYPE_INSERT, "INSERT" },
-	{ STMT_TYPE_UPDATE, "UPDATE" },
-	{ STMT_TYPE_DELETE, "DELETE" },
-	{ STMT_TYPE_CREATE, "CREATE" },
-	{ STMT_TYPE_ALTER,  "ALTER"  },
-	{ STMT_TYPE_DROP,   "DROP"   },
-	{ STMT_TYPE_GRANT,  "GRANT"  },
-	{ STMT_TYPE_REVOKE, "REVOKE" },
-	{      0,            NULL    }
+static struct
+{
+	int			type;
+	char	   *s;
+}			Statement_Type[] =
+
+{
+	{
+		STMT_TYPE_SELECT, "SELECT"
+	},
+	{
+		STMT_TYPE_INSERT, "INSERT"
+	},
+	{
+		STMT_TYPE_UPDATE, "UPDATE"
+	},
+	{
+		STMT_TYPE_DELETE, "DELETE"
+	},
+	{
+		STMT_TYPE_CREATE, "CREATE"
+	},
+	{
+		STMT_TYPE_ALTER, "ALTER"
+	},
+	{
+		STMT_TYPE_DROP, "DROP"
+	},
+	{
+		STMT_TYPE_GRANT, "GRANT"
+	},
+	{
+		STMT_TYPE_REVOKE, "REVOKE"
+	},
+	{
+		0, NULL
+	}
 };
 
 
-RETCODE SQL_API SQLAllocStmt(HDBC      hdbc,
-			     HSTMT FAR *phstmt)
+RETCODE SQL_API
+SQLAllocStmt(HDBC hdbc,
+			 HSTMT FAR * phstmt)
 {
-static char *func="SQLAllocStmt";
-ConnectionClass *conn = (ConnectionClass *) hdbc;
-StatementClass *stmt;
+	static char *func = "SQLAllocStmt";
+	ConnectionClass *conn = (ConnectionClass *) hdbc;
+	StatementClass *stmt;
 
 	mylog("%s: entering...\n", func);
 
-	if( ! conn) {
+	if (!conn)
+	{
 		CC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
@@ -80,7 +105,8 @@ StatementClass *stmt;
 
 	mylog("**** SQLAllocStmt: hdbc = %u, stmt = %u\n", hdbc, stmt);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		conn->errornumber = CONN_STMT_ALLOC_ERROR;
 		conn->errormsg = "No more memory to allocate a further SQL-statement";
 		*phstmt = SQL_NULL_HSTMT;
@@ -88,56 +114,65 @@ StatementClass *stmt;
 		return SQL_ERROR;
 	}
 
-    if ( ! CC_add_statement(conn, stmt)) {
-	conn->errormsg = "Maximum number of connections exceeded.";
-	conn->errornumber = CONN_STMT_ALLOC_ERROR;
+	if (!CC_add_statement(conn, stmt))
+	{
+		conn->errormsg = "Maximum number of connections exceeded.";
+		conn->errornumber = CONN_STMT_ALLOC_ERROR;
 		CC_log_error(func, "", conn);
-	SC_Destructor(stmt);
+		SC_Destructor(stmt);
 		*phstmt = SQL_NULL_HSTMT;
-	return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
 	*phstmt = (HSTMT) stmt;
 
-	/*	Copy default statement options based from Connection options
-	*/
+	/*
+	 * Copy default statement options based from Connection options
+	 */
 	stmt->options = conn->stmtOptions;
 
 
-	/*	Save the handle for later */
+	/* Save the handle for later */
 	stmt->phstmt = phstmt;
 
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
 
-RETCODE SQL_API SQLFreeStmt(HSTMT     hstmt,
-			    UWORD     fOption)
+RETCODE SQL_API
+SQLFreeStmt(HSTMT hstmt,
+			UWORD fOption)
 {
-static char *func="SQLFreeStmt";
-StatementClass *stmt = (StatementClass *) hstmt;
+	static char *func = "SQLFreeStmt";
+	StatementClass *stmt = (StatementClass *) hstmt;
 
 	mylog("%s: entering...hstmt=%u, fOption=%d\n", func, hstmt, fOption);
 
-	if ( ! stmt) {
+	if (!stmt)
+	{
 		SC_log_error(func, "", NULL);
 		return SQL_INVALID_HANDLE;
 	}
 
-	if (fOption == SQL_DROP) {
+	if (fOption == SQL_DROP)
+	{
 		ConnectionClass *conn = stmt->hdbc;
 
 		/* Remove the statement from the connection's statement list */
-		if ( conn) {
-			if ( ! CC_remove_statement(conn, stmt)) {
+		if (conn)
+		{
+			if (!CC_remove_statement(conn, stmt))
+			{
 				stmt->errornumber = STMT_SEQUENCE_ERROR;
 				stmt->errormsg = "Statement is currently executing a transaction.";
 				SC_log_error(func, "", stmt);
-				return SQL_ERROR;  /* stmt may be executing a transaction */
+				return SQL_ERROR;		/* stmt may be executing a
+										 * transaction */
 			}
 
-			/*	Free any cursors and discard any result info */
-			if (stmt->result) {
+			/* Free any cursors and discard any result info */
+			if (stmt->result)
+			{
 				QR_Destructor(stmt->result);
 				stmt->result = NULL;
 			}
@@ -146,29 +181,38 @@ StatementClass *stmt = (StatementClass *) hstmt;
 		/* Destroy the statement and free any results, cursors, etc. */
 		SC_Destructor(stmt);
 
-    } else if (fOption == SQL_UNBIND) {
+	}
+	else if (fOption == SQL_UNBIND)
+	{
 		SC_unbind_cols(stmt);
 
-    } else if (fOption == SQL_CLOSE) {
+	}
+	else if (fOption == SQL_CLOSE)
+	{
 		/* this should discard all the results, but leave the statement */
 		/* itself in place (it can be executed again) */
-	if (!SC_recycle_statement(stmt)) {
-		/*	errormsg passed in above */
+		if (!SC_recycle_statement(stmt))
+		{
+			/* errormsg passed in above */
 			SC_log_error(func, "", stmt);
-	    return SQL_ERROR;
+			return SQL_ERROR;
 		}
 
-    } else if(fOption == SQL_RESET_PARAMS) {
+	}
+	else if (fOption == SQL_RESET_PARAMS)
+	{
 		SC_free_params(stmt, STMT_FREE_PARAMS_ALL);
 
-    } else {
-	stmt->errormsg = "Invalid option passed to SQLFreeStmt.";
-	stmt->errornumber = STMT_OPTION_OUT_OF_RANGE_ERROR;
+	}
+	else
+	{
+		stmt->errormsg = "Invalid option passed to SQLFreeStmt.";
+		stmt->errornumber = STMT_OPTION_OUT_OF_RANGE_ERROR;
 		SC_log_error(func, "", stmt);
-	return SQL_ERROR;
-    }
+		return SQL_ERROR;
+	}
 
-    return SQL_SUCCESS;
+	return SQL_SUCCESS;
 }
 
 
@@ -177,7 +221,7 @@ StatementClass *stmt = (StatementClass *) hstmt;
  * StatementClass implementation
  */
 void
-InitializeStatementOptions(StatementOptions *opt)
+InitializeStatementOptions(StatementOptions * opt)
 {
 	opt->maxRows = 0;			/* driver returns all rows */
 	opt->maxLength = 0;			/* driver returns all data for char/binary */
@@ -193,11 +237,12 @@ InitializeStatementOptions(StatementOptions *opt)
 StatementClass *
 SC_Constructor(void)
 {
-StatementClass *rv;
+	StatementClass *rv;
 
 	rv = (StatementClass *) malloc(sizeof(StatementClass));
-	if (rv) {
-		rv->hdbc = NULL;       /* no connection associated yet */
+	if (rv)
+	{
+		rv->hdbc = NULL;		/* no connection associated yet */
 		rv->phstmt = NULL;
 		rv->result = NULL;
 		rv->manual_result = FALSE;
@@ -236,7 +281,7 @@ StatementClass *rv;
 		rv->lobj_fd = -1;
 		rv->cursor_name[0] = '\0';
 
-		/*	Parse Stuff */
+		/* Parse Stuff */
 		rv->ti = NULL;
 		rv->fi = NULL;
 		rv->ntab = 0;
@@ -244,26 +289,28 @@ StatementClass *rv;
 		rv->parse_status = STMT_PARSE_NONE;
 
 
-		/*  Clear Statement Options -- defaults will be set in AllocStmt */
+		/* Clear Statement Options -- defaults will be set in AllocStmt */
 		memset(&rv->options, 0, sizeof(StatementOptions));
 	}
 	return rv;
 }
 
 char
-SC_Destructor(StatementClass *self)
+SC_Destructor(StatementClass * self)
 {
 
 	mylog("SC_Destructor: self=%u, self->result=%u, self->hdbc=%u\n", self, self->result, self->hdbc);
-	if (STMT_EXECUTING == self->status) {
+	if (STMT_EXECUTING == self->status)
+	{
 		self->errornumber = STMT_SEQUENCE_ERROR;
 		self->errormsg = "Statement is currently executing a transaction.";
 		return FALSE;
 	}
 
-	if (self->result) {
-		if ( ! self->hdbc)
-			self->result->conn = NULL;  /* prevent any dbase activity */
+	if (self->result)
+	{
+		if (!self->hdbc)
+			self->result->conn = NULL;	/* prevent any dbase activity */
 
 		QR_Destructor(self->result);
 	}
@@ -273,29 +320,38 @@ SC_Destructor(StatementClass *self)
 
 	SC_free_params(self, STMT_FREE_PARAMS_ALL);
 
-	/* the memory pointed to by the bindings is not deallocated by the driver */
-	/* by by the application that uses that driver, so we don't have to care  */
+	/*
+	 * the memory pointed to by the bindings is not deallocated by the
+	 * driver
+	 */
+
+	/*
+	 * by by the application that uses that driver, so we don't have to
+	 * care
+	 */
 	/* about that here. */
 	if (self->bindings)
 		free(self->bindings);
 
 
-	/*	Free the parsed table information */
-	if (self->ti) {
-		int i;
-		for (i = 0; i < self->ntab; i++) {
+	/* Free the parsed table information */
+	if (self->ti)
+	{
+		int			i;
+
+		for (i = 0; i < self->ntab; i++)
 			free(self->ti[i]);
-		}
 
 		free(self->ti);
 	}
 
-	/*	Free the parsed field information */
-	if (self->fi) {
-		int i;
-		for (i = 0; i < self->nfld; i++) {
+	/* Free the parsed field information */
+	if (self->fi)
+	{
+		int			i;
+
+		for (i = 0; i < self->nfld; i++)
 			free(self->fi[i]);
-		}
 		free(self->fi);
 	}
 
@@ -311,24 +367,28 @@ SC_Destructor(StatementClass *self)
 	data-at-execution parameters that was allocated in SQLPutData.
 */
 void
-SC_free_params(StatementClass *self, char option)
+SC_free_params(StatementClass * self, char option)
 {
-int i;
+	int			i;
 
 	mylog("SC_free_params:  ENTER, self=%d\n", self);
 
-	if( ! self->parameters)
+	if (!self->parameters)
 		return;
 
-	for (i = 0; i < self->parameters_allocated; i++) {
-		if (self->parameters[i].data_at_exec == TRUE) {
+	for (i = 0; i < self->parameters_allocated; i++)
+	{
+		if (self->parameters[i].data_at_exec == TRUE)
+		{
 
-			if (self->parameters[i].EXEC_used) {
+			if (self->parameters[i].EXEC_used)
+			{
 				free(self->parameters[i].EXEC_used);
 				self->parameters[i].EXEC_used = NULL;
 			}
 
-			if (self->parameters[i].EXEC_buffer) {
+			if (self->parameters[i].EXEC_buffer)
+			{
 				if (self->parameters[i].SQLType != SQL_LONGVARBINARY)
 					free(self->parameters[i].EXEC_buffer);
 				self->parameters[i].EXEC_buffer = NULL;
@@ -339,7 +399,8 @@ int i;
 	self->current_exec_param = -1;
 	self->put_data = FALSE;
 
-	if (option == STMT_FREE_PARAMS_ALL) {
+	if (option == STMT_FREE_PARAMS_ALL)
+	{
 		free(self->parameters);
 		self->parameters = NULL;
 		self->parameters_allocated = 0;
@@ -352,14 +413,14 @@ int i;
 int
 statement_type(char *statement)
 {
-int i;
+	int			i;
 
 	/* ignore leading whitespace in query string */
 	while (*statement && isspace((unsigned char) *statement))
 		statement++;
 
 	for (i = 0; Statement_Type[i].s; i++)
-		if ( ! strnicmp(statement, Statement_Type[i].s, strlen(Statement_Type[i].s)))
+		if (!strnicmp(statement, Statement_Type[i].s, strlen(Statement_Type[i].s)))
 			return Statement_Type[i].type;
 
 	return STMT_TYPE_OTHER;
@@ -371,14 +432,15 @@ int i;
 	from SQLFreeStmt(SQL_CLOSE)
  */
 char
-SC_recycle_statement(StatementClass *self)
+SC_recycle_statement(StatementClass * self)
 {
-ConnectionClass *conn;
+	ConnectionClass *conn;
 
-mylog("recycle statement: self= %u\n", self);
+	mylog("recycle statement: self= %u\n", self);
 
-	/*	This would not happen */
-	if (self->status == STMT_EXECUTING) {
+	/* This would not happen */
+	if (self->status == STMT_EXECUTING)
+	{
 		self->errornumber = STMT_SEQUENCE_ERROR;
 		self->errormsg = "Statement is currently executing a transaction.";
 		return FALSE;
@@ -388,71 +450,79 @@ mylog("recycle statement: self= %u\n", self);
 	self->errornumber = 0;
 	self->errormsg_created = FALSE;
 
-	switch (self->status) {
-	case STMT_ALLOCATED:
-		/* this statement does not need to be recycled */
-		return TRUE;
+	switch (self->status)
+	{
+		case STMT_ALLOCATED:
+			/* this statement does not need to be recycled */
+			return TRUE;
 
-	case STMT_READY:
-		break;
+		case STMT_READY:
+			break;
 
-	case STMT_PREMATURE:
-		/*	Premature execution of the statement might have caused the start of a transaction.
-			If so, we have to rollback that transaction.
-		*/
-		conn = SC_get_conn(self);
-		if ( ! CC_is_in_autocommit(conn) && CC_is_in_trans(conn)) {
+		case STMT_PREMATURE:
 
-			CC_send_query(conn, "ABORT", NULL);
-			CC_set_no_trans(conn);
-		}
-		break;
+			/*
+			 * Premature execution of the statement might have caused the
+			 * start of a transaction. If so, we have to rollback that
+			 * transaction.
+			 */
+			conn = SC_get_conn(self);
+			if (!CC_is_in_autocommit(conn) && CC_is_in_trans(conn))
+			{
 
-	case STMT_FINISHED:
-		break;
+				CC_send_query(conn, "ABORT", NULL);
+				CC_set_no_trans(conn);
+			}
+			break;
 
-	default:
-		self->errormsg = "An internal error occured while recycling statements";
-		self->errornumber = STMT_INTERNAL_ERROR;
-		return FALSE;
+		case STMT_FINISHED:
+			break;
+
+		default:
+			self->errormsg = "An internal error occured while recycling statements";
+			self->errornumber = STMT_INTERNAL_ERROR;
+			return FALSE;
 	}
 
-	/*	Free the parsed table information */
-	if (self->ti) {
-		int i;
-		for (i = 0; i < self->ntab; i++) {
+	/* Free the parsed table information */
+	if (self->ti)
+	{
+		int			i;
+
+		for (i = 0; i < self->ntab; i++)
 			free(self->ti[i]);
-		}
 
 		free(self->ti);
 		self->ti = NULL;
 		self->ntab = 0;
 	}
 
-	/*	Free the parsed field information */
-	if (self->fi) {
-		int i;
-		for (i = 0; i < self->nfld; i++) {
+	/* Free the parsed field information */
+	if (self->fi)
+	{
+		int			i;
+
+		for (i = 0; i < self->nfld; i++)
 			free(self->fi[i]);
-		}
 		free(self->fi);
 		self->fi = NULL;
 		self->nfld = 0;
 	}
 	self->parse_status = STMT_PARSE_NONE;
 
-	/*	Free any cursors */
-	if (self->result) {
+	/* Free any cursors */
+	if (self->result)
+	{
 		QR_Destructor(self->result);
 		self->result = NULL;
 	}
 
 	/****************************************************************/
-	/*	Reset only parameters that have anything to do with results */
+	/* Reset only parameters that have anything to do with results */
 	/****************************************************************/
 
 	self->status = STMT_READY;
-	self->manual_result = FALSE;	/* very important */
+	self->manual_result = FALSE;/* very important */
 
 	self->currTuple = -1;
 	self->rowset_start = -1;
@@ -466,9 +536,9 @@ mylog("recycle statement: self= %u\n", self);
 
 	self->lobj_fd = -1;
 
-	/*	Free any data at exec params before the statement is executed */
-	/*	again.  If not, then there will be a memory leak when */
-	/*	the next SQLParamData/SQLPutData is called. */
+	/* Free any data at exec params before the statement is executed */
+	/* again.  If not, then there will be a memory leak when */
+	/* the next SQLParamData/SQLPutData is called. */
 	SC_free_params(self, STMT_FREE_PARAMS_DATA_AT_EXEC_ONLY);
 
 	return TRUE;
@@ -476,17 +546,19 @@ mylog("recycle statement: self= %u\n", self);
 
 /* Pre-execute a statement (SQLPrepare/SQLDescribeCol) */
 void
-SC_pre_execute(StatementClass *self)
+SC_pre_execute(StatementClass * self)
 {
 
 	mylog("SC_pre_execute: status = %d\n", self->status);
 
-	if (self->status == STMT_READY) {
+	if (self->status == STMT_READY)
+	{
 		mylog("              preprocess: status = READY\n");
 
 		SQLExecute(self);
 
-		if (self->status == STMT_FINISHED) {
+		if (self->status == STMT_FINISHED)
+		{
 			mylog("              preprocess: after status = FINISHED, so set PREMATURE\n");
 			self->status = STMT_PREMATURE;
 		}
@@ -495,11 +567,12 @@ SC_pre_execute(StatementClass *self)
 
 /* This is only called from SQLFreeStmt(SQL_UNBIND) */
 char
-SC_unbind_cols(StatementClass *self)
+SC_unbind_cols(StatementClass * self)
 {
-Int2 lf;
+	Int2		lf;
 
-	for(lf = 0; lf < self->bindings_allocated; lf++) {
+	for (lf = 0; lf < self->bindings_allocated; lf++)
+	{
 		self->bindings[lf].data_left = -1;
 		self->bindings[lf].buflen = 0;
 		self->bindings[lf].buffer = NULL;
@@ -510,11 +583,11 @@ Int2 lf;
 	self->bookmark.buffer = NULL;
 	self->bookmark.used = NULL;
 
-    return 1;
+	return 1;
 }
 
 void
-SC_clear_error(StatementClass *self)
+SC_clear_error(StatementClass * self)
 {
 	self->errornumber = 0;
 	self->errormsg = NULL;
@@ -525,12 +598,12 @@ SC_clear_error(StatementClass *self)
 /*	This function creates an error msg which is the concatenation */
 /*	of the result, statement, connection, and socket messages. */
 char *
-SC_create_errormsg(StatementClass *self)
+SC_create_errormsg(StatementClass * self)
 {
-QResultClass *res = self->result;
-ConnectionClass *conn = self->hdbc;
-int pos;
-static char msg[4096];
+	QResultClass *res = self->result;
+	ConnectionClass *conn = self->hdbc;
+	int			pos;
+	static char msg[4096];
 
 	msg[0] = '\0';
 
@@ -540,15 +613,18 @@ static char msg[4096];
 	else if (self->errormsg)
 		strcpy(msg, self->errormsg);
 
-	if (conn) {
+	if (conn)
+	{
 		SocketClass *sock = conn->sock;
 
-		if (conn->errormsg && conn->errormsg[0] != '\0') {
+		if (conn->errormsg && conn->errormsg[0] != '\0')
+		{
 			pos = strlen(msg);
 			sprintf(&msg[pos], ";\n%s", conn->errormsg);
 		}
 
-		if (sock && sock->errormsg && sock->errormsg[0] != '\0') {
+		if (sock && sock->errormsg && sock->errormsg[0] != '\0')
+		{
 			pos = strlen(msg);
 			sprintf(&msg[pos], ";\n%s", sock->errormsg);
 		}
@@ -558,17 +634,19 @@ static char msg[4096];
 }
 
 char
-SC_get_error(StatementClass *self, int *number, char **message)
+SC_get_error(StatementClass * self, int *number, char **message)
 {
-char rv;
+	char		rv;
 
 /*	Create a very informative errormsg if it hasn't been done yet. */
-	if ( ! self->errormsg_created) {
+	if (!self->errormsg_created)
+	{
 		self->errormsg = SC_create_errormsg(self);
 		self->errormsg_created = TRUE;
 	}
 
-	if ( self->errornumber) {
+	if (self->errornumber)
+	{
 		*number = self->errornumber;
 		*message = self->errormsg;
 		self->errormsg = NULL;
@@ -585,36 +663,42 @@ char rv;
 	someday, such as mapping a key to a 32 bit value
 */
 unsigned long
-SC_get_bookmark(StatementClass *self)
+SC_get_bookmark(StatementClass * self)
 {
 	return (self->currTuple + 1);
 }
 
 RETCODE
-SC_fetch(StatementClass *self)
+SC_fetch(StatementClass * self)
 {
-static char *func = "SC_fetch";
-QResultClass *res = self->result;
-int retval, result;
-Int2 num_cols, lf;
-Oid type;
-char *value;
-ColumnInfoClass *ci;
+	static char *func = "SC_fetch";
+	QResultClass *res = self->result;
+	int			retval,
+				result;
+	Int2		num_cols,
+				lf;
+	Oid			type;
+	char	   *value;
+	ColumnInfoClass *ci;
+
 /* TupleField *tupleField; */
 
 	self->last_fetch_count = 0;
-	ci = QR_get_fields(res);		/* the column info */
+	ci = QR_get_fields(res);	/* the column info */
 
 	mylog("manual_result = %d, use_declarefetch = %d\n", self->manual_result, globals.use_declarefetch);
 
-	if ( self->manual_result || ! globals.use_declarefetch) {
+	if (self->manual_result || !globals.use_declarefetch)
+	{
 
-		if (self->currTuple >= QR_get_num_tuples(res) -1 ||
-			(self->options.maxRows > 0 && self->currTuple == self->options.maxRows - 1)) {
+		if (self->currTuple >= QR_get_num_tuples(res) - 1 ||
+			(self->options.maxRows > 0 && self->currTuple == self->options.maxRows - 1))
+		{
 
-			/*	if at the end of the tuples, return "no data found"
-				and set the cursor past the end of the result set
-			*/
+			/*
+			 * if at the end of the tuples, return "no data found" and set
+			 * the cursor past the end of the result set
+			 */
 			self->currTuple = QR_get_num_tuples(res);
 			return SQL_NO_DATA_FOUND;
 		}
@@ -622,18 +706,21 @@ ColumnInfoClass *ci;
 		mylog("**** SQLFetch: manual_result\n");
 		(self->currTuple)++;
 	}
-	else {
+	else
+	{
 
 		/* read from the cache or the physical next tuple */
 		retval = QR_next_tuple(res);
-		if (retval < 0) {
+		if (retval < 0)
+		{
 			mylog("**** SQLFetch: end_tuples\n");
 			return SQL_NO_DATA_FOUND;
 		}
 		else if (retval > 0)
-			(self->currTuple)++;		/* all is well */
+			(self->currTuple)++;/* all is well */
 
-		else {
+		else
+		{
 			mylog("SQLFetch: error\n");
 			self->errornumber = STMT_EXEC_ERROR;
 			self->errormsg = "Error fetching next row";
@@ -647,89 +734,95 @@ ColumnInfoClass *ci;
 	result = SQL_SUCCESS;
 	self->last_fetch_count = 1;
 
-	/*	If the bookmark column was bound then return a bookmark.
-		Since this is used with SQLExtendedFetch, and the rowset size
-		may be greater than 1, and an application can use row or column wise
-		binding, use the code in copy_and_convert_field() to handle that.
-	*/
-	if (self->bookmark.buffer) {
-		char buf[32];
+	/*
+	 * If the bookmark column was bound then return a bookmark. Since this
+	 * is used with SQLExtendedFetch, and the rowset size may be greater
+	 * than 1, and an application can use row or column wise binding, use
+	 * the code in copy_and_convert_field() to handle that.
+	 */
+	if (self->bookmark.buffer)
+	{
+		char		buf[32];
 
 		sprintf(buf, "%ld", SC_get_bookmark(self));
 		result = copy_and_convert_field(self, 0, buf,
-								SQL_C_ULONG, self->bookmark.buffer, 0, self->bookmark.used);
+			 SQL_C_ULONG, self->bookmark.buffer, 0, self->bookmark.used);
 	}
 
-	for (lf=0; lf < num_cols; lf++) {
+	for (lf = 0; lf < num_cols; lf++)
+	{
 
 		mylog("fetch: cols=%d, lf=%d, self = %u, self->bindings = %u, buffer[] = %u\n", num_cols, lf, self, self->bindings, self->bindings[lf].buffer);
 
-		/*	reset for SQLGetData */
+		/* reset for SQLGetData */
 		self->bindings[lf].data_left = -1;
 
-		if (self->bindings[lf].buffer != NULL) {
+		if (self->bindings[lf].buffer != NULL)
+		{
 			/* this column has a binding */
 
 			/* type = QR_get_field_type(res, lf); */
-			type = CI_get_oid(ci, lf);		/* speed things up */
+			type = CI_get_oid(ci, lf);	/* speed things up */
 
 			mylog("type = %d\n", type);
 
-			if (self->manual_result) {
+			if (self->manual_result)
+			{
 				value = QR_get_value_manual(res, self->currTuple, lf);
 				mylog("manual_result\n");
 			}
 			else if (globals.use_declarefetch)
 				value = QR_get_value_backend(res, lf);
-			else {
+			else
 				value = QR_get_value_backend_row(res, self->currTuple, lf);
-			}
 
-			mylog("value = '%s'\n",  (value==NULL)?"<NULL>":value);
+			mylog("value = '%s'\n", (value == NULL) ? "<NULL>" : value);
 
 			retval = copy_and_convert_field_bindinfo(self, type, value, lf);
 
 			mylog("copy_and_convert: retval = %d\n", retval);
 
-			switch(retval) {
-			case COPY_OK:
-				break;	/*	OK, do next bound column */
-
-			case COPY_UNSUPPORTED_TYPE:
-				self->errormsg = "Received an unsupported type from Postgres.";
-				self->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
-				SC_log_error(func, "", self);
-				result = SQL_ERROR;
-				break;
-
-			case COPY_UNSUPPORTED_CONVERSION:
-				self->errormsg = "Couldn't handle the necessary data type conversion.";
-				self->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
-				SC_log_error(func, "", self);
-				result = SQL_ERROR;
-				break;
-
-			case COPY_RESULT_TRUNCATED:
-				self->errornumber = STMT_TRUNCATED;
-				self->errormsg = "The buffer was too small for the result.";
-				result = SQL_SUCCESS_WITH_INFO;
-				break;
-
-			case COPY_GENERAL_ERROR:	/* error msg already filled in */
-				SC_log_error(func, "", self);
-				result = SQL_ERROR;
-				break;
-
-			/*  This would not be meaningful in SQLFetch. */
-			case COPY_NO_DATA_FOUND:
-				break;
-
-			default:
-				self->errormsg = "Unrecognized return value from copy_and_convert_field.";
-				self->errornumber = STMT_INTERNAL_ERROR;
-				SC_log_error(func, "", self);
-				result = SQL_ERROR;
-				break;
+			switch (retval)
+			{
+				case COPY_OK:
+					break;		/* OK, do next bound column */
+
+				case COPY_UNSUPPORTED_TYPE:
+					self->errormsg = "Received an unsupported type from Postgres.";
+					self->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
+					SC_log_error(func, "", self);
+					result = SQL_ERROR;
+					break;
+
+				case COPY_UNSUPPORTED_CONVERSION:
+					self->errormsg = "Couldn't handle the necessary data type conversion.";
+					self->errornumber = STMT_RESTRICTED_DATA_TYPE_ERROR;
+					SC_log_error(func, "", self);
+					result = SQL_ERROR;
+					break;
+
+				case COPY_RESULT_TRUNCATED:
+					self->errornumber = STMT_TRUNCATED;
+					self->errormsg = "The buffer was too small for the result.";
+					result = SQL_SUCCESS_WITH_INFO;
+					break;
+
+				case COPY_GENERAL_ERROR:		/* error msg already
+												 * filled in */
+					SC_log_error(func, "", self);
+					result = SQL_ERROR;
+					break;
+
+					/* This would not be meaningful in SQLFetch. */
+				case COPY_NO_DATA_FOUND:
+					break;
+
+				default:
+					self->errormsg = "Unrecognized return value from copy_and_convert_field.";
+					self->errornumber = STMT_INTERNAL_ERROR;
+					SC_log_error(func, "", self);
+					result = SQL_ERROR;
+					break;
 			}
 		}
 	}
@@ -738,35 +831,40 @@ ColumnInfoClass *ci;
 }
 
 
-RETCODE SC_execute(StatementClass *self)
+RETCODE
+SC_execute(StatementClass * self)
 {
-static char *func="SC_execute";
-ConnectionClass *conn;
-QResultClass *res;
-char ok, was_ok, was_nonfatal;
-Int2 oldstatus, numcols;
-QueryInfo qi;
+	static char *func = "SC_execute";
+	ConnectionClass *conn;
+	QResultClass *res;
+	char		ok,
+				was_ok,
+				was_nonfatal;
+	Int2		oldstatus,
+				numcols;
+	QueryInfo	qi;
 
 
 	conn = SC_get_conn(self);
 
-	/*	Begin a transaction if one is not already in progress */
+	/* Begin a transaction if one is not already in progress */
+
 	/*
-		Basically we don't have to begin a transaction in
-		autocommit mode because Postgres backend runs in
-		autocomit mode.  
-		We issue "BEGIN" in the following cases.
-		1) we use declare/fetch and the statement is SELECT
-		   (because declare/fetch must be called in a transaction).
-		2) we are not in autocommit state and the statement
-		   is of type UPDATE.
-	*/ 
-	if ( ! self->internal && ! CC_is_in_trans(conn) &&
-	    ((globals.use_declarefetch && self->statement_type == STMT_TYPE_SELECT) || (! CC_is_in_autocommit(conn) && STMT_UPDATE(self)))) {
+	 * Basically we don't have to begin a transaction in autocommit mode
+	 * because Postgres backend runs in autocomit mode. We issue "BEGIN"
+	 * in the following cases. 1) we use declare/fetch and the statement
+	 * is SELECT (because declare/fetch must be called in a transaction).
+	 * 2) we are not in autocommit state and the statement is of type
+	 * UPDATE.
+	 */
+	if (!self->internal && !CC_is_in_trans(conn) &&
+		((globals.use_declarefetch && self->statement_type == STMT_TYPE_SELECT) || (!CC_is_in_autocommit(conn) && STMT_UPDATE(self))))
+	{
 
 		mylog("   about to begin a transaction on statement = %u\n", self);
 		res = CC_send_query(conn, "BEGIN", NULL);
-		if ( ! res) {
+		if (!res)
+		{
 			self->errormsg = "Could not begin a transaction";
 			self->errornumber = STMT_EXEC_ERROR;
 			SC_log_error(func, "", self);
@@ -779,7 +877,8 @@ QueryInfo qi;
 
 		QR_Destructor(res);
 
-		if (!ok) {
+		if (!ok)
+		{
 			self->errormsg = "Could not begin a transaction";
 			self->errornumber = STMT_EXEC_ERROR;
 			SC_log_error(func, "", self);
@@ -794,73 +893,92 @@ QueryInfo qi;
 	self->status = STMT_EXECUTING;
 
 
-	/*	If it's a SELECT statement, use a cursor. */
-	/*	Note that the declare cursor has already been prepended to the statement */
-	/*	in copy_statement... */
-	if (self->statement_type == STMT_TYPE_SELECT) {
+	/* If it's a SELECT statement, use a cursor. */
+
+	/*
+	 * Note that the declare cursor has already been prepended to the
+	 * statement
+	 */
+	/* in copy_statement... */
+	if (self->statement_type == STMT_TYPE_SELECT)
+	{
 
-		char fetch[128];
+		char		fetch[128];
 
 		mylog("       Sending SELECT statement on stmt=%u, cursor_name='%s'\n", self, self->cursor_name);
 
 
-		/*	send the declare/select */
+		/* send the declare/select */
 		self->result = CC_send_query(conn, self->stmt_with_params, NULL);
 
 		if (globals.use_declarefetch && self->result != NULL &&
-			QR_command_successful(self->result)) {
+			QR_command_successful(self->result))
+		{
 
 			QR_Destructor(self->result);
 
-			/*	That worked, so now send the fetch to start getting data back */
+			/*
+			 * That worked, so now send the fetch to start getting data
+			 * back
+			 */
 			qi.result_in = NULL;
 			qi.cursor = self->cursor_name;
 			qi.row_size = globals.fetch_max;
 
-			/*	Most likely the rowset size will not be set by the application until
-				after the statement	is executed, so might as well use the cache size.
-				The qr_next_tuple() function will correct for any discrepancies in
-				sizes and adjust the cache accordingly.
-			*/
+			/*
+			 * Most likely the rowset size will not be set by the
+			 * application until after the statement is executed, so might
+			 * as well use the cache size. The qr_next_tuple() function
+			 * will correct for any discrepancies in sizes and adjust the
+			 * cache accordingly.
+			 */
 
 			sprintf(fetch, "fetch %d in %s", qi.row_size, self->cursor_name);
 
-			self->result = CC_send_query( conn, fetch, &qi);
+			self->result = CC_send_query(conn, fetch, &qi);
 		}
 		mylog("     done sending the query:\n");
 	}
-	else  { /* not a SELECT statement so don't use a cursor */
+	else
+	{							/* not a SELECT statement so don't use a
+								 * cursor */
 		mylog("      it's NOT a select statement: stmt=%u\n", self);
 		self->result = CC_send_query(conn, self->stmt_with_params, NULL);
 
-		/*	We shouldn't send COMMIT. Postgres backend does the
-			autocommit if neccessary. (Zoltan, 04/26/2000)
-		*/
-		/*	Even in case of autocommit, started transactions
-			must be committed. (Hiroshi, 09/02/2001)
-		 */ 
-		if ( ! self->internal && CC_is_in_autocommit(conn) && CC_is_in_trans(conn) && STMT_UPDATE(self)) {                   
-			res = CC_send_query(conn, "COMMIT", NULL); 
+		/*
+		 * We shouldn't send COMMIT. Postgres backend does the autocommit
+		 * if neccessary. (Zoltan, 04/26/2000)
+		 */
+
+		/*
+		 * Even in case of autocommit, started transactions must be
+		 * committed. (Hiroshi, 09/02/2001)
+		 */
+		if (!self->internal && CC_is_in_autocommit(conn) && CC_is_in_trans(conn) && STMT_UPDATE(self))
+		{
+			res = CC_send_query(conn, "COMMIT", NULL);
 			QR_Destructor(res);
 			CC_set_no_trans(conn);
-		} 
+		}
 	}
 
 	conn->status = oldstatus;
 	self->status = STMT_FINISHED;
 
-	/*	Check the status of the result */
-	if (self->result) {
+	/* Check the status of the result */
+	if (self->result)
+	{
 
 		was_ok = QR_command_successful(self->result);
 		was_nonfatal = QR_command_nonfatal(self->result);
 
-		if ( was_ok)
+		if (was_ok)
 			self->errornumber = STMT_OK;
 		else
 			self->errornumber = was_nonfatal ? STMT_INFO_ONLY : STMT_ERROR_TAKEN_FROM_BACKEND;
 
-		self->currTuple = -1; /* set cursor before the first tuple in the list */
+		self->currTuple = -1;	/* set cursor before the first tuple in
+								 * the list */
 		self->current_col = -1;
 		self->rowset_start = -1;
 
@@ -868,59 +986,70 @@ QueryInfo qi;
 		numcols = QR_NumResultCols(self->result);
 
 		/* now allocate the array to hold the binding info */
-		if (numcols > 0) {
+		if (numcols > 0)
+		{
 			extend_bindings(self, numcols);
-			if (self->bindings == NULL) {
+			if (self->bindings == NULL)
+			{
 				self->errornumber = STMT_NO_MEMORY_ERROR;
 				self->errormsg = "Could not get enough free memory to store the binding information";
 				SC_log_error(func, "", self);
 				return SQL_ERROR;
 			}
 		}
-		/* in autocommit mode declare/fetch error must be aborted */ 
-		if ( ! was_ok && ! self->internal && CC_is_in_autocommit(conn) && CC_is_in_trans(conn))                   
+		/* in autocommit mode declare/fetch error must be aborted */
+		if (!was_ok && !self->internal && CC_is_in_autocommit(conn) && CC_is_in_trans(conn))
 			CC_abort(conn);
-	} else {		/* Bad Error -- The error message will be in the Connection */
+	}
+	else
+	{							/* Bad Error -- The error message will be
+								 * in the Connection */
 
-		if (self->statement_type == STMT_TYPE_CREATE) {
+		if (self->statement_type == STMT_TYPE_CREATE)
+		{
 			self->errornumber = STMT_CREATE_TABLE_ERROR;
 			self->errormsg = "Error creating the table";
-			/*	This would allow the table to already exists, thus appending
-				rows to it.  BUT, if the table didn't have the same attributes,
-				it would fail.
-				return SQL_SUCCESS_WITH_INFO;
-			*/
+
+			/*
+			 * This would allow the table to already exists, thus
+			 * appending rows to it.  BUT, if the table didn't have the
+			 * same attributes, it would fail. return
+			 * SQL_SUCCESS_WITH_INFO;
+			 */
 		}
-		else {
+		else
+		{
 			self->errornumber = STMT_EXEC_ERROR;
 			self->errormsg = "Error while executing the query";
 		}
 
-		if ( ! self->internal)
+		if (!self->internal)
 			CC_abort(conn);
 	}
 
 	if (self->errornumber == STMT_OK)
 		return SQL_SUCCESS;
 
-	else {
+	else
+	{
 		/* Modified, 2000-04-29, Zoltan */
 		if (self->errornumber == STMT_INFO_ONLY)
-		    self->errormsg = "Error while executing the query (non-fatal)";
+			self->errormsg = "Error while executing the query (non-fatal)";
 		else
-		    self->errormsg = "Unknown error";
+			self->errormsg = "Unknown error";
 		SC_log_error(func, "", self);
 		return SQL_ERROR;
 	}
 }
 
 void
-SC_log_error(char *func, char *desc, StatementClass *self)
+SC_log_error(char *func, char *desc, StatementClass * self)
 {
 #ifdef PRN_NULLCHECK
 #define nullcheck(a) (a ? a : "(NULL)")
 #endif
-	if (self) {
+	if (self)
+	{
 		qlog("STATEMENT ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, nullcheck(self->errormsg));
 		mylog("STATEMENT ERROR: func=%s, desc='%s', errnum=%d, errmsg='%s'\n", func, desc, self->errornumber, nullcheck(self->errormsg));
 		qlog("                 ------------------------------------------------------------\n");
@@ -937,15 +1066,17 @@ SC_log_error(char *func, char *desc, StatementClass *self)
 
 		qlog("                 ----------------QResult Info -------------------------------\n");
 
-		if (self->result) {
-		QResultClass *res = self->result;
-		qlog("                 fields=%u, manual_tuples=%u, backend_tuples=%u, tupleField=%d, conn=%u\n", res->fields, res->manual_tuples, res->backend_tuples, res->tupleField, res->conn);
-		qlog("                 fetch_count=%d, fcount=%d, num_fields=%d, cursor='%s'\n", res->fetch_count, res->fcount, res->num_fields, nullcheck(res->cursor));
-		qlog("                 message='%s', command='%s', notice='%s'\n", nullcheck(res->message), nullcheck(res->command), nullcheck(res->notice));
-		qlog("                 status=%d, inTuples=%d\n", res->status, res->inTuples);
+		if (self->result)
+		{
+			QResultClass *res = self->result;
+
+			qlog("                 fields=%u, manual_tuples=%u, backend_tuples=%u, tupleField=%d, conn=%u\n", res->fields, res->manual_tuples, res->backend_tuples, res->tupleField, res->conn);
+			qlog("                 fetch_count=%d, fcount=%d, num_fields=%d, cursor='%s'\n", res->fetch_count, res->fcount, res->num_fields, nullcheck(res->cursor));
+			qlog("                 message='%s', command='%s', notice='%s'\n", nullcheck(res->message), nullcheck(res->command), nullcheck(res->notice));
+			qlog("                 status=%d, inTuples=%d\n", res->status, res->inTuples);
 		}
 
-		/*	Log the connection error if there is one */
+		/* Log the connection error if there is one */
 		CC_log_error(func, desc, self->hdbc);
 	}
 	else
diff --git a/src/interfaces/odbc/statement.h b/src/interfaces/odbc/statement.h
index ae2df856b2572af682062af45efece8d0aa8d600..20402b5390b474b6bbb143431798f067759297bc 100644
--- a/src/interfaces/odbc/statement.h
+++ b/src/interfaces/odbc/statement.h
@@ -1,9 +1,9 @@
 
-/* File:            statement.h
+/* File:			statement.h
  *
- * Description:     See "statement.c"
+ * Description:		See "statement.c"
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -33,21 +33,28 @@
 #define TRUE	(BOOL)1
 #endif
 
-typedef enum {
-    STMT_ALLOCATED,     /* The statement handle is allocated, but not used so far */
-    STMT_READY,         /* the statement is waiting to be executed */
-    STMT_PREMATURE,     /* ODBC states that it is legal to call e.g. SQLDescribeCol before
-                           a call to SQLExecute, but after SQLPrepare. To get all the necessary
-                           information in such a case, we simply execute the query _before_ the
-                           actual call to SQLExecute, so that statement is considered to be "premature".
-                        */   
-    STMT_FINISHED,      /* statement execution has finished */
-    STMT_EXECUTING      /* statement execution is still going on */
-} STMT_Status;
+typedef enum
+{
+	STMT_ALLOCATED,				/* The statement handle is allocated, but
+								 * not used so far */
+	STMT_READY,					/* the statement is waiting to be executed */
+	STMT_PREMATURE,				/* ODBC states that it is legal to call
+								 * e.g. SQLDescribeCol before a call to
+								 * SQLExecute, but after SQLPrepare. To
+								 * get all the necessary information in
+								 * such a case, we simply execute the
+								 * query _before_ the actual call to
+								 * SQLExecute, so that statement is
+								 * considered to be "premature". */
+	STMT_FINISHED,				/* statement execution has finished */
+	STMT_EXECUTING				/* statement execution is still going on */
+}			STMT_Status;
 
 #define STMT_TRUNCATED -2
-#define STMT_INFO_ONLY -1 /* not an error message, just a notification to be returned by SQLError */
-#define STMT_OK 0 /* will be interpreted as "no error pending" */
+#define STMT_INFO_ONLY -1		/* not an error message, just a
+								 * notification to be returned by SQLError */
+#define STMT_OK 0				/* will be interpreted as "no error
+								 * pending" */
 #define STMT_EXEC_ERROR 1
 #define STMT_STATUS_ERROR 2
 #define STMT_SEQUENCE_ERROR 3
@@ -77,7 +84,8 @@ typedef enum {
 #define STMT_BAD_ERROR 27
 
 /* statement types */
-enum {
+enum
+{
 	STMT_TYPE_UNKNOWN = -2,
 	STMT_TYPE_OTHER = -1,
 	STMT_TYPE_SELECT = 0,
@@ -95,7 +103,8 @@ enum {
 
 
 /*	Parsing status */
-enum {
+enum
+{
 	STMT_PARSE_NONE = 0,
 	STMT_PARSE_COMPLETE,
 	STMT_PARSE_INCOMPLETE,
@@ -103,92 +112,110 @@ enum {
 };
 
 /*	Result style */
-enum {
+enum
+{
 	STMT_FETCH_NONE = 0,
 	STMT_FETCH_NORMAL,
 	STMT_FETCH_EXTENDED,
 };
 
-typedef struct {
-	COL_INFO		*col_info;		/* cached SQLColumns info for this table */
-	char 			name[MAX_TABLE_LEN+1];
-	char			alias[MAX_TABLE_LEN+1];
-} TABLE_INFO;
-
-typedef struct {
-	TABLE_INFO  	*ti;			/* resolve to explicit table names */
-	int				precision;
-	int				display_size;
-	int				length;
-	int				type;
-	char			nullable;
-	char			func;
-	char			expr;
-	char			quote;
-	char			dquote;
-	char			numeric;
-	char			dot[MAX_TABLE_LEN+1];
-	char			name[MAX_COLUMN_LEN+1];
-	char			alias[MAX_COLUMN_LEN+1];
-} FIELD_INFO;
+typedef struct
+{
+	COL_INFO   *col_info;		/* cached SQLColumns info for this table */
+	char		name[MAX_TABLE_LEN + 1];
+	char		alias[MAX_TABLE_LEN + 1];
+}			TABLE_INFO;
+
+typedef struct
+{
+	TABLE_INFO *ti;				/* resolve to explicit table names */
+	int			precision;
+	int			display_size;
+	int			length;
+	int			type;
+	char		nullable;
+	char		func;
+	char		expr;
+	char		quote;
+	char		dquote;
+	char		numeric;
+	char		dot[MAX_TABLE_LEN + 1];
+	char		name[MAX_COLUMN_LEN + 1];
+	char		alias[MAX_COLUMN_LEN + 1];
+}			FIELD_INFO;
 
 
 /********	Statement Handle	***********/
-struct StatementClass_ {
-    ConnectionClass *hdbc;		/* pointer to ConnectionClass this statement belongs to */
-    QResultClass *result;		/* result of the current statement */
-	HSTMT FAR *phstmt;
+struct StatementClass_
+{
+	ConnectionClass *hdbc;		/* pointer to ConnectionClass this
+								 * statement belongs to */
+	QResultClass *result;		/* result of the current statement */
+	HSTMT FAR  *phstmt;
 	StatementOptions options;
 
-    STMT_Status status;
-    char *errormsg;
-    int errornumber;
+	STMT_Status status;
+	char	   *errormsg;
+	int			errornumber;
 
-    /* information on bindings */
-    BindInfoClass *bindings;	/* array to store the binding information */
+	/* information on bindings */
+	BindInfoClass *bindings;	/* array to store the binding information */
 	BindInfoClass bookmark;
-    int bindings_allocated;
-
-    /* information on statement parameters */
-    int parameters_allocated;
-    ParameterInfoClass *parameters;
-
-	Int4 currTuple;				/* current absolute row number (GetData, SetPos, SQLFetch) */
-	int  save_rowset_size;		/* saved rowset size in case of change/FETCH_NEXT */
-	int  rowset_start;			/* start of rowset (an absolute row number) */
-	int  bind_row;				/* current offset for Multiple row/column binding */
-	int  last_fetch_count;      /* number of rows retrieved in last fetch/extended fetch */
-	int  current_col;			/* current column for GetData -- used to handle multiple calls */
-	int  lobj_fd;				/* fd of the current large object */
-
-    char *statement;			/* if non--null pointer to the SQL statement that has been executed */
-
-	TABLE_INFO	**ti;
-	FIELD_INFO	**fi;
+	int			bindings_allocated;
+
+	/* information on statement parameters */
+	int			parameters_allocated;
+	ParameterInfoClass *parameters;
+
+	Int4		currTuple;		/* current absolute row number (GetData,
+								 * SetPos, SQLFetch) */
+	int			save_rowset_size;		/* saved rowset size in case of
+										 * change/FETCH_NEXT */
+	int			rowset_start;	/* start of rowset (an absolute row
+								 * number) */
+	int			bind_row;		/* current offset for Multiple row/column
+								 * binding */
+	int			last_fetch_count;		/* number of rows retrieved in
+										 * last fetch/extended fetch */
+	int			current_col;	/* current column for GetData -- used to
+								 * handle multiple calls */
+	int			lobj_fd;		/* fd of the current large object */
+
+	char	   *statement;		/* if non--null pointer to the SQL
+								 * statement that has been executed */
+
+	TABLE_INFO **ti;
+	FIELD_INFO **fi;
 	int			nfld;
 	int			ntab;
 
-	int parse_status;
+	int			parse_status;
 
-    int statement_type;			/* According to the defines above */
-	int data_at_exec;			/* Number of params needing SQLPutData */
-	int current_exec_param;		/* The current parameter for SQLPutData */
+	int			statement_type; /* According to the defines above */
+	int			data_at_exec;	/* Number of params needing SQLPutData */
+	int			current_exec_param;		/* The current parameter for
+										 * SQLPutData */
 
-	char put_data;				/* Has SQLPutData been called yet? */
+	char		put_data;		/* Has SQLPutData been called yet? */
 
-	char errormsg_created;		/* has an informative error msg been created?  */
-	char manual_result;			/* Is the statement result manually built? */
-	char prepare;				/* is this statement a prepared statement or direct */
+	char		errormsg_created;		/* has an informative error msg
+										 * been created?  */
+	char		manual_result;	/* Is the statement result manually built? */
+	char		prepare;		/* is this statement a prepared statement
+								 * or direct */
 
-	char internal;				/* Is this statement being called internally? */
+	char		internal;		/* Is this statement being called
+								 * internally? */
 
-	char cursor_name[MAX_CURSOR_LEN+1];
+	char		cursor_name[MAX_CURSOR_LEN + 1];
 
-	char stmt_with_params[STD_STATEMENT_LEN];		/* statement after parameter substitution */
+	char		stmt_with_params[STD_STATEMENT_LEN];	/* statement after
+														 * parameter
+														 * substitution */
 
 };
 
-#define SC_get_conn(a)    (a->hdbc)
+#define SC_get_conn(a)	  (a->hdbc)
 #define SC_get_Result(a)  (a->result);
 
 /*	options for SC_free_params() */
@@ -197,22 +224,22 @@ struct StatementClass_ {
 
 /*	Statement prototypes */
 StatementClass *SC_Constructor(void);
-void InitializeStatementOptions(StatementOptions *opt);
-char SC_Destructor(StatementClass *self);
-int statement_type(char *statement);
-char parse_statement(StatementClass *stmt);
-void SC_pre_execute(StatementClass *self);
-char SC_unbind_cols(StatementClass *self);
-char SC_recycle_statement(StatementClass *self);
-
-void SC_clear_error(StatementClass *self);
-char SC_get_error(StatementClass *self, int *number, char **message);
-char *SC_create_errormsg(StatementClass *self);
-RETCODE SC_execute(StatementClass *self);
-RETCODE SC_fetch(StatementClass *self);
-void SC_free_params(StatementClass *self, char option);
-void SC_log_error(char *func, char *desc, StatementClass *self);
-unsigned long SC_get_bookmark(StatementClass *self);
+void		InitializeStatementOptions(StatementOptions * opt);
+char		SC_Destructor(StatementClass * self);
+int			statement_type(char *statement);
+char		parse_statement(StatementClass * stmt);
+void		SC_pre_execute(StatementClass * self);
+char		SC_unbind_cols(StatementClass * self);
+char		SC_recycle_statement(StatementClass * self);
+
+void		SC_clear_error(StatementClass * self);
+char		SC_get_error(StatementClass * self, int *number, char **message);
+char	   *SC_create_errormsg(StatementClass * self);
+RETCODE		SC_execute(StatementClass * self);
+RETCODE		SC_fetch(StatementClass * self);
+void		SC_free_params(StatementClass * self, char option);
+void		SC_log_error(char *func, char *desc, StatementClass * self);
+unsigned long SC_get_bookmark(StatementClass * self);
 
 
 #endif
diff --git a/src/interfaces/odbc/tuple.c b/src/interfaces/odbc/tuple.c
index 968f098a80cee2a77d4a637243dac04060fc99e5..daf0fc678590005b91045806b7a8def47535c659 100644
--- a/src/interfaces/odbc/tuple.c
+++ b/src/interfaces/odbc/tuple.c
@@ -1,16 +1,16 @@
-/* Module:          tuple.c
+/* Module:			tuple.c
  *
- * Description:     This module contains functions for setting the data for individual
- *                  fields (TupleField structure) of a manual result set.
+ * Description:		This module contains functions for setting the data for individual
+ *					fields (TupleField structure) of a manual result set.
  *
- * Important Note:  These functions are ONLY used in building manual result sets for 
- *                  info functions (SQLTables, SQLColumns, etc.)
+ * Important Note:	These functions are ONLY used in building manual result sets for
+ *					info functions (SQLTables, SQLColumns, etc.)
  *
- * Classes:         n/a
+ * Classes:			n/a
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -18,39 +18,43 @@
 #include <string.h>
 #include <stdlib.h>
 
-void set_tuplefield_null(TupleField *tuple_field)
+void
+set_tuplefield_null(TupleField * tuple_field)
 {
 	tuple_field->len = 0;
-	tuple_field->value = NULL;  /* strdup(""); */
+	tuple_field->value = NULL;	/* strdup(""); */
 }
 
-void set_tuplefield_string(TupleField *tuple_field, char *string)
+void
+set_tuplefield_string(TupleField * tuple_field, char *string)
 {
 	tuple_field->len = strlen(string);
-	tuple_field->value = malloc(strlen(string)+1);
+	tuple_field->value = malloc(strlen(string) + 1);
 	strcpy(tuple_field->value, string);
 }
 
 
-void set_tuplefield_int2(TupleField *tuple_field, Int2 value)
+void
+set_tuplefield_int2(TupleField * tuple_field, Int2 value)
 {
-char buffer[10];
+	char		buffer[10];
 
 
-	sprintf(buffer,"%d", value);
+	sprintf(buffer, "%d", value);
 
-	tuple_field->len = strlen(buffer)+1;
+	tuple_field->len = strlen(buffer) + 1;
 	/* +1 ... is this correct (better be on the save side-...) */
 	tuple_field->value = strdup(buffer);
 }
 
-void set_tuplefield_int4(TupleField *tuple_field, Int4 value)
+void
+set_tuplefield_int4(TupleField * tuple_field, Int4 value)
 {
-char buffer[15];
+	char		buffer[15];
 
-	sprintf(buffer,"%ld", value);
+	sprintf(buffer, "%ld", value);
 
-	tuple_field->len = strlen(buffer)+1;
+	tuple_field->len = strlen(buffer) + 1;
 	/* +1 ... is this correct (better be on the save side-...) */
 	tuple_field->value = strdup(buffer);
 }
diff --git a/src/interfaces/odbc/tuple.h b/src/interfaces/odbc/tuple.h
index 628d5ce449c75abe22eae3fdd49076b67cf74590..07f353af179dfed7589669d79d00359a5c918a38 100644
--- a/src/interfaces/odbc/tuple.h
+++ b/src/interfaces/odbc/tuple.h
@@ -1,13 +1,13 @@
 
-/* File:            tuple.h
+/* File:			tuple.h
  *
- * Description:     See "tuple.c"
+ * Description:		See "tuple.c"
  *
- * Important NOTE:  The TupleField structure is used both to hold backend data and
- *                  manual result set data.  The "set_" functions and the TupleNode
- *                  structure are only used for manual result sets by info routines.  
+ * Important NOTE:	The TupleField structure is used both to hold backend data and
+ *					manual result set data.  The "set_" functions and the TupleNode
+ *					structure are only used for manual result sets by info routines.
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -17,15 +17,18 @@
 #include "psqlodbc.h"
 
 /*	Used by backend data AND manual result sets */
-struct TupleField_ {
-    Int4 len;     /* length of the current Tuple */
-    void *value;  /* an array representing the value */
+struct TupleField_
+{
+	Int4		len;			/* length of the current Tuple */
+	void	   *value;			/* an array representing the value */
 };
 
 /*	Used ONLY for manual result sets */
-struct TupleNode_ {
-    struct TupleNode_ *prev, *next;
-    TupleField tuple[1];
+struct TupleNode_
+{
+	struct TupleNode_ *prev,
+			   *next;
+	TupleField	tuple[1];
 };
 
 /*	These macros are wrappers for the corresponding set_tuplefield functions
@@ -36,9 +39,9 @@ struct TupleNode_ {
 #define set_nullfield_int2(FLD, VAL)		((VAL) != -1 ? set_tuplefield_int2(FLD, (VAL)) : set_tuplefield_null(FLD))
 #define set_nullfield_int4(FLD, VAL)		((VAL) != -1 ? set_tuplefield_int4(FLD, (VAL)) : set_tuplefield_null(FLD))
 
-void set_tuplefield_null(TupleField *tuple_field);
-void set_tuplefield_string(TupleField *tuple_field, char *string);
-void set_tuplefield_int2(TupleField *tuple_field, Int2 value);
-void set_tuplefield_int4(TupleField *tuple_field, Int4 value);
+void		set_tuplefield_null(TupleField * tuple_field);
+void		set_tuplefield_string(TupleField * tuple_field, char *string);
+void		set_tuplefield_int2(TupleField * tuple_field, Int2 value);
+void		set_tuplefield_int4(TupleField * tuple_field, Int4 value);
 
 #endif
diff --git a/src/interfaces/odbc/tuplelist.c b/src/interfaces/odbc/tuplelist.c
index 75110896a724e49e54b095674dab73518898abdb..a5745e350ffcad4602c5dc891b5185faf58fd630 100644
--- a/src/interfaces/odbc/tuplelist.c
+++ b/src/interfaces/odbc/tuplelist.c
@@ -1,13 +1,13 @@
-/* Module:          tuplelist.c
+/* Module:			tuplelist.c
  *
- * Description:     This module contains functions for creating a manual result set
- *                  (the TupleList) and retrieving data from it for a specific row/column.
+ * Description:		This module contains functions for creating a manual result set
+ *					(the TupleList) and retrieving data from it for a specific row/column.
  *
- * Classes:         TupleListClass (Functions prefix: "TL_")
+ * Classes:			TupleListClass (Functions prefix: "TL_")
  *
- * API functions:   none
+ * API functions:	none
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -18,19 +18,20 @@
 TupleListClass *
 TL_Constructor(UInt4 fieldcnt)
 {
-TupleListClass *rv;
+	TupleListClass *rv;
 
 	mylog("in TL_Constructor\n");
 
 	rv = (TupleListClass *) malloc(sizeof(TupleListClass));
-	if (rv) {
-
-        rv->num_fields = fieldcnt;
-        rv->num_tuples = 0;
-        rv->list_start = NULL;
-        rv->list_end = NULL;
-        rv->lastref = NULL;
-        rv->last_indexed = -1;
+	if (rv)
+	{
+
+		rv->num_fields = fieldcnt;
+		rv->num_tuples = 0;
+		rv->list_start = NULL;
+		rv->list_end = NULL;
+		rv->lastref = NULL;
+		rv->last_indexed = -1;
 	}
 
 	mylog("exit TL_Constructor\n");
@@ -39,37 +40,40 @@ TupleListClass *rv;
 }
 
 void
-TL_Destructor(TupleListClass *self)
+TL_Destructor(TupleListClass * self)
 {
-int lf;
-TupleNode *node, *tp;
+	int			lf;
+	TupleNode  *node,
+			   *tp;
 
 	mylog("TupleList: in DESTRUCTOR\n");
 
-    node = self->list_start;
-    while(node != NULL) {
-        for (lf=0; lf < self->num_fields; lf++)
-            if (node->tuple[lf].value != NULL) {
-                free(node->tuple[lf].value);
-            }
-        tp = node->next;
-        free(node);
-        node = tp;
-    }
+	node = self->list_start;
+	while (node != NULL)
+	{
+		for (lf = 0; lf < self->num_fields; lf++)
+			if (node->tuple[lf].value != NULL)
+				free(node->tuple[lf].value);
+		tp = node->next;
+		free(node);
+		node = tp;
+	}
 
 	free(self);
 
 	mylog("TupleList: exit DESTRUCTOR\n");
 }
-			
+
 
 void *
-TL_get_fieldval(TupleListClass *self, Int4 tupleno, Int2 fieldno)
+TL_get_fieldval(TupleListClass * self, Int4 tupleno, Int2 fieldno)
 {
-Int4 lf;
-Int4 delta, from_end;
-char end_is_closer, start_is_closer;
-TupleNode *rv;
+	Int4		lf;
+	Int4		delta,
+				from_end;
+	char		end_is_closer,
+				start_is_closer;
+	TupleNode  *rv;
 
 	if (self->last_indexed == -1)
 		/* we have an empty tuple list */
@@ -84,67 +88,88 @@ TupleNode *rv;
 		/* illegel field number range */
 		return NULL;
 
- /* check if we are accessing the same tuple that was used in
-    the last fetch (e.g: for fetching all the fields one after
-    another. Do this to speed things up
- */
+	/*
+	 * check if we are accessing the same tuple that was used in the last
+	 * fetch (e.g: for fetching all the fields one after another. Do this
+	 * to speed things up
+	 */
 	if (tupleno == self->last_indexed)
 		return self->lastref->tuple[fieldno].value;
 
- /* now for the tricky part... */
+	/* now for the tricky part... */
 
- /*
- Since random access is quite inefficient for linked lists we use
- the lastref pointer that points to the last element referenced
- by a get_fieldval() call in conjunction with the its index number
- that is stored in last_indexed. (So we use some locality of
- reference principle to speed things up)
- */
+	/*
+	 * Since random access is quite inefficient for linked lists we use
+	 * the lastref pointer that points to the last element referenced by a
+	 * get_fieldval() call in conjunction with the its index number that
+	 * is stored in last_indexed. (So we use some locality of reference
+	 * principle to speed things up)
+	 */
 
 	delta = tupleno - self->last_indexed;
 	/* if delta is positive, we have to go forward */
 
-	/* now check if we are closer to the start or the end of the list
-	than to our last_indexed pointer
-	*/
+	/*
+	 * now check if we are closer to the start or the end of the list than
+	 * to our last_indexed pointer
+	 */
 	from_end = (self->num_tuples - 1) - tupleno;
 
 	start_is_closer = labs(delta) > tupleno;
-	/* true if we are closer to the start of the list than to the
-	last_indexed pointer
-	*/
+
+	/*
+	 * true if we are closer to the start of the list than to the
+	 * last_indexed pointer
+	 */
 
 	end_is_closer = labs(delta) > from_end;
 	/* true if we are closer at the end of the list */
 
-	if (end_is_closer) {
+	if (end_is_closer)
+	{
 		/* scanning from the end is the shortest way. so we do that... */
 		rv = self->list_end;
-		for (lf=0; lf < from_end; lf++)
+		for (lf = 0; lf < from_end; lf++)
 			rv = rv->prev;
-	} else if (start_is_closer) {
-		/* the shortest way is to start the search from the head of the list */
+	}
+	else if (start_is_closer)
+	{
+
+		/*
+		 * the shortest way is to start the search from the head of the
+		 * list
+		 */
 		rv = self->list_start;
-		for (lf=0; lf < tupleno; lf++)
+		for (lf = 0; lf < tupleno; lf++)
 			rv = rv->next;
-	} else {
+	}
+	else
+	{
 		/* the closest way is starting from our lastref - pointer */
 		rv = self->lastref;
-		/* at first determine whether we have to search forward or backwards */
-		if (delta < 0) {
+
+		/*
+		 * at first determine whether we have to search forward or
+		 * backwards
+		 */
+		if (delta < 0)
+		{
 			/* we have to search backwards */
-			for(lf=0; lf < (-1)*delta; lf++)
+			for (lf = 0; lf < (-1) * delta; lf++)
 				rv = rv->prev;
-		} else {
+		}
+		else
+		{
 			/* ok, we have to search forward... */
-			for (lf=0; lf < delta; lf++)
-			rv = rv->next;
+			for (lf = 0; lf < delta; lf++)
+				rv = rv->next;
 		}
 	}
 
-	/* now we have got our return pointer, so update the lastref
-		and the last_indexed values
-	*/
+	/*
+	 * now we have got our return pointer, so update the lastref and the
+	 * last_indexed values
+	 */
 	self->lastref = rv;
 	self->last_indexed = tupleno;
 
@@ -154,25 +179,32 @@ TupleNode *rv;
 
 
 char
-TL_add_tuple(TupleListClass *self, TupleNode *new_field)
+TL_add_tuple(TupleListClass * self, TupleNode * new_field)
 {
- /* we append the tuple at the end of the doubly linked list
-    of the tuples we have already read in
- */
+
+	/*
+	 * we append the tuple at the end of the doubly linked list of the
+	 * tuples we have already read in
+	 */
 
 	new_field->prev = NULL;
 	new_field->next = NULL;
 
-	if (self->list_start == NULL) {
+	if (self->list_start == NULL)
+	{
 		/* the list is empty, we have to add the first tuple */
 		self->list_start = new_field;
 		self->list_end = new_field;
 		self->lastref = new_field;
 		self->last_indexed = 0;
-	} else {
-		/* there is already an element in the list, so add the new
-			one at the end of the list
-		*/
+	}
+	else
+	{
+
+		/*
+		 * there is already an element in the list, so add the new one at
+		 * the end of the list
+		 */
 		self->list_end->next = new_field;
 		new_field->prev = self->list_end;
 		self->list_end = new_field;
@@ -182,5 +214,3 @@ TL_add_tuple(TupleListClass *self, TupleNode *new_field)
 	/* this method of building a list cannot fail, so we return 1 */
 	return 1;
 }
-
-
diff --git a/src/interfaces/odbc/tuplelist.h b/src/interfaces/odbc/tuplelist.h
index 0f0bdb42ffb41f85d281d202a2d6714b87de8d3e..1517e3336edf9d5c3d56d5ccffd7db11849953bd 100644
--- a/src/interfaces/odbc/tuplelist.h
+++ b/src/interfaces/odbc/tuplelist.h
@@ -1,12 +1,12 @@
 
-/* File:            tuplelist.h
+/* File:			tuplelist.h
  *
- * Description:     See "tuplelist.c"
+ * Description:		See "tuplelist.c"
  *
- * Important Note:  This structure and its functions are ONLY used in building manual result
- *                  sets for info functions (SQLTables, SQLColumns, etc.)
+ * Important Note:	This structure and its functions are ONLY used in building manual result
+ *					sets for info functions (SQLTables, SQLColumns, etc.)
  *
- * Comments:        See "notice.txt" for copyright and license information.
+ * Comments:		See "notice.txt" for copyright and license information.
  *
  */
 
@@ -15,19 +15,22 @@
 
 #include "psqlodbc.h"
 
-struct TupleListClass_ {
-	Int4 num_fields;
-	Int4 num_tuples;  
-	TupleNode *list_start, *list_end, *lastref;
-	Int4 last_indexed;
+struct TupleListClass_
+{
+	Int4		num_fields;
+	Int4		num_tuples;
+	TupleNode  *list_start,
+			   *list_end,
+			   *lastref;
+	Int4		last_indexed;
 };
 
 #define TL_get_num_tuples(x)	(x->num_tuples)
 
 /* Create a TupleList. Each tuple consits of fieldcnt columns */
 TupleListClass *TL_Constructor(UInt4 fieldcnt);
-void TL_Destructor(TupleListClass *self);  
-void *TL_get_fieldval(TupleListClass *self, Int4 tupleno, Int2 fieldno);
-char TL_add_tuple(TupleListClass *self, TupleNode *new_field);
+void		TL_Destructor(TupleListClass * self);
+void	   *TL_get_fieldval(TupleListClass * self, Int4 tupleno, Int2 fieldno);
+char		TL_add_tuple(TupleListClass * self, TupleNode * new_field);
 
 #endif
diff --git a/src/tools/pgindent/README b/src/tools/pgindent/README
index 446010c9c50641f35b83df4669a26a5c7605e499..ec12fd8f740f11e7976b405f536b1a8896df9b95 100644
--- a/src/tools/pgindent/README
+++ b/src/tools/pgindent/README
@@ -3,7 +3,7 @@ This can format all PostgreSQL *.c and *.h files, excluding libpq++,
 
 On 09/06/1997, from the top directory, I ran:
 
-  find . -name '*.[ch]' -type f -print | egrep -v '\+\+|/odbc/|s_lock.h' | xargs -n100 pgindent
+  find . -name '*.[ch]' -type f -print | egrep -v '\+\+|s_lock.h' | xargs -n100 pgindent
 
 The stock BSD indent has two bugs.  First, a comment after the word 'else' 
 causes the rest of the file to be ignored.  Second, it silently ignores