You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by su...@apache.org on 2017/11/10 05:41:12 UTC
[1/2] incubator-trafodion git commit: [TRAFODION-2801] select
count(*) with cqd hbase_coprocessors 'off' and cqd traf_table_snapshot_scan
'latest' fail
Repository: incubator-trafodion
Updated Branches:
refs/heads/master d8208546b -> 89433fbab
[TRAFODION-2801] select count(*) with cqd hbase_coprocessors 'off'
and cqd traf_table_snapshot_scan 'latest' fail
Changed to pass two more arrays references - familyArray and QualifierArray
from Java to JNI to extract the family and the qualifier names correctly
on the native side
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/c4fe7987
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/c4fe7987
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/c4fe7987
Branch: refs/heads/master
Commit: c4fe798711a18b9e78a0dad80b85705f1f89ac66
Parents: d820854
Author: selvaganesang <se...@esgyn.com>
Authored: Thu Nov 9 22:23:29 2017 +0000
Committer: selvaganesang <se...@esgyn.com>
Committed: Thu Nov 9 22:23:29 2017 +0000
----------------------------------------------------------------------
core/sql/executor/HBaseClient_JNI.cpp | 176 +++++++++++++------
core/sql/executor/HBaseClient_JNI.h | 13 +-
.../executor/org_trafodion_sql_HTableClient.h | 4 +-
.../java/org/trafodion/sql/HTableClient.java | 24 ++-
4 files changed, 152 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c4fe7987/core/sql/executor/HBaseClient_JNI.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/HBaseClient_JNI.cpp b/core/sql/executor/HBaseClient_JNI.cpp
index 78c4289..c181b41 100644
--- a/core/sql/executor/HBaseClient_JNI.cpp
+++ b/core/sql/executor/HBaseClient_JNI.cpp
@@ -3239,6 +3239,7 @@ static const char* const htcErrorEnumStr[] =
,"Async Hbase Operation not yet complete."
,"Java exception in setWriteToWal()."
,"Java exception in setWriteBufferSize()."
+ ,"Java exception in prepareForNextCell()."
};
//////////////////////////////////////////////////////////////////////////////
@@ -4312,7 +4313,8 @@ JNIEXPORT jint JNICALL Java_org_trafodion_sql_HTableClient_setResultInfo
jintArray jKvQualLen, jintArray jKvQualOffset,
jintArray jKvFamLen, jintArray jKvFamOffset,
jlongArray jTimestamp,
- jobjectArray jKvBuffer, jobjectArray jRowIDs,
+ jobjectArray jKvBuffer,
+ jobjectArray jKvFamArray, jobjectArray jkvQualArray, jobjectArray jRowIDs,
jintArray jKvsPerRow, jint numCellsReturned, jint numRowsReturned)
{
HTableClient_JNI *htc = (HTableClient_JNI *)jniObject;
@@ -4321,7 +4323,8 @@ JNIEXPORT jint JNICALL Java_org_trafodion_sql_HTableClient_setResultInfo
htc->setJavaObject(jobj);
htc->setResultInfo(jKvValLen, jKvValOffset,
jKvQualLen, jKvQualOffset, jKvFamLen, jKvFamOffset,
- jTimestamp, jKvBuffer, jRowIDs, jKvsPerRow, numCellsReturned, numRowsReturned);
+ jTimestamp, jKvBuffer, jKvFamArray, jkvQualArray,
+ jRowIDs, jKvsPerRow, numCellsReturned, numRowsReturned);
return 0;
}
@@ -4348,7 +4351,8 @@ void HTableClient_JNI::setResultInfo( jintArray jKvValLen, jintArray jKvValOffse
jintArray jKvQualLen, jintArray jKvQualOffset,
jintArray jKvFamLen, jintArray jKvFamOffset,
jlongArray jTimestamp,
- jobjectArray jKvBuffer, jobjectArray jRowIDs,
+ jobjectArray jKvBuffer,
+ jobjectArray jKvFamArray, jobjectArray jKvQualArray, jobjectArray jRowIDs,
jintArray jKvsPerRow, jint numCellsReturned, jint numRowsReturned)
{
if (numRowsReturned_ > 0)
@@ -4393,6 +4397,16 @@ void HTableClient_JNI::setResultInfo( jintArray jKvValLen, jintArray jKvValOffse
if (jenv_->ExceptionCheck())
exceptionFound = TRUE;
}
+ if (! exceptionFound) {
+ jKvFamArray_ = (jobjectArray)jenv_->NewGlobalRef(jKvFamArray);
+ if (jenv_->ExceptionCheck())
+ exceptionFound = TRUE;
+ }
+ if (! exceptionFound) {
+ jKvQualArray_ = (jobjectArray)jenv_->NewGlobalRef(jKvQualArray);
+ if (jenv_->ExceptionCheck())
+ exceptionFound = TRUE;
+ }
}
if (! exceptionFound) {
jRowIDs_ = (jobjectArray)jenv_->NewGlobalRef(jRowIDs);
@@ -4449,6 +4463,14 @@ void HTableClient_JNI::cleanupResultInfo()
jenv_->DeleteGlobalRef(jKvBuffer_);
jKvBuffer_ = NULL;
}
+ if (jKvFamArray_ != NULL) {
+ jenv_->DeleteGlobalRef(jKvFamArray_);
+ jKvFamArray_ = NULL;
+ }
+ if (jKvQualArray_ != NULL) {
+ jenv_->DeleteGlobalRef(jKvQualArray_);
+ jKvQualArray_ = NULL;
+ }
if (jRowIDs_ != NULL) {
jenv_->DeleteGlobalRef(jRowIDs_);
jRowIDs_ = NULL;
@@ -4458,6 +4480,16 @@ void HTableClient_JNI::cleanupResultInfo()
jenv_->DeleteGlobalRef(jba_kvBuffer_);
jba_kvBuffer_ = NULL;
}
+ if (jba_kvFamArray_ != NULL)
+ {
+ jenv_->DeleteGlobalRef(jba_kvFamArray_);
+ jba_kvFamArray_ = NULL;
+ }
+ if (jba_kvQualArray_ != NULL)
+ {
+ jenv_->DeleteGlobalRef(jba_kvQualArray_);
+ jba_kvQualArray_ = NULL;
+ }
if (p_rowID_ != NULL)
{
jenv_->ReleaseByteArrayElements(jba_rowID_, p_rowID_, JNI_ABORT);
@@ -4474,6 +4506,7 @@ void HTableClient_JNI::cleanupResultInfo()
return;
}
+
HTC_RetCode HTableClient_JNI::nextRow()
{
HTC_RetCode retCode;
@@ -4598,52 +4631,106 @@ void HTableClient_JNI::getResultInfo()
prevRowCellNum_ = 0;
}
-HTC_RetCode HTableClient_JNI::getColName(int colNo,
- char **outColName,
- short &colNameLen,
- Int64 ×tamp)
+HTC_RetCode HTableClient_JNI::prepareForNextCell(int idx)
{
- jint kvsPerRow = p_kvsPerRow_[currentRowNum_];
- if (kvsPerRow == 0 || colNo >= kvsPerRow)
+ jobject kvBufferObj;
+
+ if (jba_kvFamArray_ != NULL)
{
- *outColName == NULL;
- timestamp = 0;
- return HTC_OK;
+ jenv_->DeleteGlobalRef(jba_kvFamArray_);
+ jba_kvFamArray_ = NULL;
}
- int idx = prevRowCellNum_ + colNo;
- ex_assert((idx < numCellsReturned_), "Buffer overflow");
- jint kvQualLen = p_kvQualLen_[idx];
- jint kvQualOffset = p_kvQualOffset_[idx];
- jint kvFamLen = p_kvFamLen_[idx];
- jint kvFamOffset = p_kvFamOffset_[idx];
+ kvBufferObj = jenv_->GetObjectArrayElement(jKvFamArray_, idx);
+ if (jenv_->ExceptionCheck())
+ {
+ getExceptionDetails();
+ logError(CAT_SQL_HBASE, __FILE__, __LINE__);
+ logError(CAT_SQL_HBASE, "HTableClient_JNI::prepareForNextCell()", getLastError());
+ return HTC_PREPARE_FOR_NEXTCELL_EXCEPTION;
+ }
+ jba_kvFamArray_ = (jbyteArray)jenv_->NewGlobalRef(kvBufferObj);
+ if (jenv_->ExceptionCheck())
+ {
+ getExceptionDetails();
+ logError(CAT_SQL_HBASE, __FILE__, __LINE__);
+ logError(CAT_SQL_HBASE, "HTableClient_JNI::prepareForNextCell()", getLastError());
+ return HTC_PREPARE_FOR_NEXTCELL_EXCEPTION;
+ }
+ jenv_->DeleteLocalRef(kvBufferObj);
+
+ if (jba_kvQualArray_ != NULL)
+ {
+ jenv_->DeleteGlobalRef(jba_kvQualArray_);
+ jba_kvQualArray_ = NULL;
+ }
+ kvBufferObj = jenv_->GetObjectArrayElement(jKvQualArray_, idx);
+ if (jenv_->ExceptionCheck())
+ {
+ getExceptionDetails();
+ logError(CAT_SQL_HBASE, __FILE__, __LINE__);
+ logError(CAT_SQL_HBASE, "HTableClient_JNI::prepareForNextCell()", getLastError());
+ return HTC_PREPARE_FOR_NEXTCELL_EXCEPTION;
+ }
+ jba_kvQualArray_ = (jbyteArray)jenv_->NewGlobalRef(kvBufferObj);
+ if (jenv_->ExceptionCheck())
+ {
+ getExceptionDetails();
+ logError(CAT_SQL_HBASE, __FILE__, __LINE__);
+ logError(CAT_SQL_HBASE, "HTableClient_JNI::prepareForNextCell()", getLastError());
+ return HTC_PREPARE_FOR_NEXTCELL_EXCEPTION;
+ }
+ jenv_->DeleteLocalRef(kvBufferObj);
- // clean the kvBuffer of the previous column
- // And get the kvBuffer for the current column
if (jba_kvBuffer_ != NULL)
{
jenv_->DeleteGlobalRef(jba_kvBuffer_);
jba_kvBuffer_ = NULL;
}
- jobject kvBufferObj;
kvBufferObj = jenv_->GetObjectArrayElement(jKvBuffer_, idx);
if (jenv_->ExceptionCheck())
{
getExceptionDetails();
logError(CAT_SQL_HBASE, __FILE__, __LINE__);
- logError(CAT_SQL_HBASE, "HTableClient_JNI::getColName()", getLastError());
- return HTC_GET_COLNAME_EXCEPTION;
+ logError(CAT_SQL_HBASE, "HTableClient_JNI::prepareForNextCell()", getLastError());
+ return HTC_PREPARE_FOR_NEXTCELL_EXCEPTION;
}
-
jba_kvBuffer_ = (jbyteArray)jenv_->NewGlobalRef(kvBufferObj);
if (jenv_->ExceptionCheck())
{
getExceptionDetails();
logError(CAT_SQL_HBASE, __FILE__, __LINE__);
- logError(CAT_SQL_HBASE, "HTableClient_JNI::getColName()", getLastError());
- return HTC_GET_COLNAME_EXCEPTION;
+ logError(CAT_SQL_HBASE, "HTableClient_JNI::prepareForNextCell()", getLastError());
+ return HTC_PREPARE_FOR_NEXTCELL_EXCEPTION;
}
jenv_->DeleteLocalRef(kvBufferObj);
+ return HTC_OK;
+}
+
+HTC_RetCode HTableClient_JNI::getColName(int colNo,
+ char **outColName,
+ short &colNameLen,
+ Int64 ×tamp)
+{
+ HTC_RetCode retcode;
+
+ jint kvsPerRow = p_kvsPerRow_[currentRowNum_];
+ if (kvsPerRow == 0 || colNo >= kvsPerRow)
+ {
+ *outColName == NULL;
+ timestamp = 0;
+ return HTC_OK;
+ }
+ int idx = prevRowCellNum_ + colNo;
+ ex_assert((idx < numCellsReturned_), "Buffer overflow");
+ jint kvQualLen = p_kvQualLen_[idx];
+ jint kvQualOffset = p_kvQualOffset_[idx];
+ jint kvFamLen = p_kvFamLen_[idx];
+ jint kvFamOffset = p_kvFamOffset_[idx];
+
+ if ((retcode = prepareForNextCell(idx)) != HTC_OK)
+ return retcode;
+
colNameLen = kvQualLen + kvFamLen + 1; // 1 for ':'
char * colName;
if (colNameAllocLen_ == 0 && colNameLen <= INLINE_COLNAME_LEN)
@@ -4659,11 +4746,11 @@ HTC_RetCode HTableClient_JNI::getColName(int colNo,
}
colName = colName_;
}
- jenv_->GetByteArrayRegion(jba_kvBuffer_, kvFamOffset, kvFamLen,
+ jenv_->GetByteArrayRegion(jba_kvFamArray_, kvFamOffset, kvFamLen,
(jbyte *)colName);
colName[kvFamLen] = ':';
char *temp = colName+ kvFamLen+1;
- jenv_->GetByteArrayRegion(jba_kvBuffer_, kvQualOffset, kvQualLen,
+ jenv_->GetByteArrayRegion(jba_kvQualArray_, kvQualOffset, kvQualLen,
(jbyte *)temp);
timestamp = p_timestamp_[idx];
*outColName = colName;
@@ -4873,33 +4960,8 @@ HTC_RetCode HTableClient_JNI::nextCell(
jint kvFamLen = p_kvFamLen_[idx];
jint kvFamOffset = p_kvFamOffset_[idx];
- // clean the kvBuffer of the previous column
- // And get the kvBuffer for the current column
-
- if (jba_kvBuffer_ != NULL)
- {
- jenv_->DeleteGlobalRef(jba_kvBuffer_);
- jba_kvBuffer_ = NULL;
- }
- jobject kvBufferObj;
- kvBufferObj = jenv_->GetObjectArrayElement(jKvBuffer_, idx);
- if (jenv_->ExceptionCheck())
- {
- getExceptionDetails();
- logError(CAT_SQL_HBASE, __FILE__, __LINE__);
- logError(CAT_SQL_HBASE, "HTableClient_JNI::nextCell()", getLastError());
- return HTC_NEXTCELL_EXCEPTION;
- }
-
- jba_kvBuffer_ = (jbyteArray)jenv_->NewGlobalRef(kvBufferObj);
- if (jenv_->ExceptionCheck())
- {
- getExceptionDetails();
- logError(CAT_SQL_HBASE, __FILE__, __LINE__);
- logError(CAT_SQL_HBASE, "HTableClient_JNI::nextCell()", getLastError());
- return HTC_NEXTCELL_EXCEPTION;
- }
- jenv_->DeleteLocalRef(kvBufferObj);
+ if ((retcode = prepareForNextCell(idx)) != HTC_OK)
+ return retcode;
int colNameLen = kvQualLen + kvFamLen + 1; // 1 for ':'
char * colName;
@@ -4916,13 +4978,13 @@ HTC_RetCode HTableClient_JNI::nextCell(
}
colName = colName_;
}
- jenv_->GetByteArrayRegion(jba_kvBuffer_, kvFamOffset, kvFamLen,
+ jenv_->GetByteArrayRegion(jba_kvFamArray_, kvFamOffset, kvFamLen,
(jbyte *)colName);
colName[kvFamLen] = ':';
colFamName.val = colName;
colFamName.len = kvFamLen;
char *temp = colName+ kvFamLen+1;
- jenv_->GetByteArrayRegion(jba_kvBuffer_, kvQualOffset, kvQualLen,
+ jenv_->GetByteArrayRegion(jba_kvQualArray_, kvQualOffset, kvQualLen,
(jbyte *)temp);
colQualName.val = temp;
colQualName.len = kvQualLen;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c4fe7987/core/sql/executor/HBaseClient_JNI.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/HBaseClient_JNI.h b/core/sql/executor/HBaseClient_JNI.h
index 94e8922..d2f5d2b 100644
--- a/core/sql/executor/HBaseClient_JNI.h
+++ b/core/sql/executor/HBaseClient_JNI.h
@@ -115,6 +115,7 @@ typedef enum {
,HTC_ERROR_ASYNC_OPERATION_NOT_COMPLETE
,HTC_ERROR_WRITETOWAL_EXCEPTION
,HTC_ERROR_WRITEBUFFERSIZE_EXCEPTION
+ ,HTC_PREPARE_FOR_NEXTCELL_EXCEPTION
,HTC_LAST
} HTC_RetCode;
@@ -141,6 +142,8 @@ public:
jKvFamOffset_ = NULL;
jTimestamp_ = NULL;
jKvBuffer_ = NULL;
+ jKvFamArray_ = NULL;
+ jKvQualArray_ = NULL;
jRowIDs_ = NULL;
jKvsPerRow_ = NULL;
currentRowNum_ = -1;
@@ -162,6 +165,8 @@ public:
p_kvQualOffset_ = NULL;
p_timestamp_ = NULL;
jba_kvBuffer_ = NULL;
+ jba_kvFamArray_ = NULL;
+ jba_kvQualArray_ = NULL;
jba_rowID_ = NULL;
fetchMode_ = UNKNOWN;
p_rowID_ = NULL;
@@ -205,7 +210,8 @@ public:
jintArray jKvQualLen, jintArray jKvQualOffset,
jintArray jKvFamLen, jintArray jKvFamOffset,
jlongArray jTimestamp,
- jobjectArray jKvBuffer, jobjectArray jRowIDs,
+ jobjectArray jKvBuffer,
+ jobjectArray jKvFamArray, jobjectArray jKvQualArray, jobjectArray jRowIDs,
jintArray jKvsPerRow, jint numCellsReturned, jint numRowsReturned);
void getResultInfo();
void cleanupResultInfo();
@@ -232,6 +238,7 @@ public:
HbaseStr &colVal,
Int64 ×tamp);
HTC_RetCode completeAsyncOperation(int timeout, NABoolean *resultArray, short resultArrayLen);
+ HTC_RetCode prepareForNextCell(int idx);
// HTC_RetCode codeProcAggrGetResult();
@@ -299,6 +306,8 @@ private:
jintArray jKvFamOffset_;
jlongArray jTimestamp_;
jobjectArray jKvBuffer_;
+ jobjectArray jKvFamArray_;
+ jobjectArray jKvQualArray_;
jobjectArray jRowIDs_;
jintArray jKvsPerRow_;
jint *p_kvValLen_;
@@ -309,6 +318,8 @@ private:
jint *p_kvFamOffset_;
jlong *p_timestamp_;
jbyteArray jba_kvBuffer_;
+ jbyteArray jba_kvFamArray_;
+ jbyteArray jba_kvQualArray_;
jbyteArray jba_rowID_;
jbyte *p_rowID_;
jint *p_kvsPerRow_;
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c4fe7987/core/sql/executor/org_trafodion_sql_HTableClient.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/org_trafodion_sql_HTableClient.h b/core/sql/executor/org_trafodion_sql_HTableClient.h
index e3c8837..b8cff61 100644
--- a/core/sql/executor/org_trafodion_sql_HTableClient.h
+++ b/core/sql/executor/org_trafodion_sql_HTableClient.h
@@ -16,10 +16,10 @@ extern "C" {
/*
* Class: org_trafodion_sql_HTableClient
* Method: setResultInfo
- * Signature: (J[I[I[I[I[I[I[J[[B[[B[III)I
+ * Signature: (J[I[I[I[I[I[I[J[[B[[B[[B[[B[III)I
*/
JNIEXPORT jint JNICALL Java_org_trafodion_sql_HTableClient_setResultInfo
- (JNIEnv *, jobject, jlong, jintArray, jintArray, jintArray, jintArray, jintArray, jintArray, jlongArray, jobjectArray, jobjectArray, jintArray, jint, jint);
+ (JNIEnv *, jobject, jlong, jintArray, jintArray, jintArray, jintArray, jintArray, jintArray, jlongArray, jobjectArray, jobjectArray, jobjectArray, jobjectArray, jintArray, jint, jint);
/*
* Class: org_trafodion_sql_HTableClient
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/c4fe7987/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
----------------------------------------------------------------------
diff --git a/core/sql/src/main/java/org/trafodion/sql/HTableClient.java b/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
index 12d134c..7dae2b8 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HTableClient.java
@@ -129,6 +129,8 @@ public class HTableClient {
byte[][] kvBuffer = null;
byte[][] rowIDs = null;
int[] kvsPerRow = null;
+ byte[][] kvFamArray = null;
+ byte[][] kvQualArray = null;
static ExecutorService executorService = null;
Future future = null;
boolean preFetch = false;
@@ -1242,6 +1244,8 @@ public class HTableClient {
kvFamOffset = new int[numTotalCells];
kvTimestamp = new long[numTotalCells];
kvBuffer = new byte[numTotalCells][];
+ kvFamArray = new byte[numTotalCells][];
+ kvQualArray = new byte[numTotalCells][];
}
if (rowIDs == null || (rowIDs != null &&
@@ -1271,6 +1275,8 @@ public class HTableClient {
kvFamOffset[cellNum] = kv.getFamilyOffset();
kvTimestamp[cellNum] = kv.getTimestamp();
kvBuffer[cellNum] = kv.getValueArray();
+ kvFamArray[cellNum] = kv.getFamilyArray();
+ kvQualArray[cellNum] = kv.getQualifierArray();
colFound = true;
}
}
@@ -1282,11 +1288,11 @@ public class HTableClient {
if (cellsReturned == 0)
setResultInfo(jniObject, null, null,
null, null, null, null,
- null, null, rowIDs, kvsPerRow, cellsReturned, rowsReturned);
+ null, null, null, null, rowIDs, kvsPerRow, cellsReturned, rowsReturned);
else
setResultInfo(jniObject, kvValLen, kvValOffset,
kvQualLen, kvQualOffset, kvFamLen, kvFamOffset,
- kvTimestamp, kvBuffer, rowIDs, kvsPerRow, cellsReturned, rowsReturned);
+ kvTimestamp, kvBuffer, kvFamArray, kvQualArray, rowIDs, kvsPerRow, cellsReturned, rowsReturned);
return rowsReturned;
}
@@ -1294,6 +1300,7 @@ public class HTableClient {
throws IOException {
int rowsReturned = 1;
int numTotalCells;
+
if (numColsInScan == 0)
numTotalCells = result.size();
else
@@ -1316,6 +1323,8 @@ public class HTableClient {
kvFamOffset = new int[numTotalCells];
kvTimestamp = new long[numTotalCells];
kvBuffer = new byte[numTotalCells][];
+ kvFamArray = new byte[numTotalCells][];
+ kvQualArray = new byte[numTotalCells][];
}
if (rowIDs == null)
{
@@ -1342,15 +1351,17 @@ public class HTableClient {
kvFamOffset[colNum] = kv.getFamilyOffset();
kvTimestamp[colNum] = kv.getTimestamp();
kvBuffer[colNum] = kv.getValueArray();
+ kvFamArray[colNum] = kv.getFamilyArray();
+ kvQualArray[colNum] = kv.getQualifierArray();
}
if (numColsReturned == 0)
setResultInfo(jniObject, null, null,
null, null, null, null,
- null, null, rowIDs, kvsPerRow, numColsReturned, rowsReturned);
+ null, null, null, null, rowIDs, kvsPerRow, numColsReturned, rowsReturned);
else
setResultInfo(jniObject, kvValLen, kvValOffset,
kvQualLen, kvQualOffset, kvFamLen, kvFamOffset,
- kvTimestamp, kvBuffer, rowIDs, kvsPerRow, numColsReturned, rowsReturned);
+ kvTimestamp, kvBuffer, kvFamArray, kvQualArray, rowIDs, kvsPerRow, numColsReturned, rowsReturned);
return rowsReturned;
}
@@ -1876,7 +1887,10 @@ public class HTableClient {
int[] kvQualLen, int[] kvQualOffset,
int[] kvFamLen, int[] kvFamOffset,
long[] timestamp,
- byte[][] kvBuffer, byte[][] rowIDs,
+ byte[][] kvBuffer,
+ byte[][] kvFamArray,
+ byte[][] kvQualArray,
+ byte[][] rowIDs,
int[] kvsPerRow, int numCellsReturned,
int rowsReturned);
[2/2] incubator-trafodion git commit: Merge [TRAFODION-2801] PR-1294
select count(*) with cqd hbase_coprocessors off
Posted by su...@apache.org.
Merge [TRAFODION-2801] PR-1294 select count(*) with cqd hbase_coprocessors off
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/89433fba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/89433fba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/89433fba
Branch: refs/heads/master
Commit: 89433fbabf03b6a215d87c20aba9320ad451fbee
Parents: d820854 c4fe798
Author: Suresh Subbiah <su...@apache.org>
Authored: Fri Nov 10 05:40:49 2017 +0000
Committer: Suresh Subbiah <su...@apache.org>
Committed: Fri Nov 10 05:40:49 2017 +0000
----------------------------------------------------------------------
core/sql/executor/HBaseClient_JNI.cpp | 176 +++++++++++++------
core/sql/executor/HBaseClient_JNI.h | 13 +-
.../executor/org_trafodion_sql_HTableClient.h | 4 +-
.../java/org/trafodion/sql/HTableClient.java | 24 ++-
4 files changed, 152 insertions(+), 65 deletions(-)
----------------------------------------------------------------------