From 6df2a8b53f2e35a9186707a04d815cd67a04d0ee Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Fri, 16 Jun 2023 13:45:59 +0800 Subject: [PATCH 1/2] fix: invalid system table primary key and distinct order by column issue --- source/libs/parser/src/parTranslater.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 23b1e14222..67d0be6c3f 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -884,6 +884,10 @@ static int32_t findAndSetColumn(STranslateContext* pCxt, SColumnNode** pColRef, if (QUERY_NODE_REAL_TABLE == nodeType(pTable)) { const STableMeta* pMeta = ((SRealTableNode*)pTable)->pMeta; if (isInternalPrimaryKey(pCol)) { + if (TSDB_SYSTEM_TABLE == pMeta->tableType) { + return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_COLUMN, pCol->colName); + } + setColumnInfoBySchema((SRealTableNode*)pTable, pMeta->schema, -1, pCol); *pFound = true; return TSDB_CODE_SUCCESS; @@ -2255,7 +2259,7 @@ static EDealRes doCheckExprForGroupBy(SNode** pNode, void* pContext) { } } if (isScanPseudoColumnFunc(*pNode) || QUERY_NODE_COLUMN == nodeType(*pNode)) { - if (pSelect->selectFuncNum > 1 || pSelect->hasOtherVectorFunc || !pSelect->hasSelectFunc) { + if (pSelect->selectFuncNum > 1 || pSelect->hasOtherVectorFunc || !pSelect->hasSelectFunc || (isDistinctOrderBy(pCxt) && pCxt->currClause == SQL_CLAUSE_ORDER_BY)) { return generateDealNodeErrMsg(pCxt, getGroupByErrorCode(pCxt), ((SExprNode*)(*pNode))->userAlias); } else { return rewriteColToSelectValFunc(pCxt, pNode); From c79273955d098b0c85c1e7b4e38f30e5cc818691 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Mon, 19 Jun 2023 10:12:30 +0800 Subject: [PATCH 2/2] fix: timeline function for system table query case --- tests/system-test/2-query/systable_func.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/system-test/2-query/systable_func.py b/tests/system-test/2-query/systable_func.py index 77ee02e4b1..3df641c72e 100644 --- a/tests/system-test/2-query/systable_func.py +++ b/tests/system-test/2-query/systable_func.py @@ -31,10 +31,10 @@ class TDTestCase: tdSql.query(f"select histogram(`columns`, 'user_input', '[1, 3, 5]', 0) from `information_schema`.`ins_tables`;") tdSql.query(f"select hyperloglog(`columns`) from `information_schema`.`ins_tables`;") tdSql.query(f"select sample(`columns`, 3) from `information_schema`.`ins_tables`;") - tdSql.query(f"select tail(`columns`, 3) from `information_schema`.`ins_tables`;") - tdSql.query(f"select unique(`columns`) from `information_schema`.`ins_tables`;") tdSql.query(f"select mode(`columns`) from `information_schema`.`ins_tables`;") + tdSql.error(f"select unique(`columns`) from `information_schema`.`ins_tables`;") + tdSql.error(f"select tail(`columns`, 3) from `information_schema`.`ins_tables`;") tdSql.error(f"select leastsquares(`columns`, 1, 1) from `information_schema`.`ins_tables`;") tdSql.error(f"select elapsed(`columns`) from `information_schema`.`ins_tables`;") tdSql.error(f"select interp(`columns`) from `information_schema`.`ins_tables` range(0, 1) every(1s) fill(null);")