[td-3183] <fix>: fix unsigned number arithmetic calculation with sort option caused crash.
This commit is contained in:
parent
46424a67fc
commit
6396e651b9
|
@ -41,41 +41,46 @@ static uint8_t UNUSED_FUNC isQueryOnPrimaryKey(const char *primaryColumnName, co
|
||||||
|
|
||||||
static void reverseCopy(char* dest, const char* src, int16_t type, int32_t numOfRows) {
|
static void reverseCopy(char* dest, const char* src, int16_t type, int32_t numOfRows) {
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case TSDB_DATA_TYPE_TINYINT: {
|
case TSDB_DATA_TYPE_TINYINT:
|
||||||
|
case TSDB_DATA_TYPE_UTINYINT:{
|
||||||
int8_t* p = (int8_t*) dest;
|
int8_t* p = (int8_t*) dest;
|
||||||
int8_t* pSrc = (int8_t*) src;
|
int8_t* pSrc = (int8_t*) src;
|
||||||
|
|
||||||
for(int32_t i = 0; i < numOfRows; ++i) {
|
for(int32_t i = 0; i < numOfRows; ++i) {
|
||||||
p[i] = pSrc[numOfRows - i - 1];
|
p[i] = pSrc[numOfRows - i - 1];
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_SMALLINT: {
|
|
||||||
|
case TSDB_DATA_TYPE_SMALLINT:
|
||||||
|
case TSDB_DATA_TYPE_USMALLINT:{
|
||||||
int16_t* p = (int16_t*) dest;
|
int16_t* p = (int16_t*) dest;
|
||||||
int16_t* pSrc = (int16_t*) src;
|
int16_t* pSrc = (int16_t*) src;
|
||||||
|
|
||||||
for(int32_t i = 0; i < numOfRows; ++i) {
|
for(int32_t i = 0; i < numOfRows; ++i) {
|
||||||
p[i] = pSrc[numOfRows - i - 1];
|
p[i] = pSrc[numOfRows - i - 1];
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_INT: {
|
case TSDB_DATA_TYPE_INT:
|
||||||
|
case TSDB_DATA_TYPE_UINT: {
|
||||||
int32_t* p = (int32_t*) dest;
|
int32_t* p = (int32_t*) dest;
|
||||||
int32_t* pSrc = (int32_t*) src;
|
int32_t* pSrc = (int32_t*) src;
|
||||||
|
|
||||||
for(int32_t i = 0; i < numOfRows; ++i) {
|
for(int32_t i = 0; i < numOfRows; ++i) {
|
||||||
p[i] = pSrc[numOfRows - i - 1];
|
p[i] = pSrc[numOfRows - i - 1];
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_BIGINT: {
|
case TSDB_DATA_TYPE_BIGINT:
|
||||||
|
case TSDB_DATA_TYPE_UBIGINT: {
|
||||||
int64_t* p = (int64_t*) dest;
|
int64_t* p = (int64_t*) dest;
|
||||||
int64_t* pSrc = (int64_t*) src;
|
int64_t* pSrc = (int64_t*) src;
|
||||||
|
|
||||||
for(int32_t i = 0; i < numOfRows; ++i) {
|
for(int32_t i = 0; i < numOfRows; ++i) {
|
||||||
p[i] = pSrc[numOfRows - i - 1];
|
p[i] = pSrc[numOfRows - i - 1];
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_FLOAT: {
|
case TSDB_DATA_TYPE_FLOAT: {
|
||||||
float* p = (float*) dest;
|
float* p = (float*) dest;
|
||||||
|
@ -84,7 +89,7 @@ static void reverseCopy(char* dest, const char* src, int16_t type, int32_t numOf
|
||||||
for(int32_t i = 0; i < numOfRows; ++i) {
|
for(int32_t i = 0; i < numOfRows; ++i) {
|
||||||
p[i] = pSrc[numOfRows - i - 1];
|
p[i] = pSrc[numOfRows - i - 1];
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
case TSDB_DATA_TYPE_DOUBLE: {
|
case TSDB_DATA_TYPE_DOUBLE: {
|
||||||
double* p = (double*) dest;
|
double* p = (double*) dest;
|
||||||
|
@ -93,7 +98,7 @@ static void reverseCopy(char* dest, const char* src, int16_t type, int32_t numOf
|
||||||
for(int32_t i = 0; i < numOfRows; ++i) {
|
for(int32_t i = 0; i < numOfRows; ++i) {
|
||||||
p[i] = pSrc[numOfRows - i - 1];
|
p[i] = pSrc[numOfRows - i - 1];
|
||||||
}
|
}
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
default: assert(0);
|
default: assert(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue