commit
f8ff709103
|
@ -3024,14 +3024,14 @@ static void diff_function(SQLFunctionCtx *pCtx) {
|
||||||
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
||||||
pCtx->param[1].i64Key = pData[i];
|
pCtx->param[1].i64Key = pData[i];
|
||||||
pCtx->param[1].nType = pCtx->inputType;
|
pCtx->param[1].nType = pCtx->inputType;
|
||||||
} else if (i == 0) {
|
} else if ((i == 0 && pCtx->order == TSQL_SO_ASC) || (i == pCtx->size - 1 && pCtx->order == TSQL_SO_DESC)) {
|
||||||
*pOutput = pData[i] - pCtx->param[1].i64Key;
|
*pOutput = pData[i] - pCtx->param[1].i64Key;
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
|
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
} else {
|
} else {
|
||||||
*pOutput = pData[i] - pData[i - 1];
|
*pOutput = pData[i] - pData[i - step];
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
|
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
|
@ -3056,13 +3056,13 @@ static void diff_function(SQLFunctionCtx *pCtx) {
|
||||||
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
||||||
pCtx->param[1].dKey = pData[i];
|
pCtx->param[1].dKey = pData[i];
|
||||||
pCtx->param[1].nType = pCtx->inputType;
|
pCtx->param[1].nType = pCtx->inputType;
|
||||||
} else if (i == 0) {
|
} else if ((i == 0 && pCtx->order == TSQL_SO_ASC) || (i == pCtx->size - 1 && pCtx->order == TSQL_SO_DESC)) {
|
||||||
*pOutput = pData[i] - pCtx->param[1].dKey;
|
*pOutput = pData[i] - pCtx->param[1].dKey;
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
} else {
|
} else {
|
||||||
*pOutput = pData[i] - pData[i - 1];
|
*pOutput = pData[i] - pData[i - step];
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
|
@ -3086,13 +3086,13 @@ static void diff_function(SQLFunctionCtx *pCtx) {
|
||||||
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
||||||
pCtx->param[1].dKey = pData[i];
|
pCtx->param[1].dKey = pData[i];
|
||||||
pCtx->param[1].nType = pCtx->inputType;
|
pCtx->param[1].nType = pCtx->inputType;
|
||||||
} else if (i == 0) {
|
} else if ((i == 0 && pCtx->order == TSQL_SO_ASC) || (i == pCtx->size - 1 && pCtx->order == TSQL_SO_DESC)) {
|
||||||
*pOutput = pData[i] - pCtx->param[1].dKey;
|
*pOutput = pData[i] - pCtx->param[1].dKey;
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
} else {
|
} else {
|
||||||
*pOutput = pData[i] - pData[i - 1];
|
*pOutput = pData[i] - pData[i - step];
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
|
@ -3117,13 +3117,13 @@ static void diff_function(SQLFunctionCtx *pCtx) {
|
||||||
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
||||||
pCtx->param[1].i64Key = pData[i];
|
pCtx->param[1].i64Key = pData[i];
|
||||||
pCtx->param[1].nType = pCtx->inputType;
|
pCtx->param[1].nType = pCtx->inputType;
|
||||||
} else if (i == 0) {
|
} else if ((i == 0 && pCtx->order == TSQL_SO_ASC) || (i == pCtx->size - 1 && pCtx->order == TSQL_SO_DESC)) {
|
||||||
*pOutput = pData[i] - pCtx->param[1].i64Key;
|
*pOutput = pData[i] - pCtx->param[1].i64Key;
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
} else {
|
} else {
|
||||||
*pOutput = pData[i] - pData[i - 1];
|
*pOutput = pData[i] - pData[i - step];
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
|
@ -3147,13 +3147,13 @@ static void diff_function(SQLFunctionCtx *pCtx) {
|
||||||
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
if (pCtx->param[1].nType == INITIAL_VALUE_NOT_ASSIGNED) { // initial value is not set yet
|
||||||
pCtx->param[1].i64Key = pData[i];
|
pCtx->param[1].i64Key = pData[i];
|
||||||
pCtx->param[1].nType = pCtx->inputType;
|
pCtx->param[1].nType = pCtx->inputType;
|
||||||
} else if (i == 0) {
|
} else if ((i == 0 && pCtx->order == TSQL_SO_ASC) || (i == pCtx->size - 1 && pCtx->order == TSQL_SO_DESC)) {
|
||||||
*pOutput = pData[i] - pCtx->param[1].i64Key;
|
*pOutput = pData[i] - pCtx->param[1].i64Key;
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
} else {
|
} else {
|
||||||
*pOutput = pData[i] - pData[i - 1];
|
*pOutput = pData[i] - pData[i - step];
|
||||||
*pTimestamp = pCtx->ptsList[i];
|
*pTimestamp = pCtx->ptsList[i];
|
||||||
pOutput += step;
|
pOutput += step;
|
||||||
pTimestamp += step;
|
pTimestamp += step;
|
||||||
|
|
|
@ -4525,10 +4525,11 @@ static void doSetTagValueInParam(tTagSchema *pTagSchema, int32_t tagColIdx, SMet
|
||||||
SSchema *pCol = &pTagSchema->pSchema[tagColIdx];
|
SSchema *pCol = &pTagSchema->pSchema[tagColIdx];
|
||||||
|
|
||||||
tVariantDestroy(param);
|
tVariantDestroy(param);
|
||||||
tVariantCreateFromBinary(param, pStr, pCol->bytes, pCol->type);
|
|
||||||
|
|
||||||
if (isNull(pStr, pCol->type)) {
|
if (isNull(pStr, pCol->type)) {
|
||||||
param->nType = TSDB_DATA_TYPE_NULL;
|
param->nType = TSDB_DATA_TYPE_NULL;
|
||||||
|
} else {
|
||||||
|
tVariantCreateFromBinary(param, pStr, pCol->bytes, pCol->type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5993,10 +5994,13 @@ int32_t getDataBlocksForMeters(SMeterQuerySupportObj *pSupporter, SQuery *pQuery
|
||||||
size_t bufferSize = size + sizeof(TSCKSUM);
|
size_t bufferSize = size + sizeof(TSCKSUM);
|
||||||
|
|
||||||
pMeterDataInfo[j]->numOfBlocks = compInfo.numOfBlocks;
|
pMeterDataInfo[j]->numOfBlocks = compInfo.numOfBlocks;
|
||||||
pMeterDataInfo[j]->pBlock = calloc(1, bufferSize);
|
char* p = realloc(pMeterDataInfo[j]->pBlock, bufferSize);
|
||||||
if (pMeterDataInfo[j]->pBlock == NULL) {
|
if (p == NULL) {
|
||||||
clearAllMeterDataBlockInfo(pMeterDataInfo, 0, numOfMeters);
|
clearAllMeterDataBlockInfo(pMeterDataInfo, 0, numOfMeters);
|
||||||
return TSDB_CODE_SERV_OUT_OF_MEMORY;
|
return TSDB_CODE_SERV_OUT_OF_MEMORY;
|
||||||
|
} else {
|
||||||
|
memset(p, 0, bufferSize);
|
||||||
|
pMeterDataInfo[j]->pBlock = (SCompBlock*) p;
|
||||||
}
|
}
|
||||||
|
|
||||||
read(pVnodeFileInfo->headerFd, pMeterDataInfo[j]->pBlock, bufferSize);
|
read(pVnodeFileInfo->headerFd, pMeterDataInfo[j]->pBlock, bufferSize);
|
||||||
|
|
|
@ -574,9 +574,9 @@ static void vnodeMultiMeterMultiOutputProcessor(SQInfo *pQInfo) {
|
||||||
|
|
||||||
SMeterObj *pOneMeter = getMeterObj(pSupporter->pMeterObj, pMeterSidExtInfo[0]->sid);
|
SMeterObj *pOneMeter = getMeterObj(pSupporter->pMeterObj, pMeterSidExtInfo[0]->sid);
|
||||||
|
|
||||||
|
if (isPointInterpoQuery(pQuery)) {
|
||||||
resetCtxOutputBuf(pRuntimeEnv);
|
resetCtxOutputBuf(pRuntimeEnv);
|
||||||
|
|
||||||
if (isPointInterpoQuery(pQuery)) {
|
|
||||||
assert(pQuery->limit.offset == 0 && pQuery->limit.limit != 0);
|
assert(pQuery->limit.offset == 0 && pQuery->limit.limit != 0);
|
||||||
|
|
||||||
while (pSupporter->subgroupIdx < pSids->numOfSubSet) {
|
while (pSupporter->subgroupIdx < pSids->numOfSubSet) {
|
||||||
|
@ -664,6 +664,8 @@ static void vnodeMultiMeterMultiOutputProcessor(SQInfo *pQInfo) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resetCtxOutputBuf(pRuntimeEnv);
|
||||||
|
|
||||||
for (int32_t i = 0; i < pRuntimeEnv->usedIndex; ++i) {
|
for (int32_t i = 0; i < pRuntimeEnv->usedIndex; ++i) {
|
||||||
SOutputRes *pOneRes = &pRuntimeEnv->pResult[i];
|
SOutputRes *pOneRes = &pRuntimeEnv->pResult[i];
|
||||||
clearGroupResultBuf(pOneRes, pQuery->numOfOutputCols);
|
clearGroupResultBuf(pOneRes, pQuery->numOfOutputCols);
|
||||||
|
|
Loading…
Reference in New Issue