Merge pull request #6956 from taosdata/hotfix/td-5431-master
[TD-5431]<fix>:taken into accout data length when compare nchar bytes
This commit is contained in:
commit
9c23c91870
|
@ -378,11 +378,18 @@ static FORCE_INLINE int32_t columnValueAscendingComparator(char *f1, char *f2, i
|
||||||
|
|
||||||
};
|
};
|
||||||
case TSDB_DATA_TYPE_NCHAR: { // todo handle the var string compare
|
case TSDB_DATA_TYPE_NCHAR: { // todo handle the var string compare
|
||||||
int32_t ret = tasoUcs4Compare(f1, f2, bytes);
|
int32_t len1 = varDataLen(f1);
|
||||||
if (ret == 0) {
|
int32_t len2 = varDataLen(f2);
|
||||||
return 0;
|
|
||||||
|
if (len1 != len2) {
|
||||||
|
return len1 > len2 ? 1 : -1;
|
||||||
|
} else {
|
||||||
|
int32_t ret = tasoUcs4Compare(varDataVal(f1), varDataVal(f2), len1);
|
||||||
|
if (ret == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return (ret < 0) ? -1 : 1;
|
||||||
}
|
}
|
||||||
return (ret < 0) ? -1 : 1;
|
|
||||||
};
|
};
|
||||||
case TSDB_DATA_TYPE_UTINYINT: DEFAULT_COMP(GET_UINT8_VAL(f1), GET_UINT8_VAL(f2));
|
case TSDB_DATA_TYPE_UTINYINT: DEFAULT_COMP(GET_UINT8_VAL(f1), GET_UINT8_VAL(f2));
|
||||||
case TSDB_DATA_TYPE_USMALLINT: DEFAULT_COMP(GET_UINT16_VAL(f1), GET_UINT16_VAL(f2));
|
case TSDB_DATA_TYPE_USMALLINT: DEFAULT_COMP(GET_UINT16_VAL(f1), GET_UINT16_VAL(f2));
|
||||||
|
|
Loading…
Reference in New Issue