executeRaw method

Future<List<Map<String, dynamic>>> executeRaw(
  1. String sql,
  2. List parameters
)

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);
}