diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index dabf8533de..5fbfea1a7e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -121,7 +121,11 @@ int32_t pkCompEx(SRowKey* p1, SRowKey* p2) { return ret > 0 ? 1 : -1; } } else { - return p1->pks[0].val - p2->pks[0].val; + if (p1->pks[0].val == p2->pks[0].val) { + return 0; + } else { + return p1->pks[0].val > p2->pks[0].val? 1:-1; + } } } } diff --git a/source/dnode/vnode/src/tsdb/tsdbReadUtil.c b/source/dnode/vnode/src/tsdb/tsdbReadUtil.c index ae8a6466ae..acfb541706 100644 --- a/source/dnode/vnode/src/tsdb/tsdbReadUtil.c +++ b/source/dnode/vnode/src/tsdb/tsdbReadUtil.c @@ -137,22 +137,7 @@ int32_t initRowKey(SRowKey* pKey, int64_t ts, int32_t numOfPks, int32_t type, in if (numOfPks > 0) { pKey->pks[0].type = type; if (IS_NUMERIC_TYPE(pKey->pks[0].type)) { - char* p = (char*)&pKey->pks[0].val; - if (asc) { - switch(pKey->pks[0].type) { - case TSDB_DATA_TYPE_BIGINT:*(int64_t*)p = INT64_MIN;break; - case TSDB_DATA_TYPE_INT:*(int32_t*)p = INT32_MIN;break; - case TSDB_DATA_TYPE_SMALLINT:*(int16_t*)p = INT16_MIN;break; - case TSDB_DATA_TYPE_TINYINT:*(int8_t*)p = INT8_MIN;break; - } - } else { - switch(pKey->pks[0].type) { - case TSDB_DATA_TYPE_BIGINT:*(int64_t*)p = INT64_MAX;break; - case TSDB_DATA_TYPE_INT:*(int32_t*)p = INT32_MAX;break; - case TSDB_DATA_TYPE_SMALLINT:*(int16_t*)p = INT16_MAX;break; - case TSDB_DATA_TYPE_TINYINT:*(int8_t*)p = INT8_MAX;break; - } - } + pKey->pks[0].val = asc? INT64_MIN:INT64_MAX; } else { pKey->pks[0].pData = taosMemoryCalloc(1, len); pKey->pks[0].nData = 0;