         let value: Double? = row.value(named: "count")
     
     This method is case-insensitive.
-    
-    TODO: the doc below is obsolete.
     
     **WARNING**: type casting requires a very careful use of the `as` operator
     (see [rdar://21676393](http://openradar.appspot.com/radar?id=4951414862249984)):

    
    This method is case-insensitive.
    
    TODO: the doc below is obsolete.
    
    **WARNING**: type casting requires a very careful use of the `as` operator
    (see [rdar://21676393](http://openradar.appspot.com/radar?id=4951414862249984)):
    

    // MARK: - Fetching From SelectStatement
    
    /**
    Returns a sequence of rows.

        for row in Row.fetch(db, "SELECT id, name FROM persons") {
            let id = row.int64(atIndex: 0)
            let name = row.string(atIndex: 1)
        }
    
    Fetched rows are reused during the sequence iteration: don't wrap a row
    sequence in an array with `Array(rows)` or `rows.filter { ... }` since you
    would not get the distinct rows you expect. Use `Row.fetchAll(...)` instead.
    
    For the same reason, make sure you make a copy whenever you extract a row
    for later use: `row.copy()`.
    
    The returned sequence can be consumed several times, but it may yield
    different results, should database changes have occurred between two
    generations:
    
        let rows = Row.fetch(statement)
        for row in rows { ... } // 3 steps
        db.execute("DELETE ...")
        for row in rows { ... } // 2 steps
    
    If the database is modified while the sequence is iterating, the remaining
    elements of the sequence are undefined.
    
    - parameter db: A Database.
    - parameter sql: An SQL query.
