enh: support delete without time range
This commit is contained in:
parent
29a9dcd37d
commit
5bff0aa2a7
|
@ -7557,9 +7557,13 @@ static int32_t partitionDeleteWhere(STranslateContext* pCxt, SDeleteStmt* pDelet
|
||||||
}
|
}
|
||||||
if (TSDB_CODE_SUCCESS == code) {
|
if (TSDB_CODE_SUCCESS == code) {
|
||||||
bool isStrict = false;
|
bool isStrict = false;
|
||||||
code = getTimeRange(&pPrimaryKeyCond, &pDelete->timeRange, &isStrict);
|
if (NULL != pPrimaryKeyCond) {
|
||||||
if (TSDB_CODE_SUCCESS == code && !isStrict) {
|
code = getTimeRange(&pPrimaryKeyCond, &pDelete->timeRange, &isStrict);
|
||||||
code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_DELETE_WHERE);
|
if (TSDB_CODE_SUCCESS == code && !isStrict) {
|
||||||
|
code = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_DELETE_WHERE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
pDelete->timeRange = TSWINDOW_INITIALIZER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nodesDestroyNode(pPrimaryKeyCond);
|
nodesDestroyNode(pPrimaryKeyCond);
|
||||||
|
|
|
@ -200,6 +200,17 @@ class TDTestCase:
|
||||||
tdSql.execute(f'delete from {tbname} where ts between {self.ts+i+1} and {self.ts}')
|
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.query(f'select {col_name} from {tbname}')
|
||||||
tdSql.checkRows(tb_num*row_num)
|
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):
|
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']:
|
for error_list in ['',f'ts = {self.ts} and',f'ts = {self.ts} or']:
|
||||||
if 'binary' in column_type.lower():
|
if 'binary' in column_type.lower():
|
||||||
|
@ -268,4 +279,4 @@ class TDTestCase:
|
||||||
tdLog.success("%s successfully executed" % __file__)
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
||||||
tdCases.addWindows(__file__, TDTestCase())
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
tdCases.addLinux(__file__, TDTestCase())
|
tdCases.addLinux(__file__, TDTestCase())
|
||||||
|
|
Loading…
Reference in New Issue