From 5ad627479c2b90fabb3a0c8135947a9ea368b6a3 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 10 Feb 2001 07:11:28 +0000 Subject: [PATCH] More ODBC formatting cleanup. --- src/interfaces/odbc/bind.c | 15 +-- src/interfaces/odbc/columninfo.c | 4 - src/interfaces/odbc/connection.c | 23 +---- src/interfaces/odbc/convert.c | 33 ------ src/interfaces/odbc/dlg_specific.c | 11 +- src/interfaces/odbc/drvconn.c | 7 +- src/interfaces/odbc/environ.c | 10 +- src/interfaces/odbc/execute.c | 38 ++----- src/interfaces/odbc/info.c | 57 +++------- src/interfaces/odbc/lobj.c | 1 - src/interfaces/odbc/misc.c | 2 - src/interfaces/odbc/options.c | 16 +-- src/interfaces/odbc/parse.c | 15 --- src/interfaces/odbc/pgtypes.c | 160 +++++++++++++++-------------- src/interfaces/odbc/psqlodbc.c | 5 +- src/interfaces/odbc/qresult.c | 11 -- src/interfaces/odbc/results.c | 53 +++------- src/interfaces/odbc/setup.c | 14 +-- src/interfaces/odbc/socket.c | 5 - src/interfaces/odbc/statement.c | 24 +---- src/interfaces/odbc/tuplelist.c | 4 - 21 files changed, 145 insertions(+), 363 deletions(-) diff --git a/src/interfaces/odbc/bind.c b/src/interfaces/odbc/bind.c index 5589db9737..21ce19da54 100644 --- a/src/interfaces/odbc/bind.c +++ b/src/interfaces/odbc/bind.c @@ -35,7 +35,7 @@ /* Bind parameters on a statement handle */ -RETCODE SQL_API +RETCODE SQL_API SQLBindParameter( HSTMT hstmt, UWORD ipar, @@ -156,7 +156,7 @@ SQLBindParameter( /* - - - - - - - - - */ /* Associate a user-supplied buffer with a database column. */ -RETCODE SQL_API +RETCODE SQL_API SQLBindCol( HSTMT hstmt, UWORD icol, @@ -192,7 +192,6 @@ SQLBindCol( /* If the bookmark column is being bound, then just save it */ if (icol == 0) { - if (rgbValue == NULL) { stmt->bookmark.buffer = NULL; @@ -268,7 +267,7 @@ SQLBindCol( /* it is best to say this function is not supported and let the application assume a */ /* data type (most likely varchar). */ -RETCODE SQL_API +RETCODE SQL_API SQLDescribeParam( HSTMT hstmt, UWORD ipar, @@ -322,7 +321,7 @@ SQLDescribeParam( /* Sets multiple values (arrays) for the set of parameter markers. */ -RETCODE SQL_API +RETCODE SQL_API SQLParamOptions( HSTMT hstmt, UDWORD crow, @@ -345,7 +344,7 @@ 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 +RETCODE SQL_API SQLNumParams( HSTMT hstmt, SWORD FAR * pcpar) @@ -382,10 +381,8 @@ SQLNumParams( } else { - for (i = 0; i < strlen(stmt->statement); i++) { - if (stmt->statement[i] == '?' && !in_quote) (*pcpar)++; else @@ -436,7 +433,6 @@ extend_bindings(StatementClass * stmt, int num_columns) /* entries into the new structure */ if (stmt->bindings_allocated < num_columns) { - new_bindings = create_empty_bindings(num_columns); if (!new_bindings) { @@ -461,7 +457,6 @@ extend_bindings(StatementClass * stmt, int num_columns) 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, */ diff --git a/src/interfaces/odbc/columninfo.c b/src/interfaces/odbc/columninfo.c index 4969846e14..9cc418de49 100644 --- a/src/interfaces/odbc/columninfo.c +++ b/src/interfaces/odbc/columninfo.c @@ -77,7 +77,6 @@ CI_read_fields(ColumnInfoClass * self, ConnectionClass * conn) /* now read in the descriptions */ 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); @@ -85,7 +84,6 @@ CI_read_fields(ColumnInfoClass * self, ConnectionClass * conn) /* 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); @@ -93,7 +91,6 @@ CI_read_fields(ColumnInfoClass * self, ConnectionClass * conn) new_atttypmod -= 4; if (new_atttypmod < 0) new_atttypmod = -1; - } mylog("CI_read_fields: fieldname='%s', adtid=%d, adtsize=%d, atttypmod=%d\n", new_field_name, new_adtid, new_adtsize, new_atttypmod); @@ -146,7 +143,6 @@ void 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)) return; diff --git a/src/interfaces/odbc/connection.c b/src/interfaces/odbc/connection.c index aa283f4882..2d1765af30 100644 --- a/src/interfaces/odbc/connection.c +++ b/src/interfaces/odbc/connection.c @@ -34,7 +34,7 @@ extern GLOBAL_VALUES globals; -RETCODE SQL_API +RETCODE SQL_API SQLAllocConnect( HENV henv, HDBC FAR * phdbc) @@ -75,7 +75,7 @@ SQLAllocConnect( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLConnect( HDBC hdbc, UCHAR FAR * szDSN, @@ -132,7 +132,7 @@ SQLConnect( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLBrowseConnect( HDBC hdbc, UCHAR FAR * szConnStrIn, @@ -151,7 +151,7 @@ SQLBrowseConnect( /* - - - - - - - - - */ /* Drop any hstmts open on hdbc and disconnect from database */ -RETCODE SQL_API +RETCODE SQL_API SQLDisconnect( HDBC hdbc) { @@ -191,7 +191,7 @@ SQLDisconnect( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLFreeConnect( HDBC hdbc) { @@ -239,7 +239,6 @@ CC_Constructor() if (rv != NULL) { - rv->henv = NULL; /* not yet associated with an environment */ rv->errormsg = NULL; @@ -280,7 +279,6 @@ CC_Constructor() /* Statements under this conn will inherit these options */ InitializeStatementOptions(&rv->stmtOptions); - } return rv; } @@ -289,7 +287,6 @@ CC_Constructor() char CC_Destructor(ConnectionClass * self) { - mylog("enter CC_Destructor, self=%u\n", self); if (self->status == CONN_EXECUTING) @@ -380,7 +377,6 @@ CC_abort(ConnectionClass * self) QR_Destructor(res); else return FALSE; - } return TRUE; @@ -499,12 +495,10 @@ CC_connect(ConnectionClass * self, char do_password) mylog("%s: entering...\n", func); if (do_password) - sock = self->sock; /* already connected, just authenticate */ 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, @@ -606,7 +600,6 @@ CC_connect(ConnectionClass * self, char do_password) do { - if (do_password) beresp = 'R'; else @@ -690,7 +683,6 @@ CC_connect(ConnectionClass * self, char do_password) self->errornumber = CONN_INVALID_AUTHENTICATION; return 0; } - } while (areq != AUTH_REQ_OK); CC_clear_error(self); /* clear any password error */ @@ -738,7 +730,6 @@ CC_connect(ConnectionClass * self, char do_password) mylog("%s: returning...\n", func); return 1; - } char @@ -955,7 +946,6 @@ CC_send_query(ConnectionClass * self, char *query, QueryInfo * qi) } else { - char clear = 0; mylog("send_query: ok - 'C' - %s\n", cmdbuffer); @@ -1187,7 +1177,6 @@ CC_send_function(ConnectionClass * self, int fnid, void *result_buf, int *actual 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); @@ -1343,7 +1332,6 @@ CC_send_settings(ConnectionClass * self) status = FALSE; mylog("%s: result %d, status %d from set geqo\n", func, result, status); - } /* KSQO */ @@ -1354,7 +1342,6 @@ CC_send_settings(ConnectionClass * self) status = FALSE; mylog("%s: result %d, status %d from set ksqo\n", func, result, status); - } /* Global settings */ diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c index 8542936d5c..719ff43be0 100644 --- a/src/interfaces/odbc/convert.c +++ b/src/interfaces/odbc/convert.c @@ -185,16 +185,11 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 /* pcbValueOffset is for computing any pcbValue location */ if (bind_size > 0) - { - pcbValueOffset = rgbValueOffset = (bind_size * bind_row); - } else { - pcbValueOffset = bind_row * sizeof(SDWORD); rgbValueOffset = bind_row * cbValueMax; - } memset(&st, 0, sizeof(SIMPLE_TIME)); @@ -238,7 +233,6 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 *********************************************************************/ switch (field_type) { - /* * $$$ need to add parsing for date/time/timestamp strings in * PG_TYPE_CHAR,VARCHAR $$$ @@ -255,10 +249,7 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 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 */ @@ -365,8 +356,6 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 if (fCType == SQL_C_CHAR) { - - /* Special character formatting as required */ /* @@ -447,7 +436,6 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 if (cbValueMax > 0) { - copy_len = (len >= cbValueMax) ? cbValueMax - 1 : len; /* Copy the data */ @@ -474,7 +462,6 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 } 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 @@ -624,7 +611,6 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 if (stmt->current_col >= 0) { - /* No more data left for this column */ if (stmt->bindings[stmt->current_col].data_left == 0) return COPY_NO_DATA_FOUND; @@ -642,7 +628,6 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 /* First call to SQLGetData so initialize data_left */ else stmt->bindings[stmt->current_col].data_left = len; - } if (cbValueMax > 0) @@ -677,7 +662,6 @@ copy_and_convert_field(StatementClass * stmt, Int4 field_type, void *value, Int2 *(SDWORD *) ((char *) pcbValue + pcbValueOffset) = len; return result; - } @@ -748,7 +732,6 @@ copy_statement_with_parameters(StatementClass * stmt) 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') @@ -955,7 +938,6 @@ copy_statement_with_parameters(StatementClass * stmt) 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); break; - } default: /* error */ @@ -1065,14 +1047,9 @@ copy_statement_with_parameters(StatementClass * stmt) case SQL_LONGVARBINARY: if (stmt->parameters[param_number].data_at_exec) - { - lobj_oid = stmt->parameters[param_number].lobj_oid; - - } else { - /* begin transaction if needed */ if (!CC_is_in_trans(stmt->hdbc)) { @@ -1188,9 +1165,7 @@ copy_statement_with_parameters(StatementClass * stmt) new_statement[npos++] = '\''; /* Close Quote */ break; - } - } /* end, for */ /* make sure new_statement is always null-terminated */ @@ -1253,7 +1228,6 @@ convert_escape(char *value) } else if (strcmp(key, "fn") == 0) { - /* * Function invocation Separate off the func name, skipping * trailing whitespace. @@ -1304,7 +1278,6 @@ convert_escape(char *value) } return escape; - } @@ -1473,7 +1446,6 @@ conv_from_octal(unsigned char *s) y += (s[i] - 48) * (int) pow(8, 3 - i); return y; - } unsigned int @@ -1485,7 +1457,6 @@ conv_from_hex(unsigned char *s) 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') @@ -1563,7 +1534,6 @@ convert_to_pgbinary(unsigned char *in, char *out, int len) strcpy(&out[o], conv_to_octal(in[i])); o += 5; } - } mylog("convert_to_pgbinary: returning %d, out='%.*s'\n", o, o, out); @@ -1661,7 +1631,6 @@ convert_lo(StatementClass * stmt, void *value, Int2 fCType, PTR rgbValue, if (!bindInfo || bindInfo->data_left == -1) { - /* begin transaction if needed */ if (!CC_is_in_trans(stmt->hdbc)) { @@ -1700,7 +1669,6 @@ convert_lo(StatementClass * stmt, void *value, Int2 fCType, PTR rgbValue, retval = lo_lseek(stmt->hdbc, stmt->lobj_fd, 0L, SEEK_END); if (retval >= 0) { - left = lo_tell(stmt->hdbc, stmt->lobj_fd); if (bindInfo) bindInfo->data_left = left; @@ -1804,5 +1772,4 @@ convert_lo(StatementClass * stmt, void *value, Int2 fCType, PTR rgbValue, return result; - } diff --git a/src/interfaces/odbc/dlg_specific.c b/src/interfaces/odbc/dlg_specific.c index 5f8e276a0a..7c8f699b2b 100644 --- a/src/interfaces/odbc/dlg_specific.c +++ b/src/interfaces/odbc/dlg_specific.c @@ -49,7 +49,6 @@ extern GLOBAL_VALUES globals; void SetDlgStuff(HWND hdlg, ConnInfo * ci) { - /* * If driver attribute NOT present, then set the datasource name and * description @@ -81,7 +80,7 @@ GetDlgStuff(HWND hdlg, ConnInfo * ci) -int CALLBACK +int CALLBACK driver_optionsProc(HWND hdlg, WORD wMsg, WPARAM wParam, @@ -223,13 +222,12 @@ driver_optionsProc(HWND hdlg, break; } - } return FALSE; } -int CALLBACK +int CALLBACK ds_optionsProc(HWND hdlg, WORD wMsg, WPARAM wParam, @@ -351,7 +349,6 @@ makeConnectString(char *connect_string, ConnInfo * ci) void copyAttributes(ConnInfo * ci, char *attribute, char *value) { - if (stricmp(attribute, "DSN") == 0) strcpy(ci->dsn, value); @@ -398,7 +395,6 @@ copyAttributes(ConnInfo * ci, char *attribute, char *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); - } void @@ -520,7 +516,6 @@ getDSNinfo(ConnInfo * ci, char overwrite) qlog(" translation_dll='%s',translation_option='%s'\n", ci->translation_dll, ci->translation_option); - } @@ -778,7 +773,6 @@ getGlobalDefaults(char *section, char *filename, char override) /* Dont allow override of an override! */ if (!override) { - /* * ConnSettings is stored in the driver section and per datasource * for override @@ -805,7 +799,6 @@ getGlobalDefaults(char *section, char *filename, char override) strcpy(globals.protocol, temp); else strcpy(globals.protocol, DEFAULT_PROTOCOL); - } } diff --git a/src/interfaces/odbc/drvconn.c b/src/interfaces/odbc/drvconn.c index 3ced0103f9..52fff3e5af 100644 --- a/src/interfaces/odbc/drvconn.c +++ b/src/interfaces/odbc/drvconn.c @@ -65,7 +65,7 @@ extern HINSTANCE NEAR s_hModule;/* Saved module handle. */ extern GLOBAL_VALUES globals; -RETCODE SQL_API +RETCODE SQL_API SQLDriverConnect( HDBC hdbc, HWND hwnd, @@ -147,7 +147,6 @@ dialog: ci->port[0] == '\0' || password_required) { - dialog_result = dconn_DoDialog(hwnd, ci); if (dialog_result != SQL_SUCCESS) return dialog_result; @@ -216,7 +215,6 @@ dialog: 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, @@ -269,7 +267,7 @@ dconn_DoDialog(HWND hwnd, ConnInfo * ci) } -BOOL FAR PASCAL +BOOL FAR PASCAL dconn_FDriverConnectProc( HWND hdlg, UINT wMsg, @@ -390,7 +388,6 @@ dconn_get_connect_attributes(UCHAR FAR * connect_string, ConnInfo * ci) /* Copy the appropriate value to the conninfo */ copyAttributes(ci, attribute, value); - } diff --git a/src/interfaces/odbc/environ.c b/src/interfaces/odbc/environ.c index d769234e44..603ab077b0 100644 --- a/src/interfaces/odbc/environ.c +++ b/src/interfaces/odbc/environ.c @@ -22,7 +22,7 @@ ConnectionClass *conns[MAX_CONNECTIONS]; -RETCODE SQL_API +RETCODE SQL_API SQLAllocEnv(HENV FAR * phenv) { static char *func = "SQLAllocEnv"; @@ -41,7 +41,7 @@ SQLAllocEnv(HENV FAR * phenv) return SQL_SUCCESS; } -RETCODE SQL_API +RETCODE SQL_API SQLFreeEnv(HENV henv) { static char *func = "SQLFreeEnv"; @@ -62,7 +62,7 @@ SQLFreeEnv(HENV henv) /* Returns the next SQL error information. */ -RETCODE SQL_API +RETCODE SQL_API SQLError( HENV henv, HDBC hdbc, @@ -212,7 +212,6 @@ SQLError( } mylog(" szSqlState = '%s', szError='%s'\n", szSqlState, szErrorMsg); - } else { @@ -227,7 +226,6 @@ SQLError( return SQL_NO_DATA_FOUND; } return SQL_SUCCESS; - } else if (SQL_NULL_HDBC != hdbc) { @@ -322,7 +320,6 @@ SQLError( /* general error */ break; } - } else { @@ -337,7 +334,6 @@ SQLError( return SQL_NO_DATA_FOUND; } return SQL_SUCCESS; - } else if (SQL_NULL_HENV != henv) { diff --git a/src/interfaces/odbc/execute.c b/src/interfaces/odbc/execute.c index 229579708e..69db860d3b 100644 --- a/src/interfaces/odbc/execute.c +++ b/src/interfaces/odbc/execute.c @@ -39,7 +39,7 @@ extern GLOBAL_VALUES globals; /* Perform a Prepare on the SQL statement */ -RETCODE SQL_API +RETCODE SQL_API SQLPrepare(HSTMT hstmt, UCHAR FAR * szSqlStr, SDWORD cbSqlStr) @@ -133,7 +133,7 @@ SQLPrepare(HSTMT hstmt, /* Performs the equivalent of SQLPrepare, followed by SQLExecute. */ -RETCODE SQL_API +RETCODE SQL_API SQLExecDirect( HSTMT hstmt, UCHAR FAR * szSqlStr, @@ -195,7 +195,7 @@ SQLExecDirect( } /* Execute a prepared SQL statement */ -RETCODE SQL_API +RETCODE SQL_API SQLExecute( HSTMT hstmt) { @@ -274,7 +274,6 @@ SQLExecute( 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); @@ -321,14 +320,13 @@ SQLExecute( return SC_execute(stmt); - } /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLTransact( HENV henv, HDBC hdbc, @@ -363,7 +361,6 @@ SQLTransact( if (conn && conn->henv == henv) if (SQLTransact(henv, (HDBC) conn, fType) != SQL_SUCCESS) return SQL_ERROR; - } return SQL_SUCCESS; } @@ -371,15 +368,9 @@ SQLTransact( conn = (ConnectionClass *) hdbc; if (fType == SQL_COMMIT) - { stmt_string = "COMMIT"; - - } else if (fType == SQL_ROLLBACK) - { stmt_string = "ROLLBACK"; - - } else { conn->errornumber = CONN_INVALID_ARGUMENT_NO; @@ -391,7 +382,6 @@ SQLTransact( /* 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); @@ -418,7 +408,7 @@ SQLTransact( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLCancel( HSTMT hstmt) /* Statement to cancel. */ { @@ -447,8 +437,6 @@ SQLCancel( */ 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 @@ -490,7 +478,6 @@ SQLCancel( stmt->put_data = FALSE; return SQL_SUCCESS; - } /* - - - - - - - - - */ @@ -498,7 +485,7 @@ SQLCancel( /* 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 +RETCODE SQL_API SQLNativeSql( HDBC hdbc, UCHAR FAR * szSqlStrIn, @@ -552,7 +539,7 @@ SQLNativeSql( /* Supplies parameter data at execution time. Used in conjuction with */ /* SQLPutData. */ -RETCODE SQL_API +RETCODE SQL_API SQLParamData( HSTMT hstmt, PTR FAR * prgbValue) @@ -663,7 +650,7 @@ SQLParamData( /* Supplies parameter data at execution time. Used in conjunction with */ /* SQLParamData. */ -RETCODE SQL_API +RETCODE SQL_API SQLPutData( HSTMT hstmt, PTR rgbValue, @@ -720,7 +707,6 @@ SQLPutData( /* Handle Long Var Binary with Large Objects */ if (current_param->SQLType == SQL_LONGVARBINARY) { - /* begin transaction if needed */ if (!CC_is_in_trans(stmt->hdbc)) { @@ -774,7 +760,6 @@ SQLPutData( retval = lo_write(stmt->hdbc, stmt->lobj_fd, rgbValue, cbValue); mylog("lo_write: cbValue=%d, wrote %d bytes\n", cbValue, retval); - } else { /* for handling text fields and small @@ -814,17 +799,14 @@ SQLPutData( if (current_param->SQLType == SQL_LONGVARBINARY) { - /* the large object fd is in EXEC_buffer */ retval = lo_write(stmt->hdbc, stmt->lobj_fd, rgbValue, cbValue); mylog("lo_write(2): cbValue = %d, wrote %d bytes\n", cbValue, retval); *current_param->EXEC_used += cbValue; - } else { - buffer = current_param->EXEC_buffer; if (cbValue == SQL_NTS) @@ -845,11 +827,9 @@ SQLPutData( /* reassign buffer incase realloc moved it */ current_param->EXEC_buffer = buffer; - } else if (cbValue > 0) { - old_pos = *current_param->EXEC_used; *current_param->EXEC_used += cbValue; @@ -871,14 +851,12 @@ SQLPutData( /* reassign buffer incase realloc moved it */ current_param->EXEC_buffer = buffer; - } else { SC_log_error(func, "bad cbValue", stmt); return SQL_ERROR; } - } } diff --git a/src/interfaces/odbc/info.c b/src/interfaces/odbc/info.c index f777a71707..b444884086 100644 --- a/src/interfaces/odbc/info.c +++ b/src/interfaces/odbc/info.c @@ -58,7 +58,7 @@ extern GLOBAL_VALUES globals; /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLGetInfo( HDBC hdbc, UWORD fInfoType, @@ -698,7 +698,6 @@ SQLGetInfo( if (rgbInfoValue) { - if (len == 2) *((WORD *) rgbInfoValue) = (WORD) value; else if (len == 4) @@ -715,7 +714,7 @@ SQLGetInfo( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLGetTypeInfo( HSTMT hstmt, SWORD fSqlType) @@ -812,7 +811,7 @@ SQLGetTypeInfo( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLGetFunctions( HDBC hdbc, UWORD fFunction, @@ -824,7 +823,6 @@ SQLGetFunctions( if (fFunction == SQL_API_ALL_FUNCTIONS) { - if (globals.lie) { int i; @@ -910,13 +908,10 @@ SQLGetFunctions( } else { - if (globals.lie) *pfExists = TRUE; - else { - switch (fFunction) { case SQL_API_SQLALLOCCONNECT: @@ -1100,7 +1095,7 @@ SQLGetFunctions( -RETCODE SQL_API +RETCODE SQL_API SQLTables( HSTMT hstmt, UCHAR FAR * szTableQualifier, @@ -1330,7 +1325,6 @@ SQLTables( result = SQLFetch(htbl_stmt); 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. @@ -1338,7 +1332,6 @@ SQLTables( systable = FALSE; if (!atoi(ci->show_system_tables)) { - if (strncmp(table_name, POSTGRES_SYS_PREFIX, strlen(POSTGRES_SYS_PREFIX)) == 0) systable = TRUE; @@ -1379,7 +1372,6 @@ SQLTables( (view && show_views) || (regular_table && show_regular_tables)) { - row = (TupleNode *) malloc(sizeof(TupleNode) + (5 - 1) * sizeof(TupleField)); set_tuplefield_string(&row->tuple[0], ""); @@ -1427,7 +1419,7 @@ SQLTables( -RETCODE SQL_API +RETCODE SQL_API SQLColumns( HSTMT hstmt, UCHAR FAR * szTableQualifier, @@ -1685,12 +1677,10 @@ SQLColumns( 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)) { - /* For OID fields */ the_type = PG_TYPE_OID; row = (TupleNode *) malloc(sizeof(TupleNode) + @@ -1718,7 +1708,6 @@ SQLColumns( QR_add_tuple(stmt->result, row); } - } while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)) @@ -1779,7 +1768,6 @@ SQLColumns( if ((field_type == PG_TYPE_VARCHAR) || (field_type == PG_TYPE_BPCHAR)) { - useStaticPrecision = FALSE; if (mod_length >= 4) @@ -1815,7 +1803,6 @@ SQLColumns( result = SQLFetch(hcol_stmt); - } if (result != SQL_NO_DATA_FOUND) { @@ -1868,7 +1855,7 @@ SQLColumns( return SQL_SUCCESS; } -RETCODE SQL_API +RETCODE SQL_API SQLSpecialColumns( HSTMT hstmt, UWORD fColType, @@ -1983,11 +1970,9 @@ SQLSpecialColumns( set_tuplefield_int2(&row->tuple[7], SQL_PC_PSEUDO); QR_add_tuple(stmt->result, row); - } else if (fColType == SQL_ROWVER) { - Int2 the_type = PG_TYPE_INT4; if (atoi(ci->row_versioning)) @@ -2019,7 +2004,7 @@ SQLSpecialColumns( return SQL_SUCCESS; } -RETCODE SQL_API +RETCODE SQL_API SQLStatistics( HSTMT hstmt, UCHAR FAR * szTableQualifier, @@ -2152,7 +2137,6 @@ SQLStatistics( stmt->errornumber = col_stmt->errornumber; SQLFreeStmt(hcol_stmt, SQL_DROP); goto SEEYA; - } result = SQLFetch(hcol_stmt); @@ -2179,7 +2163,6 @@ SQLStatistics( stmt->errornumber = col_stmt->errornumber; SQLFreeStmt(hcol_stmt, SQL_DROP); goto SEEYA; - } SQLFreeStmt(hcol_stmt, SQL_DROP); @@ -2191,7 +2174,6 @@ SQLStatistics( stmt->errormsg = "SQLAllocStmt failed in SQLStatistics for indices."; stmt->errornumber = STMT_NO_MEMORY_ERROR; goto SEEYA; - } indx_stmt = (StatementClass *) hindx_stmt; @@ -2211,7 +2193,6 @@ SQLStatistics( stmt->errornumber = indx_stmt->errornumber; SQLFreeStmt(hindx_stmt, SQL_DROP); goto SEEYA; - } /* bind the index name column */ @@ -2224,7 +2205,6 @@ 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, @@ -2236,7 +2216,6 @@ 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, @@ -2260,7 +2239,6 @@ SQLStatistics( stmt->errornumber = indx_stmt->errornumber; SQLFreeStmt(hindx_stmt, SQL_DROP); goto SEEYA; - } result = SQLBindCol(hindx_stmt, 5, SQL_C_CHAR, @@ -2313,7 +2291,6 @@ SQLStatistics( 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))) @@ -2322,7 +2299,6 @@ SQLStatistics( /* add a row in this table for each field in the index */ while (i < 8 && fields_vector[i] != 0) { - row = (TupleNode *) malloc(sizeof(TupleNode) + (13 - 1) * sizeof(TupleField)); @@ -2417,7 +2393,7 @@ SEEYA: return SQL_SUCCESS; } -RETCODE SQL_API +RETCODE SQL_API SQLColumnPrivileges( HSTMT hstmt, UCHAR FAR * szTableQualifier, @@ -2443,7 +2419,7 @@ SQLColumnPrivileges( /* SQLPrimaryKeys() * Retrieve the primary key columns for the specified table. */ -RETCODE SQL_API +RETCODE SQL_API SQLPrimaryKeys( HSTMT hstmt, UCHAR FAR * szTableQualifier, @@ -2571,7 +2547,6 @@ SQLPrimaryKeys( while ((result == SQL_SUCCESS) || (result == SQL_SUCCESS_WITH_INFO)) { - row = (TupleNode *) malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField)); set_tuplefield_null(&row->tuple[0]); @@ -2620,7 +2595,7 @@ SQLPrimaryKeys( return SQL_SUCCESS; } -RETCODE SQL_API +RETCODE SQL_API SQLForeignKeys( HSTMT hstmt, UCHAR FAR * szPkTableQualifier, @@ -2897,7 +2872,6 @@ SQLForeignKeys( while (result == SQL_SUCCESS) { - /* Compute the number of keyparts. */ num_keys = (trig_nargs - 4) / 2; @@ -2912,7 +2886,6 @@ SQLForeignKeys( /* 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)) { @@ -3001,7 +2974,6 @@ SQLForeignKeys( for (k = 0; k < num_keys; k++) { - row = (TupleNode *) malloc(sizeof(TupleNode) + (result_cols - 1) * sizeof(TupleField)); mylog("%s: pk_table = '%s', pkey_ptr = '%s'\n", func, pk_table, pkey_ptr); @@ -3049,7 +3021,6 @@ SQLForeignKeys( */ else if (pk_table_needed[0] != '\0') { - sprintf(tables_query, "SELECT pg_trigger.tgargs, " " pg_trigger.tgnargs, " " pg_trigger.tgdeferrable, " @@ -3171,7 +3142,6 @@ SQLForeignKeys( while (result == SQL_SUCCESS) { - /* Calculate the number of key parts */ num_keys = (trig_nargs - 4) / 2;; @@ -3227,7 +3197,6 @@ SQLForeignKeys( 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)); @@ -3290,7 +3259,7 @@ SQLForeignKeys( -RETCODE SQL_API +RETCODE SQL_API SQLProcedureColumns( HSTMT hstmt, UCHAR FAR * szProcQualifier, @@ -3310,7 +3279,7 @@ SQLProcedureColumns( return SQL_ERROR; } -RETCODE SQL_API +RETCODE SQL_API SQLProcedures( HSTMT hstmt, UCHAR FAR * szProcQualifier, @@ -3328,7 +3297,7 @@ SQLProcedures( return SQL_ERROR; } -RETCODE SQL_API +RETCODE SQL_API SQLTablePrivileges( HSTMT hstmt, UCHAR FAR * szTableQualifier, diff --git a/src/interfaces/odbc/lobj.c b/src/interfaces/odbc/lobj.c index 0f1fd3b7c1..dfab593e77 100644 --- a/src/interfaces/odbc/lobj.c +++ b/src/interfaces/odbc/lobj.c @@ -76,7 +76,6 @@ lo_close(ConnectionClass * conn, int fd) else return retval; - } diff --git a/src/interfaces/odbc/misc.c b/src/interfaces/odbc/misc.c index 3dd6c93e0b..ffdd18b3ce 100644 --- a/src/interfaces/odbc/misc.c +++ b/src/interfaces/odbc/misc.c @@ -185,7 +185,6 @@ strncpy_null(char *dst, const char *src, int len) if (NULL != dst) { - /* Just in case, check for special lengths */ if (len == SQL_NULL_DATA) { @@ -241,7 +240,6 @@ make_string(char *s, int len, char *buf) 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); diff --git a/src/interfaces/odbc/options.c b/src/interfaces/odbc/options.c index acb36a2a96..2ea3d6e2f6 100644 --- a/src/interfaces/odbc/options.c +++ b/src/interfaces/odbc/options.c @@ -102,18 +102,15 @@ set_statement_option(ConnectionClass * conn, if (globals.lie) { - if (conn) conn->stmtOptions.cursor_type = vParam; if (stmt) stmt->options.cursor_type = vParam; - } else { if (globals.use_declarefetch) { - if (conn) conn->stmtOptions.cursor_type = SQL_CURSOR_FORWARD_ONLY; if (stmt) @@ -126,7 +123,6 @@ set_statement_option(ConnectionClass * conn, { if (vParam == SQL_CURSOR_FORWARD_ONLY || vParam == SQL_CURSOR_STATIC) { - if (conn) conn->stmtOptions.cursor_type = vParam; /* valid type */ if (stmt) @@ -134,7 +130,6 @@ set_statement_option(ConnectionClass * conn, } else { - if (conn) conn->stmtOptions.cursor_type = SQL_CURSOR_STATIC; if (stmt) @@ -289,7 +284,7 @@ set_statement_option(ConnectionClass * conn, /* Implements only SQL_AUTOCOMMIT */ -RETCODE SQL_API +RETCODE SQL_API SQLSetConnectOption( HDBC hdbc, UWORD fOption, @@ -312,7 +307,6 @@ SQLSetConnectOption( switch (fOption) { - /* * Statement Options (apply to all stmts on the connection and * become defaults for new stmts) @@ -423,7 +417,6 @@ SQLSetConnectOption( CC_log_error(func, option, conn); return SQL_ERROR; } - } if (changed) @@ -439,7 +432,7 @@ SQLSetConnectOption( /* - - - - - - - - - */ /* This function just can tell you whether you are in Autcommit mode or not */ -RETCODE SQL_API +RETCODE SQL_API SQLGetConnectOption( HDBC hdbc, UWORD fOption, @@ -509,7 +502,6 @@ SQLGetConnectOption( return SQL_ERROR; break; } - } return SQL_SUCCESS; @@ -517,7 +509,7 @@ SQLGetConnectOption( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLSetStmtOption( HSTMT hstmt, UWORD fOption, @@ -544,7 +536,7 @@ SQLSetStmtOption( /* - - - - - - - - - */ -RETCODE SQL_API +RETCODE SQL_API SQLGetStmtOption( HSTMT hstmt, UWORD fOption, diff --git a/src/interfaces/odbc/parse.c b/src/interfaces/odbc/parse.c index 20fedccccd..1a91ccb252 100644 --- a/src/interfaces/odbc/parse.c +++ b/src/interfaces/odbc/parse.c @@ -78,7 +78,6 @@ getNextToken(char *s, char *token, int smax, char *delim, char *quote, char *dqu while (!isspace((unsigned char) s[i]) && s[i] != ',' && s[i] != '\0' && out != smax) { - /* Handle quoted stuff */ if (out == 0 && (s[i] == '\"' || s[i] == '\'')) { @@ -279,7 +278,6 @@ parse_statement(StatementClass * stmt) while ((ptr = getNextToken(ptr, token, sizeof(token), &delim, "e, &dquote, &numeric)) != NULL) { - 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); @@ -323,7 +321,6 @@ parse_statement(StatementClass * stmt) !stricmp(token, "group") || !stricmp(token, "having"))) { - in_select = FALSE; in_from = FALSE; in_where = TRUE; @@ -334,7 +331,6 @@ parse_statement(StatementClass * stmt) if (in_select) { - if (in_distinct) { mylog("in distinct\n"); @@ -389,7 +385,6 @@ parse_statement(StatementClass * stmt) if (!in_field) { - if (!token[0]) continue; @@ -522,12 +517,10 @@ parse_statement(StatementClass * stmt) fi[stmt->nfld - 1]->expr = TRUE; fi[stmt->nfld - 1]->name[0] = '\0'; mylog("*** setting expression\n"); - } if (in_from) { - if (!in_table) { if (!token[0]) @@ -581,7 +574,6 @@ parse_statement(StatementClass * stmt) /* Resolve field names with tables */ for (i = 0; i < stmt->nfld; i++) { - if (fi[i]->func || fi[i]->expr || fi[i]->numeric) { fi[i]->ti = NULL; @@ -641,7 +633,6 @@ parse_statement(StatementClass * stmt) /* Call SQLColumns for each table and store the result */ for (i = 0; i < stmt->ntab; i++) { - /* See if already got it */ char found = FALSE; @@ -657,7 +648,6 @@ parse_statement(StatementClass * stmt) if (!found) { - mylog("PARSE: Getting SQLColumns for table[%d]='%s'\n", i, ti[i]->name); result = SQLAllocStmt(stmt->hdbc, &hcol_stmt); @@ -681,7 +671,6 @@ parse_statement(StatementClass * stmt) mylog(" Success\n"); 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 *)); @@ -741,7 +730,6 @@ parse_statement(StatementClass * stmt) for (i = 0; i < stmt->nfld;) { - /* Dont worry about functions or quotes */ if (fi[i]->func || fi[i]->quote || fi[i]->numeric) { @@ -752,7 +740,6 @@ parse_statement(StatementClass * stmt) /* Stars get expanded to all fields in the table */ else if (fi[i]->name[0] == '*') { - char do_all_tables; int total_cols, old_size, @@ -823,7 +810,6 @@ parse_statement(StatementClass * stmt) 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); @@ -867,7 +853,6 @@ parse_statement(StatementClass * stmt) */ else if (fi[i]->ti) { - if (!searchColInfo(fi[i]->ti->col_info, fi[i])) parse = FALSE; diff --git a/src/interfaces/odbc/pgtypes.c b/src/interfaces/odbc/pgtypes.c index 7139f57a19..44c6e64862 100644 --- a/src/interfaces/odbc/pgtypes.c +++ b/src/interfaces/odbc/pgtypes.c @@ -109,7 +109,6 @@ sqltype_to_pgtype(SWORD fSqlType) switch (fSqlType) { - case SQL_BINARY: pgType = PG_TYPE_BYTEA; break; @@ -199,11 +198,12 @@ 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_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; @@ -271,7 +271,8 @@ pgtype_to_ctype(StatementClass * stmt, Int4 type) { switch (type) { - case PG_TYPE_INT8:return SQL_C_CHAR; + case PG_TYPE_INT8: + return SQL_C_CHAR; case PG_TYPE_NUMERIC: return SQL_C_CHAR; case PG_TYPE_INT2: @@ -531,11 +532,10 @@ getCharPrecision(StatementClass * stmt, Int4 type, int col, int handle_unknown_s Int4 pgtype_precision(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as) { - switch (type) { - - case PG_TYPE_CHAR:return 1; + case PG_TYPE_CHAR: + return 1; case PG_TYPE_CHAR2: return 2; case PG_TYPE_CHAR4: @@ -597,10 +597,10 @@ pgtype_precision(StatementClass * stmt, Int4 type, int col, int handle_unknown_s Int4 pgtype_display_size(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as) { - switch (type) { - case PG_TYPE_INT2:return 6; + case PG_TYPE_INT2: + return 6; case PG_TYPE_OID: case PG_TYPE_XID: @@ -636,11 +636,10 @@ pgtype_display_size(StatementClass * stmt, Int4 type, int col, int handle_unknow Int4 pgtype_length(StatementClass * stmt, Int4 type, int col, int handle_unknown_size_as) { - switch (type) { - - case PG_TYPE_INT2:return 2; + case PG_TYPE_INT2: + return 2; case PG_TYPE_OID: case PG_TYPE_XID: @@ -681,24 +680,24 @@ 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: + 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_ABSTIME: + case PG_TYPE_DATETIME: + case PG_TYPE_TIMESTAMP: + return 0; case PG_TYPE_NUMERIC: return getNumericScale(stmt, type, col); @@ -714,14 +713,15 @@ 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; + 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; @@ -739,23 +739,23 @@ 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_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; + 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; @@ -767,16 +767,17 @@ pgtype_case_sensitive(StatementClass * stmt, Int4 type) { switch (type) { - case PG_TYPE_CHAR: + 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; @@ -788,7 +789,8 @@ pgtype_money(StatementClass * stmt, Int4 type) { switch (type) { - case PG_TYPE_MONEY:return TRUE; + case PG_TYPE_MONEY: + return TRUE; default: return FALSE; } @@ -799,15 +801,16 @@ 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_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; + 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; @@ -819,8 +822,9 @@ pgtype_unsigned(StatementClass * stmt, Int4 type) { switch (type) { - case PG_TYPE_OID: - case PG_TYPE_XID:return TRUE; + case PG_TYPE_OID: + case PG_TYPE_XID: + return TRUE; case PG_TYPE_INT2: case PG_TYPE_INT4: @@ -841,7 +845,6 @@ pgtype_literal_prefix(StatementClass * stmt, Int4 type) { switch (type) { - case PG_TYPE_INT2: case PG_TYPE_OID: case PG_TYPE_XID: @@ -862,7 +865,6 @@ pgtype_literal_suffix(StatementClass * stmt, Int4 type) { switch (type) { - case PG_TYPE_INT2: case PG_TYPE_OID: case PG_TYPE_XID: @@ -898,12 +900,12 @@ sqltype_to_default_ctype(Int2 sqltype) /* (Appendix D) */ switch (sqltype) { - case SQL_CHAR: - case SQL_VARCHAR: - case SQL_LONGVARCHAR: - case SQL_DECIMAL: - case SQL_NUMERIC: - case SQL_BIGINT: + 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: diff --git a/src/interfaces/odbc/psqlodbc.c b/src/interfaces/odbc/psqlodbc.c index ef6345cdd2..9d1a38ccd3 100644 --- a/src/interfaces/odbc/psqlodbc.c +++ b/src/interfaces/odbc/psqlodbc.c @@ -38,7 +38,7 @@ RETCODE SQL_API SQLDummyOrdinal(void); HINSTANCE NEAR s_hModule; /* Saved module handle. */ /* This is where the Driver Manager attaches to this Driver */ -BOOL WINAPI +BOOL WINAPI DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved) { WORD wVersionRequested; @@ -59,7 +59,6 @@ DllMain(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved) if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) { - WSACleanup(); return FALSE; } @@ -137,7 +136,7 @@ _fini(void) Driver Manager do this. Also, the ordinal values of the functions must match the value of fFunction in SQLGetFunctions() */ -RETCODE SQL_API +RETCODE SQL_API SQLDummyOrdinal(void) { return SQL_SUCCESS; diff --git a/src/interfaces/odbc/qresult.c b/src/interfaces/odbc/qresult.c index bc28126cf7..ff9f6a0644 100644 --- a/src/interfaces/odbc/qresult.c +++ b/src/interfaces/odbc/qresult.c @@ -110,7 +110,6 @@ QR_Constructor(void) rv->cache_size = globals.fetch_max; rv->rowset_size = 1; - } mylog("exit QR_Constructor\n"); @@ -152,7 +151,6 @@ QR_Destructor(QResultClass * self) free(self); mylog("QResult: exit DESTRUCTOR\n"); - } void @@ -186,7 +184,6 @@ QR_free_memory(QResultClass * self) if (self->backend_tuples) { - for (row = 0; row < fcount; row++) { mylog("row = %d, num_fields = %d\n", row, num_fields); @@ -284,7 +281,6 @@ QR_fetch_tuples(QResultClass * self, ConnectionClass * conn, char *cursor) } else { - /* Always have to read the field attributes. */ /* But we dont have to reallocate memory for them! */ @@ -343,7 +339,6 @@ QR_close(QResultClass * self) return FALSE; } } - } return TRUE; @@ -389,7 +384,6 @@ QR_next_tuple(QResultClass * self) } 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, @@ -399,7 +393,6 @@ QR_next_tuple(QResultClass * self) if (!self->inTuples) { - if (!globals.use_declarefetch) { mylog("next_tuple: ALL_ROWS: done, fcount = %d, fetch_count = %d\n", fcount, fetch_count); @@ -433,7 +426,6 @@ QR_next_tuple(QResultClass * self) offset = self->fetch_count; self->fetch_count++; - } @@ -486,7 +478,6 @@ QR_next_tuple(QResultClass * self) for (;;) { - id = SOCK_get_char(sock); switch (id) @@ -533,7 +524,6 @@ QR_next_tuple(QResultClass * self) 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); @@ -626,7 +616,6 @@ QR_read_tuple(QResultClass * self, char binary) } else { - /* * NO, the field is not null. so get at first the length of * the field (four bytes) diff --git a/src/interfaces/odbc/results.c b/src/interfaces/odbc/results.c index c3687ec250..e8b86b1f12 100644 --- a/src/interfaces/odbc/results.c +++ b/src/interfaces/odbc/results.c @@ -43,7 +43,7 @@ extern GLOBAL_VALUES globals; -RETCODE SQL_API +RETCODE SQL_API SQLRowCount( HSTMT hstmt, SDWORD FAR * pcrow) @@ -81,7 +81,6 @@ SQLRowCount( } else { - res = SC_get_Result(stmt); if (res && pcrow) { @@ -114,7 +113,7 @@ SQLRowCount( /* attached to "hstmt". */ -RETCODE SQL_API +RETCODE SQL_API SQLNumResultCols( HSTMT hstmt, SWORD FAR * pccol) @@ -135,7 +134,6 @@ SQLNumResultCols( parse_ok = FALSE; if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT) { - if (stmt->parse_status == STMT_PARSE_NONE) { mylog("SQLNumResultCols: calling parse_statement on stmt=%u\n", stmt); @@ -152,7 +150,6 @@ SQLNumResultCols( if (!parse_ok) { - SC_pre_execute(stmt); result = SC_get_Result(stmt); @@ -179,7 +176,7 @@ SQLNumResultCols( /* Return information about the database column the user wants */ /* information about. */ -RETCODE SQL_API +RETCODE SQL_API SQLDescribeCol( HSTMT hstmt, UWORD icol, @@ -229,7 +226,6 @@ SQLDescribeCol( parse_ok = FALSE; if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT) { - if (stmt->parse_status == STMT_PARSE_NONE) { mylog("SQLDescribeCol: calling parse_statement on stmt=%u\n", stmt); @@ -241,7 +237,6 @@ SQLDescribeCol( if (stmt->parse_status != STMT_PARSE_FATAL && stmt->fi && stmt->fi[icol]) { - if (icol >= stmt->nfld) { stmt->errornumber = STMT_INVALID_COLUMN_NUMBER_ERROR; @@ -342,7 +337,6 @@ SQLDescribeCol( /************************/ if (pcbColDef) { - if (precision < 0) precision = 0; /* "I dont know" */ @@ -381,7 +375,7 @@ SQLDescribeCol( /* Returns result column descriptor information for a result set. */ -RETCODE SQL_API +RETCODE SQL_API SQLColAttributes( HSTMT hstmt, UWORD icol, @@ -422,7 +416,7 @@ SQLColAttributes( icol--; unknown_sizes = globals.unknown_sizes; /* atoi(ci->unknown_sizes); - * */ + * */ if (unknown_sizes == UNKNOWNS_AS_DONTKNOW) /* not appropriate for * SQLColAttributes() */ unknown_sizes = UNKNOWNS_AS_MAX; @@ -430,7 +424,6 @@ SQLColAttributes( parse_ok = FALSE; if (globals.parse && stmt->statement_type == STMT_TYPE_SELECT) { - if (stmt->parse_status == STMT_PARSE_NONE) { mylog("SQLColAttributes: calling parse_statement\n"); @@ -453,7 +446,6 @@ SQLColAttributes( if (stmt->parse_status != STMT_PARSE_FATAL && stmt->fi && stmt->fi[icol]) { - if (icol >= cols) { stmt->errornumber = STMT_INVALID_COLUMN_NUMBER_ERROR; @@ -542,7 +534,6 @@ SQLColAttributes( mylog("SQLColAttr: COLUMN_LABEL = '%s'\n", p); break; - } /* otherwise same as column name -- FALL * THROUGH!!! */ @@ -652,7 +643,6 @@ SQLColAttributes( if (pfDesc) *pfDesc = value; - } @@ -661,7 +651,7 @@ SQLColAttributes( /* Returns result data for a single column in the current row. */ -RETCODE SQL_API +RETCODE SQL_API SQLGetData( HSTMT hstmt, UWORD icol, @@ -707,7 +697,6 @@ SQLGetData( if (icol == 0) { - if (stmt->options.use_bookmarks == SQL_UB_OFF) { stmt->errornumber = STMT_COLNUM_ERROR; @@ -726,12 +715,10 @@ SQLGetData( } get_bookmark = TRUE; - } else { - /* use zero-based column numbers */ icol--; @@ -849,7 +836,7 @@ SQLGetData( /* Returns data for bound columns in the current row ("hstmt->iCursor"), */ /* advances the cursor. */ -RETCODE SQL_API +RETCODE SQL_API SQLFetch( HSTMT hstmt) { @@ -919,7 +906,7 @@ SQLFetch( /* This fetchs a block of data (rowset). */ -RETCODE SQL_API +RETCODE SQL_API SQLExtendedFetch( HSTMT hstmt, UWORD fFetchType, @@ -1031,10 +1018,7 @@ SQLExtendedFetch( stmt->rowset_start = 0; else - { - stmt->rowset_start += (save_rowset_size > 0 ? save_rowset_size : stmt->options.rowset_size); - } mylog("SQL_FETCH_NEXT: num_tuples=%d, currtuple=%d\n", num_tuples, stmt->currTuple); break; @@ -1050,17 +1034,10 @@ SQLExtendedFetch( */ if (stmt->rowset_start >= num_tuples) - { stmt->rowset_start = num_tuples <= 0 ? 0 : (num_tuples - stmt->options.rowset_size); - - } else - { - stmt->rowset_start -= stmt->options.rowset_size; - } - break; case SQL_FETCH_FIRST: @@ -1116,7 +1093,6 @@ SQLExtendedFetch( default: SC_log_error(func, "Unsupported SQLExtendedFetch Direction", stmt); return SQL_ERROR; - } @@ -1172,7 +1148,6 @@ SQLExtendedFetch( truncated = error = FALSE; for (i = 0; i < stmt->options.rowset_size; i++) { - stmt->bind_row = i; /* set the binding location */ result = SC_fetch(stmt); @@ -1220,7 +1195,6 @@ SQLExtendedFetch( return SQL_SUCCESS_WITH_INFO; else return SQL_SUCCESS; - } @@ -1228,7 +1202,7 @@ SQLExtendedFetch( /* the "hstmt". */ /* CC: return SQL_NO_DATA_FOUND since we do not support multiple result sets */ -RETCODE SQL_API +RETCODE SQL_API SQLMoreResults( HSTMT hstmt) { @@ -1237,7 +1211,7 @@ SQLMoreResults( /* 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 +RETCODE SQL_API SQLSetPos( HSTMT hstmt, UWORD irow, @@ -1301,12 +1275,11 @@ SQLSetPos( stmt->currTuple = stmt->rowset_start + irow; return SQL_SUCCESS; - } /* Sets options that control the behavior of cursors. */ -RETCODE SQL_API +RETCODE SQL_API SQLSetScrollOptions( HSTMT hstmt, UWORD fConcurrency, @@ -1322,7 +1295,7 @@ SQLSetScrollOptions( /* Set the cursor name on a statement handle */ -RETCODE SQL_API +RETCODE SQL_API SQLSetCursorName( HSTMT hstmt, UCHAR FAR * szCursor, @@ -1356,7 +1329,7 @@ SQLSetCursorName( /* Return the cursor name for a statement handle */ -RETCODE SQL_API +RETCODE SQL_API SQLGetCursorName( HSTMT hstmt, UCHAR FAR * szCursor, diff --git a/src/interfaces/odbc/setup.c b/src/interfaces/odbc/setup.c index 51cf6482c8..220d563cbc 100644 --- a/src/interfaces/odbc/setup.c +++ b/src/interfaces/odbc/setup.c @@ -50,7 +50,6 @@ typedef struct tagSETUPDLG char szDSN[MAXDSNAME]; /* Original data source name */ BOOL fNewDSN; /* New data source flag */ BOOL fDefault; /* Default data source flag */ - } SETUPDLG, FAR * LPSETUPDLG; @@ -73,7 +72,7 @@ BOOL INTFUNC SetDSNAttributes(HWND hwnd, LPSETUPDLG lpsetupdlg); Output : TRUE success, FALSE otherwise --------------------------------------------------------------------------*/ -BOOL CALLBACK +BOOL CALLBACK ConfigDSN(HWND hwnd, WORD fRequest, LPCSTR lpszDriver, @@ -153,7 +152,7 @@ ConfigDSN(HWND hwnd, Input : hdlg -- Dialog window handle Output : None --------------------------------------------------------------------------*/ -void INTFUNC +void INTFUNC CenterDialog(HWND hdlg) { HWND hwndFrame; @@ -208,13 +207,12 @@ CenterDialog(HWND hdlg) --------------------------------------------------------------------------*/ -int CALLBACK +int CALLBACK ConfigDlgProc(HWND hdlg, WORD wMsg, WPARAM wParam, LPARAM lParam) { - switch (wMsg) { /* Initialize the dialog */ @@ -266,7 +264,6 @@ ConfigDlgProc(HWND hdlg, switch (GET_WM_COMMAND_ID(wParam, lParam)) { - /* * Ensure the OK button is enabled only when a data * source name @@ -344,7 +341,7 @@ ConfigDlgProc(HWND hdlg, Input : lpszAttributes - Pointer to attribute string Output : None (global aAttr normally updated) --------------------------------------------------------------------------*/ -void INTFUNC +void INTFUNC ParseAttributes(LPCSTR lpszAttributes, LPSETUPDLG lpsetupdlg) { LPCSTR lpsz; @@ -370,7 +367,6 @@ ParseAttributes(LPCSTR lpszAttributes, LPSETUPDLG lpsetupdlg) cbKey = lpsz - lpszStart; if (cbKey < sizeof(aszKey)) { - _fmemcpy(aszKey, lpszStart, cbKey); aszKey[cbKey] = '\0'; } @@ -398,7 +394,7 @@ ParseAttributes(LPCSTR lpszAttributes, LPSETUPDLG lpsetupdlg) Output : TRUE if successful, FALSE otherwise --------------------------------------------------------------------------*/ -BOOL INTFUNC +BOOL INTFUNC SetDSNAttributes(HWND hwndParent, LPSETUPDLG lpsetupdlg) { LPCSTR lpszDSN; /* Pointer to data source name */ diff --git a/src/interfaces/odbc/socket.c b/src/interfaces/odbc/socket.c index dfc8175db9..2ea3a7ae0b 100644 --- a/src/interfaces/odbc/socket.c +++ b/src/interfaces/odbc/socket.c @@ -70,7 +70,6 @@ SOCK_Constructor() rv->reverse = FALSE; } return rv; - } void @@ -93,7 +92,6 @@ SOCK_Destructor(SocketClass * self) free(self->buffer_out); free(self); - } @@ -145,7 +143,6 @@ SOCK_connect_to(SocketClass * self, unsigned short port, char *hostname) 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); @@ -290,7 +287,6 @@ SOCK_flush_output(SocketClass * self) unsigned char SOCK_get_next_byte(SocketClass * self) { - if (self->buffer_read_in >= self->buffer_filled_in) { /* there are no more bytes left in the buffer -> */ @@ -313,7 +309,6 @@ SOCK_get_next_byte(SocketClass * self) self->errormsg = "Socket has been closed."; self->buffer_filled_in = 0; } - } return self->buffer_in[self->buffer_read_in++]; } diff --git a/src/interfaces/odbc/statement.c b/src/interfaces/odbc/statement.c index 0069d5e341..b473e2d529 100644 --- a/src/interfaces/odbc/statement.c +++ b/src/interfaces/odbc/statement.c @@ -85,7 +85,7 @@ static struct }; -RETCODE SQL_API +RETCODE SQL_API SQLAllocStmt(HDBC hdbc, HSTMT FAR * phstmt) { @@ -139,7 +139,7 @@ SQLAllocStmt(HDBC hdbc, } -RETCODE SQL_API +RETCODE SQL_API SQLFreeStmt(HSTMT hstmt, UWORD fOption) { @@ -180,13 +180,9 @@ SQLFreeStmt(HSTMT hstmt, /* Destroy the statement and free any results, cursors, etc. */ SC_Destructor(stmt); - } else if (fOption == SQL_UNBIND) - { SC_unbind_cols(stmt); - - } else if (fOption == SQL_CLOSE) { /* this should discard all the results, but leave the statement */ @@ -197,13 +193,9 @@ SQLFreeStmt(HSTMT hstmt, SC_log_error(func, "", stmt); return SQL_ERROR; } - } else if (fOption == SQL_RESET_PARAMS) - { SC_free_params(stmt, STMT_FREE_PARAMS_ALL); - - } else { stmt->errormsg = "Invalid option passed to SQLFreeStmt."; @@ -298,7 +290,6 @@ SC_Constructor(void) char 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) { @@ -380,7 +371,6 @@ SC_free_params(StatementClass * self, char option) { if (self->parameters[i].data_at_exec == TRUE) { - if (self->parameters[i].EXEC_used) { free(self->parameters[i].EXEC_used); @@ -469,7 +459,6 @@ SC_recycle_statement(StatementClass * self) conn = SC_get_conn(self); if (!CC_is_in_autocommit(conn) && CC_is_in_trans(conn)) { - CC_send_query(conn, "ABORT", NULL); CC_set_no_trans(conn); } @@ -548,7 +537,6 @@ SC_recycle_statement(StatementClass * self) void SC_pre_execute(StatementClass * self) { - mylog("SC_pre_execute: status = %d\n", self->status); if (self->status == STMT_READY) @@ -690,11 +678,9 @@ SC_fetch(StatementClass * self) 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 at the end of the tuples, return "no data found" and set * the cursor past the end of the result set @@ -708,7 +694,6 @@ SC_fetch(StatementClass * self) } else { - /* read from the cache or the physical next tuple */ retval = QR_next_tuple(res); if (retval < 0) @@ -751,7 +736,6 @@ SC_fetch(StatementClass * self) 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 */ @@ -860,7 +844,6 @@ SC_execute(StatementClass * self) 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) @@ -902,7 +885,6 @@ SC_execute(StatementClass * self) /* in copy_statement... */ if (self->statement_type == STMT_TYPE_SELECT) { - char fetch[128]; mylog(" Sending SELECT statement on stmt=%u, cursor_name='%s'\n", self, self->cursor_name); @@ -914,7 +896,6 @@ SC_execute(StatementClass * self) if (globals.use_declarefetch && self->result != NULL && QR_command_successful(self->result)) { - QR_Destructor(self->result); /* @@ -968,7 +949,6 @@ SC_execute(StatementClass * self) /* Check the status of the result */ if (self->result) { - was_ok = QR_command_successful(self->result); was_nonfatal = QR_command_nonfatal(self->result); diff --git a/src/interfaces/odbc/tuplelist.c b/src/interfaces/odbc/tuplelist.c index a5745e350f..7d879c04d1 100644 --- a/src/interfaces/odbc/tuplelist.c +++ b/src/interfaces/odbc/tuplelist.c @@ -25,7 +25,6 @@ TL_Constructor(UInt4 fieldcnt) rv = (TupleListClass *) malloc(sizeof(TupleListClass)); if (rv) { - rv->num_fields = fieldcnt; rv->num_tuples = 0; rv->list_start = NULL; @@ -134,7 +133,6 @@ TL_get_fieldval(TupleListClass * self, Int4 tupleno, Int2 fieldno) } else if (start_is_closer) { - /* * the shortest way is to start the search from the head of the * list @@ -181,7 +179,6 @@ TL_get_fieldval(TupleListClass * self, Int4 tupleno, Int2 fieldno) char 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 @@ -200,7 +197,6 @@ TL_add_tuple(TupleListClass * self, TupleNode * new_field) } else { - /* * there is already an element in the list, so add the new one at * the end of the list