diff --git a/source/common/src/tdataformat.c b/source/common/src/tdataformat.c index 991c17c5cc..7de685d9b1 100644 --- a/source/common/src/tdataformat.c +++ b/source/common/src/tdataformat.c @@ -1238,7 +1238,8 @@ int32_t tValueCompare(const SValue *tv1, const SValue *tv2) { T_COMPARE_SCALAR_VALUE(uint64_t, &tv1->val, &tv2->val); case TSDB_DATA_TYPE_GEOMETRY: case TSDB_DATA_TYPE_BINARY: { - return strcmp((const char *)tv1->pData, (const char *)tv2->pData); + int32_t ret = strncmp((const char *)tv1->pData, (const char *)tv2->pData, TMIN(tv1->nData, tv2->nData)); + return ret ? ret : (tv1->nData < tv2->nData ? -1 : (tv1->nData > tv2->nData ? 1 : 0)); } case TSDB_DATA_TYPE_NCHAR: { int32_t ret = tasoUcs4Compare((TdUcs4 *)tv1->pData, (TdUcs4 *)tv2->pData, @@ -1286,7 +1287,7 @@ int32_t tRowKeyCompare(const void *p1, const void *p2) { return 0; } -int32_t tRowKeyAssign(SRowKey *pDst, SRowKey* pSrc) { +int32_t tRowKeyAssign(SRowKey *pDst, SRowKey *pSrc) { pDst->ts = pSrc->ts; pDst->numOfPKs = pSrc->numOfPKs; diff --git a/source/libs/executor/src/projectoperator.c b/source/libs/executor/src/projectoperator.c index c6ebb04446..aa2a73f09f 100644 --- a/source/libs/executor/src/projectoperator.c +++ b/source/libs/executor/src/projectoperator.c @@ -387,14 +387,14 @@ SSDataBlock* doProjectOperation(SOperatorInfo* pOperator) { pOperator->cost.openCost = (taosGetTimestampUs() - st) / 1000.0; } - if (pTaskInfo->execModel == OPTR_EXEC_MODEL_STREAM) { - printDataBlock(p, getStreamOpName(pOperator->operatorType), GET_TASKID(pTaskInfo)); - } - if (pProjectInfo->outputIgnoreGroup) { p->info.id.groupId = 0; } + if (pTaskInfo->execModel == OPTR_EXEC_MODEL_STREAM) { + printDataBlock(p, getStreamOpName(pOperator->operatorType), GET_TASKID(pTaskInfo)); + } + return (p->info.rows > 0) ? p : NULL; }