     public func databaseWillCommit() throws { }
     public func databaseDidRollback(db: Database) { }
     public func databaseDidCommit(db: Database) {
-        let newResults = self.fetchInDatabase(db)
+        let newResults = source.fetchAll(db)
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
             let oldResults = self.fetchedResults
 


public typealias FetchedResult = protocol<RowConvertible, TableMapping, Equatable>

public class FetchedResultsController<T: FetchedResult> {
    
    // MARK: - Initialization
    public init(database: DatabaseWriter, sql: String) {
        self.sql = sql
        self.fetchRequest = nil
        self.database = database
        database.addTransactionObserver(self)
    }
    
    public init(database: DatabaseWriter, fetchRequest: FetchRequest<T>) {
        self.sql = nil
        self.fetchRequest = fetchRequest
        self.database = database
        database.addTransactionObserver(self)
    }

    // MARK: - Not public
    
    func fetch() -> [T] {
        return source.fetchAll(database)
    }
    
    static func computeChanges(fromRows s: [T], toRows t: [T]) -> [ResultChange<T>] {
