deleteBelowLatestTs method
Implementation
Future<void> deleteBelowLatestTs(WaterState waterState) async {
WhereData whereData = WhereData();
whereData.set("water_error", SqlOperator.EQUAL,
WaterErrorAccess.getWaterErrorValue(WaterError.NONE));
whereData.set("water_state", SqlOperator.EQUAL,
WaterStateAccess.getWaterStateValue(waterState));
WhereGenerator wg = WhereGenerator(transaction.getTools()!.dbType, smd);
int maxTs = 0;
String sql = "SELECT MAX(water_ts) " +
" FROM " +
tableName +
" WHERE water_ts < " +
WaterLineDto.min_id_for_user.toString() +
" AND " +
wg.getWhereStringNoPrefix(whereData);
print(sql);
try {
RawTableData rawTableData =
await transaction.getConnection().query(sql, FieldData.wee(table_id));
maxTs = rawTableData.getRawRowData(0).getField(0) as int;
} on SqlException {
rethrow;
}
if (maxTs != null) {
sql = " DELETE " +
" FROM " +
tableName +
" WHERE water_ts < " +
maxTs.toString() +
" AND " +
wg.getWhereStringNoPrefix(whereData);
print(sql);
try {
await transaction.getConnection().query(sql, FieldData.wee(table_id));
} on SqlException {
rethrow;
}
}
}