File tree Expand file tree Collapse file tree 3 files changed +23
-1
lines changed
Tests/PostgresNIOTests/New Expand file tree Collapse file tree 3 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -217,6 +217,8 @@ extension PostgresFrontendMessage {
217217 preconditionFailure ( " TODO: Unimplemented " )
218218 case . saslResponse:
219219 preconditionFailure ( " TODO: Unimplemented " )
220+ case . query:
221+ return . query
220222 case . sync:
221223 return . sync
222224 case . terminate:
Original file line number Diff line number Diff line change @@ -179,6 +179,7 @@ enum PostgresFrontendMessage: Equatable {
179179 case saslInitialResponse( SASLInitialResponse )
180180 case saslResponse( SASLResponse )
181181 case sslRequest
182+ case query
182183 case sync
183184 case startup( Startup )
184185 case terminate
@@ -194,6 +195,7 @@ enum PostgresFrontendMessage: Equatable {
194195 case password
195196 case saslInitialResponse
196197 case saslResponse
198+ case query
197199 case sync
198200 case terminate
199201
@@ -217,6 +219,8 @@ enum PostgresFrontendMessage: Equatable {
217219 self = . saslInitialResponse
218220 case UInt8 ( ascii: " p " ) :
219221 self = . saslResponse
222+ case UInt8 ( ascii: " Q " ) :
223+ self = . query
220224 case UInt8 ( ascii: " S " ) :
221225 self = . sync
222226 case UInt8 ( ascii: " X " ) :
@@ -246,6 +250,8 @@ enum PostgresFrontendMessage: Equatable {
246250 return UInt8 ( ascii: " p " )
247251 case . saslResponse:
248252 return UInt8 ( ascii: " p " )
253+ case . query:
254+ return UInt8 ( ascii: " Q " )
249255 case . sync:
250256 return UInt8 ( ascii: " S " )
251257 case . terminate:
@@ -283,6 +289,8 @@ extension PostgresFrontendMessage {
283289 preconditionFailure ( " SSL requests don't have an identifier " )
284290 case . startup:
285291 preconditionFailure ( " Startup messages don't have an identifier " )
292+ case . query:
293+ return . query
286294 case . sync:
287295 return . sync
288296 case . terminate:
Original file line number Diff line number Diff line change @@ -31,7 +31,19 @@ class PSQLFrontendMessageTests: XCTestCase {
3131 XCTAssertEqual ( PostgresFrontendMessage . ID. flush. rawValue, byteBuffer. readInteger ( as: UInt8 . self) )
3232 XCTAssertEqual ( 4 , byteBuffer. readInteger ( as: Int32 . self) ) // payload length
3333 }
34-
34+
35+ func testEncodeQuery( ) {
36+ var encoder = PostgresFrontendMessageEncoder ( buffer: . init( ) )
37+ let query = " SELECT * FROM foo "
38+ encoder. query ( query)
39+ var byteBuffer = encoder. flushBuffer ( )
40+
41+ XCTAssertEqual ( byteBuffer. readableBytes, 23 )
42+ XCTAssertEqual ( PostgresFrontendMessage . ID. query. rawValue, byteBuffer. readInteger ( as: UInt8 . self) )
43+ XCTAssertEqual ( 22 , byteBuffer. readInteger ( as: Int32 . self) ) // payload length
44+ XCTAssertEqual ( [ UInt8] ( query. utf8) , byteBuffer. readBytes ( length: 17 ) )
45+ }
46+
3547 func testEncodeSync( ) {
3648 var encoder = PostgresFrontendMessageEncoder ( buffer: . init( ) )
3749 encoder. sync ( )
You can’t perform that action at this time.
0 commit comments