提交 2381337a 编写于 作者: A Alex Duan

[TS-575]<fix>(query): limit = -1 if have group by

上级 23f0e2c1
...@@ -7534,10 +7534,15 @@ int32_t validateLimitNode(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SSqlNode* pSqlN ...@@ -7534,10 +7534,15 @@ int32_t validateLimitNode(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SSqlNode* pSqlN
*/ */
if (pQueryInfo->limit.limit > 0) { if (pQueryInfo->limit.limit > 0) {
pQueryInfo->vgroupLimit = pQueryInfo->limit.limit + pQueryInfo->limit.offset; pQueryInfo->vgroupLimit = pQueryInfo->limit.limit + pQueryInfo->limit.offset;
pQueryInfo->limit.limit += pQueryInfo->limit.offset; // if have group by , not do limit on parent sql
if(pSqlNode->pGroupby == NULL)
pQueryInfo->limit.limit += pQueryInfo->limit.offset;
else
pQueryInfo->limit.limit = -1;
} }
pQueryInfo->limit.offset = 0; pQueryInfo->limit.offset = 0;
} else if(pSqlNode->pGroupby) {
pQueryInfo->limit.limit = -1; // has groupby , no order on super table, limit is limit clause query rows by one group
} }
} else { } else {
if (pQueryInfo->slimit.limit != -1 || pQueryInfo->slimit.offset != 0) { if (pQueryInfo->slimit.limit != -1 || pQueryInfo->slimit.offset != 0) {
......
...@@ -10041,7 +10041,7 @@ void freeQueryAttr(SQueryAttr* pQueryAttr) { ...@@ -10041,7 +10041,7 @@ void freeQueryAttr(SQueryAttr* pQueryAttr) {
// add table read rows count. pHashTables must not be NULL // add table read rows count. pHashTables must not be NULL
void addTableReadRows(SQueryRuntimeEnv* pEnv, int32_t tid, int32_t rows) { void addTableReadRows(SQueryRuntimeEnv* pEnv, int32_t tid, int32_t rows) {
SHashObj* pHashObj = pEnv->pTablesRead; SHashObj* pHashObj = pEnv->pTablesRead;
int32_t limit = pEnv->pQueryAttr->limit.limit; int32_t limit = (int64_t)pEnv->pQueryAttr->limit.limit;
if (pHashObj == NULL) { if (pHashObj == NULL) {
return ; return ;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册