提交 7de84b9d 编写于 作者: A Alex Duan

[TS-207]<fix>(query): fixed doCompare with tag and case

上级 0408e5fa
...@@ -203,7 +203,7 @@ int32_t compareLenPrefixedWStr(const void *pLeft, const void *pRight) { ...@@ -203,7 +203,7 @@ int32_t compareLenPrefixedWStr(const void *pLeft, const void *pRight) {
int32_t len1 = varDataLen(pLeft); int32_t len1 = varDataLen(pLeft);
int32_t len2 = varDataLen(pRight); int32_t len2 = varDataLen(pRight);
int32_t ret = tasoUcs4Compare(varDataVal(pLeft), varDataVal(pRight), len1>len2 ? len2:len1); int32_t ret = memcmp(varDataVal(pLeft), varDataVal(pRight), len1>len2 ? len2:len1);
if (ret == 0) { if (ret == 0) {
if (len1 > len2) if (len1 > len2)
return 1; return 1;
...@@ -772,33 +772,8 @@ int32_t doCompare(const char* f1, const char* f2, int32_t type, size_t size) { ...@@ -772,33 +772,8 @@ int32_t doCompare(const char* f1, const char* f2, int32_t type, size_t size) {
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));
case TSDB_DATA_TYPE_UINT: DEFAULT_COMP(GET_UINT32_VAL(f1), GET_UINT32_VAL(f2)); case TSDB_DATA_TYPE_UINT: DEFAULT_COMP(GET_UINT32_VAL(f1), GET_UINT32_VAL(f2));
case TSDB_DATA_TYPE_UBIGINT: DEFAULT_COMP(GET_UINT64_VAL(f1), GET_UINT64_VAL(f2)); case TSDB_DATA_TYPE_UBIGINT: DEFAULT_COMP(GET_UINT64_VAL(f1), GET_UINT64_VAL(f2));
case TSDB_DATA_TYPE_NCHAR:{ case TSDB_DATA_TYPE_NCHAR: return compareLenPrefixedWStr(f1, f2);
tstr* t1 = (tstr*) f1; default: // BINARY AND NULL AND SO ON
tstr* t2 = (tstr*) f2; return compareLenPrefixedStr(f1, f2);
if (t1->len != t2->len) {
return t1->len > t2->len? 1:-1;
}
int32_t ret = memcmp((wchar_t*) t1, (wchar_t*) t2, t2->len);
if (ret == 0) {
return ret;
}
return (ret < 0) ? -1 : 1;
}
default: { // todo refactor
tstr* t1 = (tstr*) f1;
tstr* t2 = (tstr*) f2;
if (t1->len != t2->len) {
return t1->len > t2->len? 1:-1;
} else {
int32_t ret = strncmp(t1->data, t2->data, t1->len);
if (ret == 0) {
return 0;
} else {
return ret < 0? -1:1;
}
}
}
} }
} }
...@@ -49,13 +49,13 @@ class TDTestCase: ...@@ -49,13 +49,13 @@ class TDTestCase:
tdSql.query('select last(*) from mt0 group by c8') tdSql.query('select last(*) from mt0 group by c8')
tdSql.checkData(0,3,5) tdSql.checkData(0,3,5)
tdSql.checkData(0,4,20) tdSql.checkData(0,4,20)
tdSql.checkData(3,1,92) tdSql.checkData(3,1,57)
tdSql.checkData(3,9,'涛思8') tdSql.checkData(3,9,'涛思14')
tdSql.query('select last(*) from mt0 group by c9') tdSql.query('select last(*) from mt0 group by c9')
tdSql.checkData(0,3,0) tdSql.checkData(0,3,0)
tdSql.checkData(0,8,'taos38') tdSql.checkData(0,8,'taos38')
tdSql.checkData(40,1,83) tdSql.checkData(35,1,83)
tdSql.checkData(40,3,40) tdSql.checkData(35,3,40)
def stop(self): def stop(self):
tdSql.close() tdSql.close()
......
...@@ -51,19 +51,19 @@ class TDTestCase: ...@@ -51,19 +51,19 @@ class TDTestCase:
tdSql.checkRows(0) tdSql.checkRows(0)
tdSql.query('select max(c1),min(c1),first(c1),last(c1) from mt0 group by c3 limit 70 offset 3') tdSql.query('select max(c1),min(c1),first(c1),last(c1) from mt0 group by c3 limit 70 offset 3')
tdSql.checkRows(38) tdSql.checkRows(38)
tdSql.query('select max(c1),min(c1),first(c1),last(c1) from mt0 group by c8 limit 3 offset 2') tdSql.query('select max(c1),min(c1),first(c1),last(c1) from mt0 group by c8 limit 3 offset 12')
tdSql.checkData(0,0,91) tdSql.checkData(0,0,91)
tdSql.checkData(0,1,2) tdSql.checkData(0,1,2)
tdSql.checkData(0,2,2) tdSql.checkData(0,2,2)
tdSql.checkData(0,3,91) tdSql.checkData(0,3,91)
tdSql.checkData(1,0,92) tdSql.checkData(1,0,94)
tdSql.checkData(2,1,4) tdSql.checkData(2,1,7)
tdSql.query('select max(c1),min(c1),first(c1),last(c1) from mt0 group by c9 limit 2 offset 9') tdSql.query('select max(c1),min(c1),first(c1),last(c1) from mt0 group by c9 limit 2 offset 39')
tdSql.checkData(0,0,96) tdSql.checkData(1,0,96)
tdSql.checkData(0,1,1) tdSql.checkData(1,1,1)
tdSql.checkData(0,2,9) tdSql.checkData(1,2,9)
tdSql.checkData(0,3,93) tdSql.checkData(0,3,92)
tdSql.checkData(1,0,97) tdSql.checkData(0,0,95)
def stop(self): def stop(self):
tdSql.close() tdSql.close()
......
...@@ -303,11 +303,11 @@ class TDTestCase: ...@@ -303,11 +303,11 @@ class TDTestCase:
tdSql.checkRows(10) tdSql.checkRows(10)
# > for binary type on tag # > for binary type on tag
tdSql.query("select * from st where tagcol3 > '表'") tdSql.query("select * from st where tagcol3 < '表'")
tdSql.checkRows(10) tdSql.checkRows(10)
# >= for binary type on tag # >= for binary type on tag
tdSql.query("select * from st where tagcol3 >= '表'") tdSql.query("select * from st where tagcol3 <= '表'")
tdSql.checkRows(10) tdSql.checkRows(10)
# = for binary type on tag # = for binary type on tag
......
...@@ -116,7 +116,7 @@ if $data00 != NULL then ...@@ -116,7 +116,7 @@ if $data00 != NULL then
return -1 return -1
endi endi
sql select count(*), a from mt_unsigned_1 group by a; sql select count(*), a from mt_unsigned_1 group by a order by a desc;
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi
...@@ -137,7 +137,7 @@ if $data11 != 1 then ...@@ -137,7 +137,7 @@ if $data11 != 1 then
return -1 return -1
endi endi
sql select count(*), b from mt_unsigned_1 group by b; sql select count(*), b from mt_unsigned_1 group by b order by b desc;
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi
...@@ -158,7 +158,7 @@ if $data11 != 2 then ...@@ -158,7 +158,7 @@ if $data11 != 2 then
return -1 return -1
endi endi
sql select count(*), c from mt_unsigned_1 group by c; sql select count(*), c from mt_unsigned_1 group by c order by c desc;
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi
...@@ -179,7 +179,7 @@ if $data11 != 3 then ...@@ -179,7 +179,7 @@ if $data11 != 3 then
return -1 return -1
endi endi
sql select count(*), d from mt_unsigned_1 group by d; sql select count(*), d from mt_unsigned_1 group by d order by d desc;
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi
......
...@@ -594,7 +594,8 @@ if $data10 != @{slop:0.000000, intercept:1.000000}@ then ...@@ -594,7 +594,8 @@ if $data10 != @{slop:0.000000, intercept:1.000000}@ then
return -1 return -1
endi endi
if $data90 != @{slop:0.000000, intercept:9.000000}@ then if $data90 != @{slop:0.000000, intercept:17.000000}@ then
print " data90 expect: {slop:0.000000, intercept:17.000000} real:"$data90
return -1 return -1
endi endi
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册