@@ -5,7 +5,7 @@ extension PostgresDatabase {
5
5
let name = " nio-postgres- \( UUID ( ) . uuidString) "
6
6
let prepare = PrepareQueryRequest ( query, as: name)
7
7
return self . send ( prepare, logger: self . logger) . map { ( ) -> ( PreparedQuery ) in
8
- let prepared = PreparedQuery ( database: self , name: name, rowDescription: prepare. rowLookupTable! )
8
+ let prepared = PreparedQuery ( database: self , name: name, rowDescription: prepare. rowLookupTable)
9
9
return prepared
10
10
}
11
11
}
@@ -25,9 +25,9 @@ extension PostgresDatabase {
25
25
public struct PreparedQuery {
26
26
let database : PostgresDatabase
27
27
let name : String
28
- let rowLookupTable : PostgresRow . LookupTable
28
+ let rowLookupTable : PostgresRow . LookupTable ?
29
29
30
- init ( database: PostgresDatabase , name: String , rowDescription: PostgresRow . LookupTable ) {
30
+ init ( database: PostgresDatabase , name: String , rowDescription: PostgresRow . LookupTable ? ) {
31
31
self . database = database
32
32
self . name = name
33
33
self . rowLookupTable = rowDescription
@@ -74,6 +74,8 @@ private final class PrepareQueryRequest: PostgresRequest {
74
74
resultFormat: self . resultFormatCodes
75
75
)
76
76
return [ ]
77
+ case . noData:
78
+ return [ ]
77
79
case . parseComplete, . parameterDescription:
78
80
return [ ]
79
81
case . readyForQuery:
@@ -125,7 +127,10 @@ private final class ExecutePreparedQuery: PostgresRequest {
125
127
return [ ]
126
128
case . dataRow:
127
129
let data = try PostgresMessage . DataRow ( message: message)
128
- let row = PostgresRow ( dataRow: data, lookupTable: query. rowLookupTable)
130
+ guard let rowLookupTable = query. rowLookupTable else {
131
+ fatalError ( " row lookup was requested but never set " )
132
+ }
133
+ let row = PostgresRow ( dataRow: data, lookupTable: rowLookupTable)
129
134
try onRow ( row)
130
135
return [ ]
131
136
case . noData:
0 commit comments