RenameColumnAdapter

RenameColumnAdapter is a row adapter that renames columns.

RowAdapter.swift:656
struct RenameColumnAdapter

For example:

let adapter = RenameColumnAdapter { column in column + "rrr" }
let sql = "SELECT 0 AS a, 1 AS b, 2 AS c"

// [arrr:0, brrr:1, crrr:2]
let row = try Row.fetchOne(db, sql: sql, adapter: adapter)!

This adapter is useful when subqueries contain duplicated column names:

let sql = "SELECT * FROM (SELECT 1 AS id, 2 AS id)"

// Prints ["id", "id:1"]
// Note the "id:1" column, generated by SQLite.
let row = try Row.fetchOne(db, sql: sql)!
print(Array(row.columnNames))

// Drop the `:...` suffix, and prints ["id", "id"]
let adapter = RenameColumnAdapter { String($0.prefix(while: { $0 != ":" })) }
let adaptedRow = try Row.fetchOne(db, sql: sql, adapter: adapter)!
print(Array(adaptedRow.columnNames))