executeMutationRaw method
Execute raw SQL mutation (INSERT/UPDATE/DELETE) and return affected rows.
Example:
final affected = await executor.executeMutationRaw(
'DELETE FROM sessions WHERE expires_at < NOW()',
[],
);
Implementation
Future<int> executeMutationRaw(
String sql,
List<dynamic> parameters,
) async {
final argTypes = parameters.map((p) => _inferArgType(p)).toList();
final sqlQuery = SqlQuery(sql: sql, args: parameters, argTypes: argTypes);
final startTime = DateTime.now();
logger?.onQueryStart(QueryStartEvent(
sql: sql,
parameters: parameters,
operation: 'rawMutation',
startTime: startTime,
));
try {
final result = await adapter.executeRaw(sqlQuery);
final duration = DateTime.now().difference(startTime);
logger?.onQueryEnd(QueryEndEvent(
sql: sql,
parameters: parameters,
operation: 'rawMutation',
duration: duration,
rowCount: result,
));
return result;
} catch (e, stackTrace) {
final duration = DateTime.now().difference(startTime);
logger?.onQueryError(QueryErrorEvent(
sql: sql,
parameters: parameters,
operation: 'rawMutation',
duration: duration,
error: e,
stackTrace: stackTrace,
));
throw _mapError(e);
}
}