fix(query): fix some errors.

This commit is contained in:
Haojun Liao 2023-02-14 14:48:33 +08:00
parent 61a7751b57
commit a1eafe88ac
5 changed files with 61 additions and 37 deletions

View File

@ -1026,7 +1026,7 @@ int32_t getTableList(void* metaHandle, void* pVnode, SScanPhysiNode* pScanNode,
code = doFilterByTagCond(pListInfo, pUidList, pTagCond, metaHandle); code = doFilterByTagCond(pListInfo, pUidList, pTagCond, metaHandle);
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
return code; goto _end;
} }
} else { } else {
T_MD5_CTX context = {0}; T_MD5_CTX context = {0};
@ -1064,7 +1064,7 @@ int32_t getTableList(void* metaHandle, void* pVnode, SScanPhysiNode* pScanNode,
code = doFilterByTagCond(pListInfo, pUidList, pTagCond, metaHandle); code = doFilterByTagCond(pListInfo, pUidList, pTagCond, metaHandle);
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
return code; goto _end;
} }
// let's add the filter results into meta-cache // let's add the filter results into meta-cache

View File

@ -847,6 +847,7 @@ static int32_t saveWinResult(int64_t ts, int32_t pageId, int32_t offset, uint64_
if (newPos == NULL) { if (newPos == NULL) {
return TSDB_CODE_OUT_OF_MEMORY; return TSDB_CODE_OUT_OF_MEMORY;
} }
newPos->groupId = groupId; newPos->groupId = groupId;
newPos->pos = (SResultRowPosition){.pageId = pageId, .offset = offset}; newPos->pos = (SResultRowPosition){.pageId = pageId, .offset = offset};
*(int64_t*)newPos->key = ts; *(int64_t*)newPos->key = ts;
@ -854,6 +855,7 @@ static int32_t saveWinResult(int64_t ts, int32_t pageId, int32_t offset, uint64_
if (taosHashPut(pUpdatedMap, &key, sizeof(SWinKey), &newPos, sizeof(void*)) != TSDB_CODE_SUCCESS) { if (taosHashPut(pUpdatedMap, &key, sizeof(SWinKey), &newPos, sizeof(void*)) != TSDB_CODE_SUCCESS) {
taosMemoryFree(newPos); taosMemoryFree(newPos);
} }
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} }

View File

@ -81,6 +81,7 @@ SSHashObj *tSimpleHashInit(size_t capacity, _hash_fn_t fn) {
terrno = TSDB_CODE_OUT_OF_MEMORY; terrno = TSDB_CODE_OUT_OF_MEMORY;
return NULL; return NULL;
} }
return pHashObj; return pHashObj;
} }
@ -92,6 +93,7 @@ int32_t tSimpleHashGetSize(const SSHashObj *pHashObj) {
} }
static void* doInternalAlloc(SSHashObj* pHashObj, int32_t size) { static void* doInternalAlloc(SSHashObj* pHashObj, int32_t size) {
#if 0
void** p = taosArrayGetLast(pHashObj->pHashNodeBuf); void** p = taosArrayGetLast(pHashObj->pHashNodeBuf);
if (p == NULL || (pHashObj->offset + size) > DEFAULT_BUF_PAGE_SIZE) { if (p == NULL || (pHashObj->offset + size) > DEFAULT_BUF_PAGE_SIZE) {
// let's allocate one new page // let's allocate one new page
@ -112,6 +114,9 @@ static void* doInternalAlloc(SSHashObj* pHashObj, int32_t size) {
pHashObj->offset += size; pHashObj->offset += size;
return pPos; return pPos;
} }
#else
return taosMemoryMalloc(size);
#endif
} }
static SHNode *doCreateHashNode(SSHashObj *pHashObj, const void *key, size_t keyLen, const void *data, size_t dataLen, static SHNode *doCreateHashNode(SSHashObj *pHashObj, const void *key, size_t keyLen, const void *data, size_t dataLen,
@ -356,7 +361,22 @@ void tSimpleHashClear(SSHashObj *pHashObj) {
return; return;
} }
memset(pHashObj->hashList, 0, pHashObj->capacity * sizeof(void*)); SHNode *pNode = NULL, *pNext = NULL;
for (int32_t i = 0; i < pHashObj->capacity; ++i) {
pNode = pHashObj->hashList[i];
if (!pNode) {
continue;
}
while (pNode) {
pNext = pNode->next;
FREE_HASH_NODE(pNode);
pNode = pNext;
}
pHashObj->hashList[i] = NULL;
}
taosArrayClearEx(pHashObj->pHashNodeBuf, destroyItems); taosArrayClearEx(pHashObj->pHashNodeBuf, destroyItems);
pHashObj->offset = 0; pHashObj->offset = 0;
pHashObj->size = 0; pHashObj->size = 0;

View File

@ -75,7 +75,7 @@ class TDTestCase:
tdSql.checkData(2, 1, 'performance_schema') tdSql.checkData(2, 1, 'performance_schema')
tdSql.checkData(2, 2, None) tdSql.checkData(2, 2, None)
tdSql.query('select count(1),db_name, stable_name from information_schema.ins_tables group by db_name, stable_name;') tdSql.query('select count(1) v,db_name, stable_name from information_schema.ins_tables group by db_name, stable_name order by v desc;')
tdSql.checkRows(3) tdSql.checkRows(3)
tdSql.checkData(0, 0, 23) tdSql.checkData(0, 0, 23)
tdSql.checkData(0, 1, 'information_schema') tdSql.checkData(0, 1, 'information_schema')
@ -87,12 +87,12 @@ class TDTestCase:
tdSql.checkData(2, 1, 'tbl_count') tdSql.checkData(2, 1, 'tbl_count')
tdSql.checkData(2, 2, 'stb1') tdSql.checkData(2, 2, 'stb1')
tdSql.query('select count(1),db_name from information_schema.ins_tables group by db_name') tdSql.query('select count(1) v,db_name from information_schema.ins_tables group by db_name order by v asc')
tdSql.checkRows(3) tdSql.checkRows(3)
tdSql.checkData(0, 0, 5) tdSql.checkData(1, 0, 5)
tdSql.checkData(0, 1, 'performance_schema') tdSql.checkData(1, 1, 'performance_schema')
tdSql.checkData(1, 0, 3) tdSql.checkData(0, 0, 3)
tdSql.checkData(1, 1, 'tbl_count') tdSql.checkData(0, 1, 'tbl_count')
tdSql.checkData(2, 0, 23) tdSql.checkData(2, 0, 23)
tdSql.checkData(2, 1, 'information_schema') tdSql.checkData(2, 1, 'information_schema')
@ -177,42 +177,44 @@ class TDTestCase:
tdSql.execute('insert into tba1 values (\'2021-11-11 09:00:29\',true, 0,0,0,0,0,0,"000","0000",0,0,0,0);') tdSql.execute('insert into tba1 values (\'2021-11-11 09:00:29\',true, 0,0,0,0,0,0,"000","0000",0,0,0,0);')
tdSql.query('select count(*),db_name, stable_name from information_schema.ins_tables group by db_name, stable_name;') tdSql.query('select count(*) v,db_name, stable_name from information_schema.ins_tables group by db_name, stable_name order by v;')
tdSql.checkRows(4) tdSql.checkRows(4)
tdSql.checkData(0, 0, 1) tdSql.checkData(0, 0, 1)
tdSql.checkData(0, 1, 'tbl_count') tdSql.checkData(0, 1, 'tbl_count')
tdSql.checkData(0, 2, 'stba') tdSql.checkData(0, 2, 'stba')
tdSql.checkData(1, 0, 23)
tdSql.checkData(1, 1, 'information_schema') tdSql.checkData(1, 0, 3)
tdSql.checkData(1, 2, None) tdSql.checkData(1, 1, 'tbl_count')
tdSql.checkData(2, 0, 3) tdSql.checkData(1, 2, 'stb1')
tdSql.checkData(2, 1, 'tbl_count') tdSql.checkData(2, 0, 5)
tdSql.checkData(2, 2, 'stb1') tdSql.checkData(2, 1, 'performance_schema')
tdSql.checkData(3, 0, 5) tdSql.checkData(2, 2, None)
tdSql.checkData(3, 1, 'performance_schema') tdSql.checkData(3, 0, 23)
tdSql.checkData(3, 1, 'information_schema')
tdSql.checkData(3, 2, None) tdSql.checkData(3, 2, None)
tdSql.query('select count(1),db_name, stable_name from information_schema.ins_tables group by db_name, stable_name;') tdSql.query('select count(1) v,db_name, stable_name from information_schema.ins_tables group by db_name, stable_name order by v;')
tdSql.checkRows(4) tdSql.checkRows(4)
tdSql.checkData(0, 0, 23) tdSql.checkData(0, 0, 1)
tdSql.checkData(0, 1, 'information_schema') tdSql.checkData(0, 1, 'tbl_count')
tdSql.checkData(0, 2, None) tdSql.checkData(0, 2, 'stba')
tdSql.checkData(1, 0, 3)
tdSql.checkData(1, 1, 'tbl_count')
tdSql.checkData(1, 2, 'stb1')
tdSql.checkData(2, 0, 5)
tdSql.checkData(2, 1, 'performance_schema')
tdSql.checkData(2, 2, None)
tdSql.checkData(3, 0, 23)
tdSql.checkData(3, 1, 'information_schema')
tdSql.checkData(3, 2, None)
tdSql.query('select count(1) v,db_name from information_schema.ins_tables group by db_name order by v')
tdSql.checkRows(3)
tdSql.checkData(0, 0, 4)
tdSql.checkData(0, 1, 'tbl_count')
tdSql.checkData(1, 0, 5) tdSql.checkData(1, 0, 5)
tdSql.checkData(1, 1, 'performance_schema') tdSql.checkData(1, 1, 'performance_schema')
tdSql.checkData(1, 2, None)
tdSql.checkData(2, 0, 1)
tdSql.checkData(2, 1, 'tbl_count')
tdSql.checkData(2, 2, 'stba')
tdSql.checkData(3, 0, 3)
tdSql.checkData(3, 1, 'tbl_count')
tdSql.checkData(3, 2, 'stb1')
tdSql.query('select count(1),db_name from information_schema.ins_tables group by db_name')
tdSql.checkRows(3)
tdSql.checkData(0, 0, 5)
tdSql.checkData(0, 1, 'performance_schema')
tdSql.checkData(1, 0, 4)
tdSql.checkData(1, 1, 'tbl_count')
tdSql.checkData(2, 0, 23) tdSql.checkData(2, 0, 23)
tdSql.checkData(2, 1, 'information_schema') tdSql.checkData(2, 1, 'information_schema')

View File

@ -519,7 +519,7 @@ if $rows != 0 then
return -1 return -1
endi endi
sql select sum(f1),count(f1) from tba1 partition by case when f1 then f1 when 1 then 1 end; sql select sum(f1) v,count(f1) from tba1 partition by case when f1 then f1 when 1 then 1 end order by v;
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi