add more test case
This commit is contained in:
parent
5315500287
commit
d4cfeb1f6c
|
@ -1085,7 +1085,10 @@ int32_t metaFilterCreateTime(SMeta *pMeta, SMetaFltParam *param, SArray *pUids)
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t valid = 0;
|
int32_t valid = 0;
|
||||||
while (1) {
|
int32_t count = 0;
|
||||||
|
|
||||||
|
static const int8_t TRY_ERROR_LIMIT = 4;
|
||||||
|
do {
|
||||||
void *entryKey = NULL;
|
void *entryKey = NULL;
|
||||||
int32_t nEntryKey = -1;
|
int32_t nEntryKey = -1;
|
||||||
valid = tdbTbcGet(pCursor->pCur, (const void **)&entryKey, &nEntryKey, NULL, NULL);
|
valid = tdbTbcGet(pCursor->pCur, (const void **)&entryKey, &nEntryKey, NULL, NULL);
|
||||||
|
@ -1094,17 +1097,17 @@ int32_t metaFilterCreateTime(SMeta *pMeta, SMetaFltParam *param, SArray *pUids)
|
||||||
SCtimeIdxKey *p = entryKey;
|
SCtimeIdxKey *p = entryKey;
|
||||||
|
|
||||||
int32_t cmp = (*param->filterFunc)((void *)&p->ctime, (void *)&pCtimeKey->ctime, param->type);
|
int32_t cmp = (*param->filterFunc)((void *)&p->ctime, (void *)&pCtimeKey->ctime, param->type);
|
||||||
if (cmp == 0) taosArrayPush(pUids, &p->uid);
|
if (cmp == 0)
|
||||||
|
taosArrayPush(pUids, &p->uid);
|
||||||
if (param->reverse == false) {
|
else {
|
||||||
if (cmp == -1) break;
|
if (count >= TRY_ERROR_LIMIT) {
|
||||||
} else if (param->reverse) {
|
break;
|
||||||
if (cmp == 1) break;
|
}
|
||||||
}
|
}
|
||||||
|
count++;
|
||||||
valid = param->reverse ? tdbTbcMoveToPrev(pCursor->pCur) : tdbTbcMoveToNext(pCursor->pCur);
|
valid = param->reverse ? tdbTbcMoveToPrev(pCursor->pCur) : tdbTbcMoveToNext(pCursor->pCur);
|
||||||
if (valid < 0) break;
|
if (valid < 0) break;
|
||||||
}
|
} while (1);
|
||||||
|
|
||||||
END:
|
END:
|
||||||
if (pCursor->pMeta) metaULock(pCursor->pMeta);
|
if (pCursor->pMeta) metaULock(pCursor->pMeta);
|
||||||
|
@ -1139,9 +1142,11 @@ int32_t metaFilterTableName(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
if (tdbTbcMoveTo(pCursor->pCur, pName, strlen(pName) + 1, &cmp) < 0) {
|
if (tdbTbcMoveTo(pCursor->pCur, pName, strlen(pName) + 1, &cmp) < 0) {
|
||||||
goto END;
|
goto END;
|
||||||
}
|
}
|
||||||
bool first = true;
|
|
||||||
int32_t valid = 0;
|
int32_t valid = 0;
|
||||||
while (1) {
|
int32_t count = 0;
|
||||||
|
|
||||||
|
int32_t TRY_ERROR_LIMIT = 4;
|
||||||
|
do {
|
||||||
void *pEntryKey = NULL, *pEntryVal = NULL;
|
void *pEntryKey = NULL, *pEntryVal = NULL;
|
||||||
int32_t nEntryKey = -1, nEntryVal = 0;
|
int32_t nEntryKey = -1, nEntryVal = 0;
|
||||||
valid = tdbTbcGet(pCursor->pCur, (const void **)pEntryKey, &nEntryKey, (const void **)&pEntryVal, &nEntryVal);
|
valid = tdbTbcGet(pCursor->pCur, (const void **)pEntryKey, &nEntryKey, (const void **)&pEntryVal, &nEntryVal);
|
||||||
|
@ -1152,16 +1157,17 @@ int32_t metaFilterTableName(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
tb_uid_t tuid = *(tb_uid_t *)pEntryVal;
|
tb_uid_t tuid = *(tb_uid_t *)pEntryVal;
|
||||||
taosArrayPush(pUids, &tuid);
|
taosArrayPush(pUids, &tuid);
|
||||||
} else if (cmp == 1) {
|
|
||||||
// next
|
|
||||||
} else {
|
} else {
|
||||||
break;
|
if (count >= TRY_ERROR_LIMIT) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
count++;
|
||||||
valid = param->reverse ? tdbTbcMoveToPrev(pCursor->pCur) : tdbTbcMoveToNext(pCursor->pCur);
|
valid = param->reverse ? tdbTbcMoveToPrev(pCursor->pCur) : tdbTbcMoveToNext(pCursor->pCur);
|
||||||
if (valid < 0) {
|
if (valid < 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} while (1);
|
||||||
|
|
||||||
END:
|
END:
|
||||||
if (pCursor->pMeta) metaULock(pCursor->pMeta);
|
if (pCursor->pMeta) metaULock(pCursor->pMeta);
|
||||||
|
@ -1260,11 +1266,6 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
if (tdbTbcMoveTo(pCursor->pCur, pKey, nKey, &cmp) < 0) {
|
if (tdbTbcMoveTo(pCursor->pCur, pKey, nKey, &cmp) < 0) {
|
||||||
goto END;
|
goto END;
|
||||||
}
|
}
|
||||||
// if (param->reverse) {
|
|
||||||
// if (tdbTbcMoveToNext(pCursor->pCur) < 0) tdbTbcMoveToLast(pCursor->pCur);
|
|
||||||
// } else {
|
|
||||||
// if (tdbTbcMoveToPrev(pCursor->pCur) < 0) tdbTbcMoveToFirst(pCursor->pCur);
|
|
||||||
//}
|
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int32_t valid = 0;
|
int32_t valid = 0;
|
||||||
|
@ -1306,11 +1307,7 @@ int32_t metaFilterTableIds(SMeta *pMeta, SMetaFltParam *param, SArray *pUids) {
|
||||||
tuid = *(tb_uid_t *)(p->data + tDataTypes[pCursor->type].bytes);
|
tuid = *(tb_uid_t *)(p->data + tDataTypes[pCursor->type].bytes);
|
||||||
}
|
}
|
||||||
taosArrayPush(pUids, &tuid);
|
taosArrayPush(pUids, &tuid);
|
||||||
} else if (cmp == 1) {
|
|
||||||
if (count >= TRY_ERROR_LIMIT) break;
|
|
||||||
// not match but should continue to iter
|
|
||||||
} else {
|
} else {
|
||||||
// not match and no more result
|
|
||||||
if (count >= TRY_ERROR_LIMIT) break;
|
if (count >= TRY_ERROR_LIMIT) break;
|
||||||
}
|
}
|
||||||
count++;
|
count++;
|
||||||
|
|
|
@ -1386,9 +1386,7 @@ static int metaUpdateTableTagVal(SMeta *pMeta, int64_t version, SVAlterTbReq *pA
|
||||||
// save to uid.idx
|
// save to uid.idx
|
||||||
metaUpdateUidIdx(pMeta, &ctbEntry);
|
metaUpdateUidIdx(pMeta, &ctbEntry);
|
||||||
|
|
||||||
if (iCol == 0) {
|
metaUpdateTagIdx(pMeta, &ctbEntry);
|
||||||
metaUpdateTagIdx(pMeta, &ctbEntry);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NULL == ctbEntry.ctbEntry.pTags) {
|
if (NULL == ctbEntry.ctbEntry.pTags) {
|
||||||
metaError("meta/table: null tags, update tag val failed.");
|
metaError("meta/table: null tags, update tag val failed.");
|
||||||
|
|
|
@ -7,7 +7,7 @@ print ======== step0
|
||||||
$dbPrefix = ta_3_db
|
$dbPrefix = ta_3_db
|
||||||
$tbPrefix = ta_3_tb
|
$tbPrefix = ta_3_tb
|
||||||
$mtPrefix = ta_3_mt
|
$mtPrefix = ta_3_mt
|
||||||
$tbNum = 6
|
$tbNum = 100
|
||||||
$rowNum = 20
|
$rowNum = 20
|
||||||
$totalNum = 200
|
$totalNum = 200
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
|
||||||
|
system sh/stop_dnodes.sh
|
||||||
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ======== step0
|
||||||
|
$dbPrefix = ta_3_db
|
||||||
|
$tbPrefix = ta_3_tb
|
||||||
|
$mtPrefix = ta_3_mt
|
||||||
|
$tbNum = 10000
|
||||||
|
$rowNum = 20
|
||||||
|
$totalNum = 200
|
||||||
|
|
||||||
|
print =============== create database
|
||||||
|
sql create database $dbPrefix
|
||||||
|
sql use $dbPrefix
|
||||||
|
|
||||||
|
print =============== create super table and register tag index
|
||||||
|
sql create table if not exists $mtPrefix (ts timestamp, c1 int) tags (t1 int, t2 int, t3 int, t4 int, t5 int)
|
||||||
|
|
||||||
|
sql show stables
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print =============== create child table
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tbNum
|
||||||
|
$tb = $tbPrefix . $i
|
||||||
|
sql create table $tb using $mtPrefix tags( $i , $i , $i , $i , $i );
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql show tables
|
||||||
|
if $rows != $tbNum then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
print =============== insert data into each table
|
||||||
|
$i = 0
|
||||||
|
while $i < $tbNum
|
||||||
|
$tb = $tbPrefix . $i
|
||||||
|
sql insert into $tb values(now, $i );
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
print ========== filter data
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tbNum
|
||||||
|
sql select count(*) from $mtPrefix where t2 = $i
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql create index ti2 on $mtPrefix (t2)
|
||||||
|
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tbNum
|
||||||
|
sql select count(*) from $mtPrefix where t2 = $i
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
#system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
Loading…
Reference in New Issue