dst slot for last_row
This commit is contained in:
parent
373a542896
commit
c9959b5bf6
|
@ -79,8 +79,8 @@ endif(${BUILD_WITH_LEVELDB})
|
||||||
|
|
||||||
# rocksdb
|
# rocksdb
|
||||||
#if(${BUILD_WITH_ROCKSDB})
|
#if(${BUILD_WITH_ROCKSDB})
|
||||||
cat("${TD_SUPPORT_DIR}/rocksdb_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
cat("${TD_SUPPORT_DIR}/rocksdb_CMakeLists.txt.in" ${CONTRIB_TMP_FILE})
|
||||||
add_definitions(-DUSE_ROCKSDB)
|
add_definitions(-DUSE_ROCKSDB)
|
||||||
#endif(${BUILD_WITH_ROCKSDB})
|
#endif(${BUILD_WITH_ROCKSDB})
|
||||||
|
|
||||||
# canonical-raft
|
# canonical-raft
|
||||||
|
@ -222,7 +222,7 @@ endif(${BUILD_WITH_LEVELDB})
|
||||||
|
|
||||||
# rocksdb
|
# rocksdb
|
||||||
# To support rocksdb build on ubuntu: sudo apt-get install libgflags-dev
|
# To support rocksdb build on ubuntu: sudo apt-get install libgflags-dev
|
||||||
if(${BUILD_WITH_ROCKSDB})
|
#if(${BUILD_WITH_ROCKSDB})
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=maybe-uninitialized")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=maybe-uninitialized")
|
||||||
option(WITH_TESTS "" OFF)
|
option(WITH_TESTS "" OFF)
|
||||||
option(WITH_BENCHMARK_TOOLS "" OFF)
|
option(WITH_BENCHMARK_TOOLS "" OFF)
|
||||||
|
@ -234,7 +234,7 @@ if(${BUILD_WITH_ROCKSDB})
|
||||||
rocksdb
|
rocksdb
|
||||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/include>
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/include>
|
||||||
)
|
)
|
||||||
endif(${BUILD_WITH_ROCKSDB})
|
#endif(${BUILD_WITH_ROCKSDB})
|
||||||
|
|
||||||
# lucene
|
# lucene
|
||||||
# To support build on ubuntu: sudo apt-get install libboost-all-dev
|
# To support build on ubuntu: sudo apt-get install libboost-all-dev
|
||||||
|
|
|
@ -30,26 +30,7 @@ static int32_t saveOneRow(SArray* pRow, SSDataBlock* pBlock, SCacheRowsReader* p
|
||||||
for (int32_t i = 0; i < pReader->numOfCols; ++i) {
|
for (int32_t i = 0; i < pReader->numOfCols; ++i) {
|
||||||
SColumnInfoData* pColInfoData = taosArrayGet(pBlock->pDataBlock, dstSlotIds[i]);
|
SColumnInfoData* pColInfoData = taosArrayGet(pBlock->pDataBlock, dstSlotIds[i]);
|
||||||
SFirstLastRes* p = (SFirstLastRes*)varDataVal(pRes[dstSlotIds[i]]);
|
SFirstLastRes* p = (SFirstLastRes*)varDataVal(pRes[dstSlotIds[i]]);
|
||||||
/*
|
|
||||||
if (slotIds[i] == -1) { // the primary timestamp
|
|
||||||
SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, 0);
|
|
||||||
p->ts = pColVal->ts;
|
|
||||||
p->bytes = TSDB_KEYSIZE;
|
|
||||||
*(int64_t*)p->buf = pColVal->ts;
|
|
||||||
allNullRow = false;
|
|
||||||
} else {
|
|
||||||
*/
|
|
||||||
int32_t slotId = slotIds[i];
|
int32_t slotId = slotIds[i];
|
||||||
// add check for null value, caused by the modification of table schema (new column added).
|
|
||||||
/*
|
|
||||||
if (slotId >= taosArrayGetSize(pRow)) {
|
|
||||||
p->ts = 0;
|
|
||||||
p->isNull = true;
|
|
||||||
colDataSetNULL(pColInfoData, numOfRows);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
// SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, slotId);
|
|
||||||
SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, i);
|
SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, i);
|
||||||
|
|
||||||
p->ts = pColVal->ts;
|
p->ts = pColVal->ts;
|
||||||
|
@ -66,7 +47,6 @@ static int32_t saveOneRow(SArray* pRow, SSDataBlock* pBlock, SCacheRowsReader* p
|
||||||
p->bytes = pReader->pSchema->columns[slotId].bytes;
|
p->bytes = pReader->pSchema->columns[slotId].bytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//}
|
|
||||||
|
|
||||||
// pColInfoData->info.bytes includes the VARSTR_HEADER_SIZE, need to substruct it
|
// pColInfoData->info.bytes includes the VARSTR_HEADER_SIZE, need to substruct it
|
||||||
p->hasResult = true;
|
p->hasResult = true;
|
||||||
|
@ -77,34 +57,24 @@ static int32_t saveOneRow(SArray* pRow, SSDataBlock* pBlock, SCacheRowsReader* p
|
||||||
pBlock->info.rows += allNullRow ? 0 : 1;
|
pBlock->info.rows += allNullRow ? 0 : 1;
|
||||||
} else if (HASTYPE(pReader->type, CACHESCAN_RETRIEVE_LAST_ROW)) {
|
} else if (HASTYPE(pReader->type, CACHESCAN_RETRIEVE_LAST_ROW)) {
|
||||||
for (int32_t i = 0; i < pReader->numOfCols; ++i) {
|
for (int32_t i = 0; i < pReader->numOfCols; ++i) {
|
||||||
SColumnInfoData* pColInfoData = taosArrayGet(pBlock->pDataBlock, i);
|
SColumnInfoData* pColInfoData = taosArrayGet(pBlock->pDataBlock, dstSlotIds[i]);
|
||||||
|
|
||||||
if (slotIds[i] == -1) {
|
|
||||||
SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, 0);
|
|
||||||
colDataSetVal(pColInfoData, numOfRows, (const char*)&pColVal->ts, false);
|
|
||||||
} else {
|
|
||||||
int32_t slotId = slotIds[i];
|
int32_t slotId = slotIds[i];
|
||||||
// add check for null value, caused by the modification of table schema (new column added).
|
SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, i);
|
||||||
if (slotId >= taosArrayGetSize(pRow)) {
|
|
||||||
colDataSetNULL(pColInfoData, numOfRows);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
SLastCol* pColVal = (SLastCol*)taosArrayGet(pRow, slotId);
|
|
||||||
SColVal* pVal = &pColVal->colVal;
|
SColVal* pVal = &pColVal->colVal;
|
||||||
|
|
||||||
if (IS_VAR_DATA_TYPE(pColVal->colVal.type)) {
|
if (IS_VAR_DATA_TYPE(pColVal->colVal.type)) {
|
||||||
if (!COL_VAL_IS_VALUE(&pColVal->colVal)) {
|
if (!COL_VAL_IS_VALUE(&pColVal->colVal)) {
|
||||||
colDataSetNULL(pColInfoData, numOfRows);
|
colDataSetNULL(pColInfoData, numOfRows);
|
||||||
} else {
|
} else {
|
||||||
varDataSetLen(pReader->transferBuf[slotId], pVal->value.nData);
|
varDataSetLen(pReader->transferBuf[dstSlotIds[i]], pVal->value.nData);
|
||||||
memcpy(varDataVal(pReader->transferBuf[slotId]), pVal->value.pData, pVal->value.nData);
|
memcpy(varDataVal(pReader->transferBuf[dstSlotIds[i]]), pVal->value.pData, pVal->value.nData);
|
||||||
colDataSetVal(pColInfoData, numOfRows, pReader->transferBuf[slotId], false);
|
colDataSetVal(pColInfoData, numOfRows, pReader->transferBuf[dstSlotIds[i]], false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
colDataSetVal(pColInfoData, numOfRows, (const char*)&pVal->value.val, !COL_VAL_IS_VALUE(pVal));
|
colDataSetVal(pColInfoData, numOfRows, (const char*)&pVal->value.val, !COL_VAL_IS_VALUE(pVal));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
pBlock->info.rows += 1;
|
pBlock->info.rows += 1;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue