Instance Method
query(_:logger:file:line:_:)
iOS 16.0+
iPadOS 16.0+
Mac Catalyst 16.0+
macOS 13.0+
tvOS 16.0+
watchOS 9.0+
Run a query on the Postgres server the client is connected to.
func query<Result>(_ query: PostgresQuery, logger: Logger? = nil, file: String = #fileID, line: Int = #line, _ body: (PostgresRowSequence) async throws -> Result) async throws -> (result: Result, metadata: PostgresQueryMetadata)
Parameters
queryThe
PostgresQueryto runloggerThe
Loggerto log into for the queryfileThe file the query was started in. Used for better error reporting.
lineThe line the query was started in. Used for better error reporting.
bodyThe closure that’s used to consume the query result.
Return Value
The result of the body closure and the query metadata.
Discussion
The result of the query can only be consumed inside of the body closure and attempting to consume the stream outside of the closure will throw PSQLError.rowSequenceUsedOutsideScope. Rows that were already buffered when body returned are still delivered before the error is thrown.