fix range issue
This commit is contained in:
parent
69f25dbfc1
commit
8faa80d6a7
|
@ -154,8 +154,10 @@ typedef struct SFilterInfo {
|
||||||
|
|
||||||
#define MR_EMPTY_RES(ctx) (ctx->rs == NULL)
|
#define MR_EMPTY_RES(ctx) (ctx->rs == NULL)
|
||||||
|
|
||||||
#define SET_OPTR(o) do {if (o == TSDB_RELATION_ISNULL) { isnull = true; } else if (o == TSDB_RELATION_NOTNULL) { notnull = true; } } while (0)
|
#define SET_AND_OPTR(o) do {if (o == TSDB_RELATION_ISNULL) { isnull = true; } else if (o == TSDB_RELATION_NOTNULL) { if (!isrange) { notnull = true; } } else { isrange = true; notnull = false; } } while (0)
|
||||||
#define CHK_OPTR() (isnull == true && notnull == true)
|
#define SET_OR_OPTR(o) do {if (o == TSDB_RELATION_ISNULL) { isnull = true; } else if (o == TSDB_RELATION_NOTNULL) { notnull = true; } } while (0)
|
||||||
|
#define CHK_OR_OPTR() (isnull == true && notnull == true)
|
||||||
|
#define CHK_AND_OPTR() (isnull == true && ((notnull == true) || (isrange == true)))
|
||||||
|
|
||||||
|
|
||||||
#define FILTER_GET_FLAG(st, f) (st & f)
|
#define FILTER_GET_FLAG(st, f) (st & f)
|
||||||
|
|
|
@ -199,13 +199,13 @@ int32_t filterAddMergeRangeImpl(void* h, SFilterRange* ra, int32_t optr) {
|
||||||
cr = ctx->pCompareFunc(&ra->s, &r->ra.s);
|
cr = ctx->pCompareFunc(&ra->s, &r->ra.s);
|
||||||
if (FILTER_GREATER(cr, ra->sflag, r->ra.sflag)) {
|
if (FILTER_GREATER(cr, ra->sflag, r->ra.sflag)) {
|
||||||
SIMPLE_COPY_VALUES((char *)&r->ra.s, &ra->s);
|
SIMPLE_COPY_VALUES((char *)&r->ra.s, &ra->s);
|
||||||
cr == 0 ? (r->ra.sflag = 0) : (r->ra.sflag = ra->sflag);
|
cr == 0 ? (r->ra.sflag |= ra->sflag) : (r->ra.sflag = ra->sflag);
|
||||||
}
|
}
|
||||||
|
|
||||||
cr = ctx->pCompareFunc(&r->ra.e, &ra->e);
|
cr = ctx->pCompareFunc(&r->ra.e, &ra->e);
|
||||||
if (FILTER_GREATER(cr, r->ra.eflag, ra->eflag)) {
|
if (FILTER_GREATER(cr, r->ra.eflag, ra->eflag)) {
|
||||||
SIMPLE_COPY_VALUES((char *)&r->ra.e, &ra->e);
|
SIMPLE_COPY_VALUES((char *)&r->ra.e, &ra->e);
|
||||||
cr == 0 ? (r->ra.eflag = 0) : (r->ra.eflag = ra->eflag);
|
cr == 0 ? (r->ra.eflag |= ra->eflag) : (r->ra.eflag = ra->eflag);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -966,9 +966,9 @@ int32_t filterAddUnitRange(SFilterInfo *info, SFilterUnit* u, SFilterRMCtx *ctx,
|
||||||
|
|
||||||
|
|
||||||
int32_t filterProcessUnitsInOneGroup(SFilterInfo *info, SFilterGroup* g, uint16_t id1, uint16_t id2, SArray* res, uint16_t *removedNum) {
|
int32_t filterProcessUnitsInOneGroup(SFilterInfo *info, SFilterGroup* g, uint16_t id1, uint16_t id2, SArray* res, uint16_t *removedNum) {
|
||||||
bool isnull = false, notnull = false;
|
bool isnull = false, notnull = false, isrange = false;
|
||||||
int32_t num = 0;
|
int32_t num = 0;
|
||||||
|
SFilterRMCtx *cur = NULL;
|
||||||
SFilterUnit* u1 = FILTER_GROUP_UNIT(info, g, id1);
|
SFilterUnit* u1 = FILTER_GROUP_UNIT(info, g, id1);
|
||||||
SFilterUnit* u2 = FILTER_GROUP_UNIT(info, g, id2);
|
SFilterUnit* u2 = FILTER_GROUP_UNIT(info, g, id2);
|
||||||
uint8_t optr1 = FILTER_UNIT_OPTR(u1);
|
uint8_t optr1 = FILTER_UNIT_OPTR(u1);
|
||||||
|
@ -976,12 +976,13 @@ int32_t filterProcessUnitsInOneGroup(SFilterInfo *info, SFilterGroup* g, uint16_
|
||||||
uint16_t cidx = FILTER_UNIT_COL_IDX(u1);
|
uint16_t cidx = FILTER_UNIT_COL_IDX(u1);
|
||||||
|
|
||||||
int32_t type = FILTER_UNIT_DATA_TYPE(u1);
|
int32_t type = FILTER_UNIT_DATA_TYPE(u1);
|
||||||
SFilterRMCtx *cur = filterInitMergeRange(type, 0);
|
|
||||||
|
|
||||||
SET_OPTR(optr1);
|
SET_AND_OPTR(optr1);
|
||||||
SET_OPTR(optr2);
|
SET_AND_OPTR(optr2);
|
||||||
|
|
||||||
CHK_JMP(CHK_OPTR());
|
CHK_JMP(CHK_AND_OPTR());
|
||||||
|
|
||||||
|
cur = filterInitMergeRange(type, 0);
|
||||||
|
|
||||||
if (!FILTER_NO_MERGE_OPTR(optr1)) {
|
if (!FILTER_NO_MERGE_OPTR(optr1)) {
|
||||||
filterAddUnitRange(info, u1, cur, TSDB_RELATION_AND);
|
filterAddUnitRange(info, u1, cur, TSDB_RELATION_AND);
|
||||||
|
@ -1001,8 +1002,8 @@ int32_t filterProcessUnitsInOneGroup(SFilterInfo *info, SFilterGroup* g, uint16_
|
||||||
|
|
||||||
++(*removedNum);
|
++(*removedNum);
|
||||||
optr2 = FILTER_UNIT_OPTR(u);
|
optr2 = FILTER_UNIT_OPTR(u);
|
||||||
SET_OPTR(optr2);
|
SET_AND_OPTR(optr2);
|
||||||
CHK_JMP(CHK_OPTR());
|
CHK_JMP(CHK_AND_OPTR());
|
||||||
|
|
||||||
if (!FILTER_NO_MERGE_OPTR(optr2)) {
|
if (!FILTER_NO_MERGE_OPTR(optr2)) {
|
||||||
filterAddUnitRange(info, u, cur, TSDB_RELATION_AND);
|
filterAddUnitRange(info, u, cur, TSDB_RELATION_AND);
|
||||||
|
@ -1053,17 +1054,18 @@ int32_t filterProcessUnits(SFilterInfo *info, SFilterGroupCtx*** res) {
|
||||||
SFilterGroupCtx *gctx = NULL;
|
SFilterGroupCtx *gctx = NULL;
|
||||||
SArray *colRange = NULL;
|
SArray *colRange = NULL;
|
||||||
bool gresUsed = false;
|
bool gresUsed = false;
|
||||||
|
bool colInit = false;
|
||||||
uint16_t removedNum = 0;
|
uint16_t removedNum = 0;
|
||||||
|
|
||||||
for (uint16_t i = 0; i < info->groupNum; ++i) {
|
for (uint16_t i = 0; i < info->groupNum; ++i) {
|
||||||
SFilterGroup* g = info->groups + i;
|
SFilterGroup* g = info->groups + i;
|
||||||
|
|
||||||
if (col == NULL) {
|
if (g->unitNum <= 1) {
|
||||||
col = calloc(info->fields[FLD_TYPE_COLUMN].num, sizeof(int32_t));
|
continue;
|
||||||
} else {
|
|
||||||
memset(col, 0, info->fields[FLD_TYPE_COLUMN].num * sizeof(int32_t));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gresUsed = false;
|
gresUsed = false;
|
||||||
|
colInit = false;
|
||||||
|
|
||||||
removedNum = 0;
|
removedNum = 0;
|
||||||
|
|
||||||
|
@ -1074,6 +1076,16 @@ int32_t filterProcessUnits(SFilterInfo *info, SFilterGroupCtx*** res) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (colInit == false) {
|
||||||
|
if (col == NULL) {
|
||||||
|
col = calloc(info->fields[FLD_TYPE_COLUMN].num, sizeof(int32_t));
|
||||||
|
} else {
|
||||||
|
memset(col, 0, info->fields[FLD_TYPE_COLUMN].num * sizeof(int32_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
colInit = true;
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t cidx = FILTER_UNIT_COL_IDX(u);
|
uint16_t cidx = FILTER_UNIT_COL_IDX(u);
|
||||||
|
|
||||||
if (col[cidx] == 0) {
|
if (col[cidx] == 0) {
|
||||||
|
@ -1171,7 +1183,7 @@ int32_t filterProcessGroupsSameColumn(SFilterInfo *info, uint16_t id1, uint16_t
|
||||||
|
|
||||||
if (cra->notNull) {
|
if (cra->notNull) {
|
||||||
notnull = true;
|
notnull = true;
|
||||||
CHK_JMP(CHK_OPTR());
|
CHK_JMP(CHK_OR_OPTR());
|
||||||
}
|
}
|
||||||
|
|
||||||
cidx2 = cra->idx;
|
cidx2 = cra->idx;
|
||||||
|
@ -1202,21 +1214,21 @@ int32_t filterProcessGroupsSameColumn(SFilterInfo *info, uint16_t id1, uint16_t
|
||||||
filterAddMergeRange(cur, &cra->ra, TSDB_RELATION_OR);
|
filterAddMergeRange(cur, &cra->ra, TSDB_RELATION_OR);
|
||||||
if (MR_EMPTY_RES(cur)) {
|
if (MR_EMPTY_RES(cur)) {
|
||||||
notnull = true;
|
notnull = true;
|
||||||
CHK_JMP(CHK_OPTR());
|
CHK_JMP(CHK_OR_OPTR());
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
optr = FILTER_UNIT_OPTR(u1);
|
optr = FILTER_UNIT_OPTR(u1);
|
||||||
SET_OPTR(optr);
|
SET_OR_OPTR(optr);
|
||||||
CHK_JMP(CHK_OPTR());
|
CHK_JMP(CHK_OR_OPTR());
|
||||||
|
|
||||||
if (!FILTER_NO_MERGE_OPTR(optr) && notnull == false) {
|
if (!FILTER_NO_MERGE_OPTR(optr) && notnull == false) {
|
||||||
filterAddUnitRange(info, u1, cur, TSDB_RELATION_OR);
|
filterAddUnitRange(info, u1, cur, TSDB_RELATION_OR);
|
||||||
if (MR_EMPTY_RES(cur)) {
|
if (MR_EMPTY_RES(cur)) {
|
||||||
notnull = true;
|
notnull = true;
|
||||||
CHK_JMP(CHK_OPTR());
|
CHK_JMP(CHK_OR_OPTR());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1234,36 +1246,41 @@ int32_t filterProcessGroupsSameColumn(SFilterInfo *info, uint16_t id1, uint16_t
|
||||||
|
|
||||||
if (!notnull) {
|
if (!notnull) {
|
||||||
filterGetMergeRangeNum(cur, &num);
|
filterGetMergeRangeNum(cur, &num);
|
||||||
if (num > 1) {
|
if (num > 0) {
|
||||||
ra = calloc(num, sizeof(*ra));
|
if (num > 1) {
|
||||||
} else {
|
ra = calloc(num, sizeof(*ra));
|
||||||
assert(num == 1);
|
} else {
|
||||||
ra = &ncra.ra;
|
ra = &ncra.ra;
|
||||||
}
|
}
|
||||||
|
|
||||||
filterGetMergeRangeRes(cur, ra);
|
filterGetMergeRangeRes(cur, ra);
|
||||||
|
|
||||||
SFilterRange *tra = ra;
|
SFilterRange *tra = ra;
|
||||||
for (int32_t i = 0; i < num; ++i) {
|
|
||||||
filterPostProcessRange(cur, tra, &ncra.notNull);
|
|
||||||
assert(ncra.notNull == false);
|
|
||||||
++tra;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (num > 1) {
|
|
||||||
for (int32_t i = 0; i < num; ++i) {
|
for (int32_t i = 0; i < num; ++i) {
|
||||||
FILTER_COPY_RA(&ncra.ra, ra);
|
filterPostProcessRange(cur, tra, &ncra.notNull);
|
||||||
|
assert(ncra.notNull == false);
|
||||||
|
++tra;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (num > 1) {
|
||||||
|
for (int32_t i = 0; i < num; ++i) {
|
||||||
|
FILTER_COPY_RA(&ncra.ra, ra);
|
||||||
|
|
||||||
|
taosArrayPush(res, &ncra);
|
||||||
|
|
||||||
|
++ra;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
taosArrayPush(res, &ncra);
|
taosArrayPush(res, &ncra);
|
||||||
|
|
||||||
++ra;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
FILTER_COPY_RA(&ncra.ra, ra);
|
ncra.ra.sflag = RA_NULL;
|
||||||
|
ncra.ra.eflag = RA_NULL;
|
||||||
taosArrayPush(res, &ncra);
|
taosArrayPush(res, &ncra);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
ncra.ra.sflag = RA_NULL;
|
||||||
|
ncra.ra.eflag = RA_NULL;
|
||||||
taosArrayPush(res, &ncra);
|
taosArrayPush(res, &ncra);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1286,11 +1303,17 @@ int32_t filterProcessGroups(SFilterInfo *info, SFilterGroupCtx** unitRes, SFilte
|
||||||
int32_t *col = NULL;
|
int32_t *col = NULL;
|
||||||
uint16_t cidx;
|
uint16_t cidx;
|
||||||
uint16_t removedNum = 0;
|
uint16_t removedNum = 0;
|
||||||
|
bool merged = false;
|
||||||
SArray *colRange = NULL;
|
SArray *colRange = NULL;
|
||||||
|
|
||||||
for (uint16_t i = 0; i < info->groupNum; ++i) {
|
for (uint16_t i = 0; i < info->groupNum; ++i) {
|
||||||
SFilterGroup* g = info->groups + i;
|
SFilterGroup* g = info->groups + i;
|
||||||
uint16_t unitNum = (unitRes && unitRes[i]) ? unitRes[i]->num : g->unitNum;
|
uint16_t unitNum = g->unitNum;
|
||||||
|
|
||||||
|
if (unitRes && unitRes[i]) {
|
||||||
|
unitNum = unitRes[i]->num;
|
||||||
|
merged = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (unitNum == 0) {
|
if (unitNum == 0) {
|
||||||
++removedNum;
|
++removedNum;
|
||||||
|
@ -1317,7 +1340,11 @@ int32_t filterProcessGroups(SFilterInfo *info, SFilterGroupCtx** unitRes, SFilte
|
||||||
}
|
}
|
||||||
|
|
||||||
if (col == NULL) {
|
if (col == NULL) {
|
||||||
col = calloc(info->fields[FLD_TYPE_COLUMN].num, sizeof(int32_t));
|
if (i < (info->groupNum - 1)) {
|
||||||
|
col = calloc(info->fields[FLD_TYPE_COLUMN].num, sizeof(int32_t));
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (col[cidx] == 0) {
|
if (col[cidx] == 0) {
|
||||||
|
@ -1351,7 +1378,7 @@ int32_t filterProcessGroups(SFilterInfo *info, SFilterGroupCtx** unitRes, SFilte
|
||||||
goto _err_return;
|
goto _err_return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (colRange || removedNum > 0) {
|
if (colRange || removedNum > 0 || merged) {
|
||||||
groupRes->num = num;
|
groupRes->num = num;
|
||||||
groupRes->col = col;
|
groupRes->col = col;
|
||||||
groupRes->colRange = colRange;
|
groupRes->colRange = colRange;
|
||||||
|
|
|
@ -1520,6 +1520,206 @@ if $data20 != @21-05-05 18:19:10.000@ then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 is null and c1 is not null;
|
||||||
|
if $rows != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 is null or c1 is not null;
|
||||||
|
if $rows != 29 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select * from stb1 where c1 is null or c1 > 20 or c1 < 25;
|
||||||
|
if $rows != 29 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select * from stb1 where (c1 > 20 or c1 < 25) and c1 is null;
|
||||||
|
if $rows != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where (c1 > 20 or c1 < 25) and (c1 > 62 or c1 < 3);
|
||||||
|
if $rows != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:00.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:01.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data20 != @21-05-05 18:19:26.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data30 != @21-05-05 18:19:27.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 > 11 and c1 != 11 and c1 != 14 and c1 < 14;
|
||||||
|
if $rows != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:05.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:06.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
sql select * from stb1 where (c1 > 60 or c1 < 4 or c1 > 10 and c1 < 20 and c1 != 13 or c1 < 2 or c1 > 50)
|
||||||
|
if $rows != 14 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:00.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:01.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data20 != @21-05-05 18:19:02.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data30 != @21-05-05 18:19:04.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 > 62 or c1 >= 62;
|
||||||
|
if $rows != 3 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:25.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:26.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data20 != @21-05-05 18:19:27.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 > 62 and c1 >= 62;
|
||||||
|
if $rows != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:26.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:27.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 >= 62 and c1 != 62;
|
||||||
|
if $rows != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:26.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:27.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 >= 62 or c1 != 62;
|
||||||
|
if $rows != 28 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 >= 62 and c1 = 62;
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:25.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 > 62 and c1 != 62;
|
||||||
|
if $rows != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:26.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:27.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 > 62 and c1 = 62;
|
||||||
|
if $rows != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 is not null and c1 is not null;
|
||||||
|
if $rows != 28 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 is not null or c1 is not null;
|
||||||
|
if $rows != 28 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 is null and c1 is null;
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:28.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 is null or c1 is null;
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:28.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c2 > 3 and c2 < 3;
|
||||||
|
if $rows != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c2 = 3;
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:02.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c2 > 3 and c2 <= 3;
|
||||||
|
if $rows != 0 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c2 >= 3 and c2 <= 3;
|
||||||
|
if $data00 != @21-05-05 18:19:02.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where (c1 > 60 or c1 < 4 or c1 > 10 and c1 < 20 and c1 != 13 or c1 < 2 or c1 > 50) and (c1 != 51 and c1 <= 54 and c1 != 54 and c1 >=1 and c1 != 1) and (c1 >= 11 and c1 <=52 and c1 != 52 and c1 != 11);
|
||||||
|
if $rows != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:05.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:07.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select * from stb1 where c1 > 1 and c1 is not null and c1 < 5;
|
||||||
|
if $rows != 3 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data00 != @21-05-05 18:19:01.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data10 != @21-05-05 18:19:02.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
if $data20 != @21-05-05 18:19:03.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
print "ts test"
|
print "ts test"
|
||||||
|
|
Loading…
Reference in New Issue