 public enum QueryError: Error {
     case notSupported(String)
     case invalidDriverResponse(String)
-    case connectionClosed
+    case connectionClosed(Error)
     case unspecified(Error)
 }
 

            return "notSupported"
        case .invalidDriverResponse(_):
            return "invalidDriverResponse"
        case .connectionClosed:
            return "connectionClosed"
        case .unspecified(_):
            return "unspecified"

            return "Not supported: \(string)"
        case .invalidDriverResponse(let string):
            return "Invalid driver response: \(string)"
        case .connectionClosed(let error):
            return "Connection is closed: \(error)"
        case .unspecified(let error):
            return "\(error)"
        }
