resultSetToMaps method

List<Map<String, dynamic>> resultSetToMaps(
  1. SqlResultSet result, {
  2. bool preserveAliases = false,
})

Convert SqlResultSet to list of maps.

preserveAliases - If true, preserves column aliases as-is without camelCase conversion. Used when relations are present and the RelationDeserializer needs to match aliases.

Implementation

List<Map<String, dynamic>> resultSetToMaps(
  SqlResultSet result, {
  bool preserveAliases = false,
}) {
  if (result.rows.isEmpty) return [];

  final maps = <Map<String, dynamic>>[];

  for (final row in result.rows) {
    final map = <String, dynamic>{};

    for (var i = 0; i < result.columnNames.length; i++) {
      final columnName = result.columnNames[i];
      final value = i < row.length ? row[i] : null;

      // Convert snake_case column names to camelCase (unless preserving aliases)
      final key = preserveAliases ? columnName : snakeToCamelCase(columnName);

      map[key] = deserializeValue(value, result.columnTypes[i]);
    }

    maps.add(map);
  }

  return maps;
}