Repository: incubator-trafodion Updated Branches: refs/heads/master 08cc00ee8 -> c6d0773cb
[TRAFODION-1558]Tableau returns to tables or data [TRAFODION-1558]Used driver connection with TCP:<ip>/<port>. Connection succeeded but no schemas or tables are listed. It's was casued by the driver use long (4 bytes) to store the points (8 bytes) which caused data loss. The fix is use LONG_PTR insteaded. Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/a4480b31 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/a4480b31 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/a4480b31 Branch: refs/heads/master Commit: a4480b31973850d71bf7b84dfcd3453e390a688c Parents: 20a5030 Author: Weiqing Xu <[email protected]> Authored: Thu Nov 26 16:36:57 2015 +0800 Committer: Weiqing Xu <[email protected]> Committed: Thu Nov 26 16:36:57 2015 +0800 ---------------------------------------------------------------------- win-odbc64/odbcclient/drvr35/cstmt.cpp | 6 +++--- win-odbc64/odbcclient/drvr35/drvrnet.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a4480b31/win-odbc64/odbcclient/drvr35/cstmt.cpp ---------------------------------------------------------------------- diff --git a/win-odbc64/odbcclient/drvr35/cstmt.cpp b/win-odbc64/odbcclient/drvr35/cstmt.cpp index 53d239d..db7f7cb 100644 --- a/win-odbc64/odbcclient/drvr35/cstmt.cpp +++ b/win-odbc64/odbcclient/drvr35/cstmt.cpp @@ -3389,7 +3389,7 @@ BOOL CStmt::setFetchOutputPerf(long rowsFetched, SQL_DataValue_def*& outputDataV m_FetchDataValue.numberOfRows = rowsFetched; if(rowsFetched > 0) { - m_FetchDataValue.rowAddress = new unsigned long[rowsFetched]; + m_FetchDataValue.rowAddress = new LONG_PTR[rowsFetched]; if (m_FetchDataValue.rowAddress != NULL) return TRUE; else @@ -3616,7 +3616,7 @@ BOOL CStmt::setFetchOutputPerf(SQL_DataValue_def*& outputDataValue, long rowsFet if (rowsFetched > 0) { - m_FetchDataValue.rowAddress = new unsigned long[rowsFetched]; + m_FetchDataValue.rowAddress = new LONG_PTR[rowsFetched]; m_SwapInfo = new char*[rowsFetched]; m_SwapInfo_NumRows = rowsFetched; for (int i = 0; i < rowsFetched; i++) @@ -4640,7 +4640,7 @@ unsigned long CStmt::getNumberOfRows(void) void CStmt::setRowAddress( unsigned long row, BYTE* address) { if (row <= m_FetchDataValue.numberOfRows) - m_FetchDataValue.rowAddress[row] = (unsigned long)address; + m_FetchDataValue.rowAddress[row] = (LONG_PTR)address; } BYTE* CStmt::getRowAddress( unsigned long row) http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/a4480b31/win-odbc64/odbcclient/drvr35/drvrnet.h ---------------------------------------------------------------------- diff --git a/win-odbc64/odbcclient/drvr35/drvrnet.h b/win-odbc64/odbcclient/drvr35/drvrnet.h index 4df7da5..04c0ca9 100644 --- a/win-odbc64/odbcclient/drvr35/drvrnet.h +++ b/win-odbc64/odbcclient/drvr35/drvrnet.h @@ -128,7 +128,7 @@ typedef struct _SQLFetchDataValue { IDL_unsigned_long numberOfElements; IDL_unsigned_long numberOfRows; - IDL_unsigned_long* rowAddress; + LONG_PTR* rowAddress; } SQLFetchDataValue;
