executeRaw method
Execute raw SQL and return results.
This is an escape hatch for complex queries not supported by the query builder. Use parameterized queries to prevent SQL injection.
Example:
final results = await executor.executeRaw(
'SELECT * FROM users WHERE created_at > NOW() - INTERVAL \$1 DAY',
[7],
);
Implementation
Future<List<Map<String, dynamic>>> executeRaw(
String sql,
List<dynamic> parameters,
) async {
final argTypes = parameters.map((p) => _inferArgType(p)).toList();
final sqlQuery = SqlQuery(sql: sql, args: parameters, argTypes: argTypes);
final result = await _executeWithLogging(
sql: sql,
parameters: parameters,
operation: 'raw',
execute: () => adapter.queryRaw(sqlQuery),
);
return _resultSetToMaps(result);
}