diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 2a4fdb0136..497d0513f3 100755 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -7557,9 +7557,13 @@ static int32_t partitionDeleteWhere(STranslateContext* pCxt, SDeleteStmt* pDelet } if (TSDB_CODE_SUCCESS == code) { bool isStrict = false; - code = getTimeRange(&pPrimaryKeyCond, &pDelete->timeRange, &isStrict); - if (TSDB_CODE_SUCCESS == code && !isStrict) { - code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_DELETE_WHERE); + if (NULL != pPrimaryKeyCond) { + code = getTimeRange(&pPrimaryKeyCond, &pDelete->timeRange, &isStrict); + if (TSDB_CODE_SUCCESS == code && !isStrict) { + code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_DELETE_WHERE); + } + } else { + pDelete->timeRange = TSWINDOW_INITIALIZER; } } nodesDestroyNode(pPrimaryKeyCond); diff --git a/tests/system-test/1-insert/delete_stable.py b/tests/system-test/1-insert/delete_stable.py index bff6548517..f77b0bdf47 100644 --- a/tests/system-test/1-insert/delete_stable.py +++ b/tests/system-test/1-insert/delete_stable.py @@ -200,6 +200,17 @@ class TDTestCase: tdSql.execute(f'delete from {tbname} where ts between {self.ts+i+1} and {self.ts}') tdSql.query(f'select {col_name} from {tbname}') tdSql.checkRows(tb_num*row_num) + for i in range(row_num): + tdSql.execute(f'delete from {tbname} where t1 = 1') + tdSql.execute(f'flush database {dbname}') + tdSql.execute('reset query cache') + tdSql.query(f'select {col_name} from {tbname}') + tdSql.checkRows(0) + for j in range(tb_num): + self.insert_base_data(col_type,f'{tbname}_{j}',row_num,base_data) + tdSql.execute(f'delete from {tbname} where t1 = 0') + tdSql.query(f'select {col_name} from {tbname}') + tdSql.checkRows(tb_num*row_num) def delete_error(self,tbname,column_name,column_type,base_data): for error_list in ['',f'ts = {self.ts} and',f'ts = {self.ts} or']: if 'binary' in column_type.lower(): @@ -268,4 +279,4 @@ class TDTestCase: tdLog.success("%s successfully executed" % __file__) tdCases.addWindows(__file__, TDTestCase()) -tdCases.addLinux(__file__, TDTestCase()) \ No newline at end of file +tdCases.addLinux(__file__, TDTestCase())