Repository: incubator-trafodion Updated Branches: refs/heads/master ed98ed849 -> 15c5b33ce
[TRAFODION-1778] Update command when HBASE_VSBB_ROWSET_OPT 'ON' fails with internal error at times Direct buffer used in update command was not getting reset correctly when the exact number of rows as the maximum number of rows set using CQD HBASE_VSBB_ROWSET_SIZE is buffered for rowset operation. This caused the subsequent rowset operation to fail. Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/0967ed18 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/0967ed18 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/0967ed18 Branch: refs/heads/master Commit: 0967ed18d4764630ed7a7169279177b08a9456f4 Parents: ff4b7dd Author: selvaganesang <[email protected]> Authored: Mon Jan 25 06:46:09 2016 +0000 Committer: selvaganesang <[email protected]> Committed: Mon Jan 25 06:46:09 2016 +0000 ---------------------------------------------------------------------- core/sql/executor/ExHbaseAccess.h | 2 -- core/sql/executor/ExHbaseIUD.cpp | 28 ++++++---------------------- 2 files changed, 6 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0967ed18/core/sql/executor/ExHbaseAccess.h ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExHbaseAccess.h b/core/sql/executor/ExHbaseAccess.h index 6aeacd7..2e5da49 100644 --- a/core/sql/executor/ExHbaseAccess.h +++ b/core/sql/executor/ExHbaseAccess.h @@ -1142,10 +1142,8 @@ public: , SETUP_UMD , SETUP_SELECT , CREATE_UPDATED_ROW - , PROCESS_DELETE , PROCESS_DELETE_AND_CLOSE , EVAL_CONSTRAINT - , PROCESS_UPDATE , PROCESS_UPDATE_AND_CLOSE , PROCESS_SELECT , NEXT_ROW http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/0967ed18/core/sql/executor/ExHbaseIUD.cpp ---------------------------------------------------------------------- diff --git a/core/sql/executor/ExHbaseIUD.cpp b/core/sql/executor/ExHbaseIUD.cpp index b668cb9..cf5b99b 100644 --- a/core/sql/executor/ExHbaseIUD.cpp +++ b/core/sql/executor/ExHbaseIUD.cpp @@ -762,7 +762,6 @@ ExWorkProcRetcode ExHbaseAccessUpsertVsbbSQTcb::work() if (currRowNum_ > rowsInserted_) { step_ = PROCESS_INSERT_FLUSH_AND_CLOSE; - } else { @@ -912,11 +911,10 @@ ExWorkProcRetcode ExHbaseAccessUpsertVsbbSQTcb::work() break; } - step_ = PROCESS_INSERT; + step_ = PROCESS_INSERT_AND_CLOSE; } break; - case PROCESS_INSERT: case PROCESS_INSERT_AND_CLOSE: case PROCESS_INSERT_FLUSH_AND_CLOSE: { @@ -948,8 +946,6 @@ ExWorkProcRetcode ExHbaseAccessUpsertVsbbSQTcb::work() step_ = FLUSH_BUFFERS; else if (step_ == PROCESS_INSERT_AND_CLOSE) step_ = INSERT_CLOSE; - else - step_ = ALL_DONE; } break; case COMPLETE_ASYNC_INSERT: @@ -4031,9 +4027,9 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work() break; } if (hbaseAccessTdb().getAccessType() == ComTdbHbaseAccess::DELETE_) - step_ = PROCESS_DELETE; + step_ = PROCESS_DELETE_AND_CLOSE; else if (hbaseAccessTdb().getAccessType() == ComTdbHbaseAccess::UPDATE_) - step_ = PROCESS_UPDATE; + step_ = PROCESS_UPDATE_AND_CLOSE; else step_ = HANDLE_ERROR; } @@ -4082,7 +4078,6 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work() step_ = ROW_DONE; } break; - case PROCESS_DELETE: case PROCESS_DELETE_AND_CLOSE: { numRowsInVsbbBuffer_ = patchDirectRowIDBuffers(); @@ -4107,10 +4102,7 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work() getHbaseAccessStats()->lobStats()->numReadReqs++; getHbaseAccessStats()->incUsedRows(numRowsInVsbbBuffer_); } - if (step_ == PROCESS_DELETE_AND_CLOSE) - step_ = RS_CLOSE; - else - step_ = DONE; + step_ = RS_CLOSE; } break; @@ -4181,7 +4173,6 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work() step_ = NEXT_ROW; } break; - case PROCESS_UPDATE: case PROCESS_UPDATE_AND_CLOSE: { numRowsInVsbbBuffer_ = patchDirectRowBuffers(); @@ -4208,10 +4199,7 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work() getHbaseAccessStats()->lobStats()->numReadReqs++; getHbaseAccessStats()->incUsedRows(numRowsInVsbbBuffer_); } - if (step_ == PROCESS_UPDATE_AND_CLOSE) - step_ = RS_CLOSE; - else - step_ = DONE; + step_ = RS_CLOSE; } break; case COMPLETE_ASYNC_OPERATION: @@ -4251,11 +4239,7 @@ ExWorkProcRetcode ExHbaseAccessSQRowsetTcb::work() getHbaseAccessStats()->lobStats()->numReadReqs++; getHbaseAccessStats()->incUsedRows(numRowsInVsbbBuffer_); } - if ((lastHandledStep_ == PROCESS_UPDATE_AND_CLOSE) - || (lastHandledStep_ == PROCESS_DELETE_AND_CLOSE)) - step_ = RS_CLOSE; - else - step_ = DONE; + step_ = RS_CLOSE; } break; case RS_CLOSE:
