     /// The returned data does not owns its bytes: it must not be used longer
     /// than the row's lifetime.
     func decodeDataNoCopyIfPresent(atIndex index: Int) throws -> Data? {
-        try impl.fastDecodeDataNoCopyIfPresent(atUncheckedIndex: _checkedIndex(index))
+        _checkIndex(index)
+        return try impl.fastDecodeDataNoCopyIfPresent(atUncheckedIndex: index)
     }
     
     /// Returns the Data at given index.

        atIndex index: Int)
    throws -> Value?
    {
        try Value.decodeIfPresent(fromRow: self, atUncheckedIndex: _checkedIndex(index))
    }
    
    /// Returns the value at given index, converted to the requested type.

    
    /// Accesses the (ColumnName, DatabaseValue) pair at given index.
    public subscript(position: RowIndex) -> (String, DatabaseValue) {
        let index = position.index
        _checkIndex(index)
        return (
            impl.columnName(atUncheckedIndex: index),
            impl.databaseValue(atUncheckedIndex: index))
