     /// - parameter sequence: A sequence of (key, value) pairs
     /// - returns: A StatementArguments.
     public init<Sequence: SequenceType where Sequence.Generator.Element == (String, DatabaseValueConvertible?)>(_ sequence: Sequence) {
-        kind = .NamedValues(Array(sequence))
+        kind = .NamedValues(ShortDictionary(sequence))
     }
     
     public var isEmpty: Bool {

    
    enum Kind {
        case Values([DatabaseValueConvertible?])
        case NamedValues([(String, DatabaseValueConvertible?)])
    }
    
    let kind: Kind

}


/// MARK: - ShortDictionary

struct ShortDictionary<Key, Value>: SequenceType {
    let pairs: [(Key, Value)]
    
    init<Sequence: SequenceType where Sequence.Generator.Element == (Key, Value)>(_ sequence: Sequence) {
        pairs = Array(sequence)
    }
    
    var isEmpty: Bool {
        return pairs.isEmpty
    }
    
    func generate() -> IndexingGenerator<[(Key, Value)]> {
        return pairs.generate()
    }
}

extension ShortDictionary where Key: Hashable /* Require Hashable to that ShortDictionary can be replaced with Dictionary */ {
    subscript(key: Key) -> Value? {
        for (k, value) in pairs {
            if key == k {
                return value
            }
        }
        return nil
    }
}


// MARK: - SQLite identifier quoting

extension String {
