From ae9c4a48838db6dbc356e5d1d022e8739042f933 Mon Sep 17 00:00:00 2001 From: tickduan <417921451@qq.com> Date: Mon, 7 Jun 2021 13:39:12 +0800 Subject: [PATCH 1/3] fix delay 24 hours bugs --- src/client/src/tscStream.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/client/src/tscStream.c b/src/client/src/tscStream.c index ed024e21ba..de2f0087ce 100644 --- a/src/client/src/tscStream.c +++ b/src/client/src/tscStream.c @@ -340,8 +340,12 @@ static void tscSetRetryTimer(SSqlStream *pStream, SSqlObj *pSql, int64_t timer) if (pStream->isProject) { int64_t now = taosGetTimestamp(pStream->precision); int64_t etime = now > pStream->etime ? pStream->etime : now; - - if (pStream->etime < now && now - pStream->etime > tsMaxRetentWindow) { + int64_t maxRetent = tsMaxRetentWindow * 1000; + if(pStream->precision == TSDB_TIME_PRECISION_MICRO) { + maxRetent *= 1000; + } + + if (pStream->etime < now && now - pStream->etime > maxRetent) { /* * current time window will be closed, since it too early to exceed the maxRetentWindow value */ From f8c13734d6bd9438a78bc677e717d14170e79418 Mon Sep 17 00:00:00 2001 From: tickduan <417921451@qq.com> Date: Mon, 7 Jun 2021 15:18:13 +0800 Subject: [PATCH 2/3] fix merge to develop conflict --- src/client/src/tscSQLParser.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 363bb41085..a5b1675170 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -6674,9 +6674,8 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) { const char* msg5 = "sql too long"; // todo ADD support const char* msg6 = "from missing in subclause"; const char* msg7 = "time interval is required"; - const char* msg8 = "query column is required"; - const char* msg9 = "the first column must be timestamp type"; - + const char* msg8 = "the first column should be primary timestamp column"; + SSqlCmd* pCmd = &pSql->cmd; SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); assert(pQueryInfo->numOfTables == 1); @@ -6733,26 +6732,15 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg2); } - // project query primary column must be timestamp type if (tscIsProjectionQuery(pQueryInfo)) { - size_t size = tscSqlExprNumOfExprs(pQueryInfo); - // check zero - if(size == 0) { + SExprInfo* pExpr = tscExprGet(pQueryInfo, 0); + if (pExpr->base.colInfo.colId != PRIMARYKEY_TIMESTAMP_COL_INDEX) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg8); } - - // check primary column is timestamp - SSqlExpr* pSqlExpr = tscSqlExprGet(pQueryInfo, 0); - if(pSqlExpr == NULL) { - return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg8); - } - if( pSqlExpr->colInfo.colId != PRIMARYKEY_TIMESTAMP_COL_INDEX) { - return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg9); - } } else { if (pQueryInfo->interval.interval == 0) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg7); - } + } } // set the created table[stream] name From c9adad624d14ba6421eeccde323e4f8fee3b9452 Mon Sep 17 00:00:00 2001 From: tickduan <417921451@qq.com> Date: Mon, 7 Jun 2021 17:04:22 +0800 Subject: [PATCH 3/3] restore, fix build error --- src/client/src/tscSQLParser.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index a5b1675170..a04bfa0482 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -6675,7 +6675,7 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) { const char* msg6 = "from missing in subclause"; const char* msg7 = "time interval is required"; const char* msg8 = "the first column should be primary timestamp column"; - + SSqlCmd* pCmd = &pSql->cmd; SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); assert(pQueryInfo->numOfTables == 1); @@ -6732,15 +6732,26 @@ int32_t doCheckForStream(SSqlObj* pSql, SSqlInfo* pInfo) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg2); } + // project query primary column must be timestamp type if (tscIsProjectionQuery(pQueryInfo)) { - SExprInfo* pExpr = tscExprGet(pQueryInfo, 0); - if (pExpr->base.colInfo.colId != PRIMARYKEY_TIMESTAMP_COL_INDEX) { + size_t size = tscSqlExprNumOfExprs(pQueryInfo); + // check zero + if(size == 0) { + return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg8); + } + + // check primary column is timestamp + SSqlExpr* pSqlExpr = tscSqlExprGet(pQueryInfo, 0); + if(pSqlExpr == NULL) { + return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg8); + } + if( pSqlExpr->colInfo.colId != PRIMARYKEY_TIMESTAMP_COL_INDEX) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg8); } } else { if (pQueryInfo->interval.interval == 0) { return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg7); - } + } } // set the created table[stream] name