File tree Expand file tree Collapse file tree 3 files changed +28
-10
lines changed
Sources/PostgresNIO/Connection Expand file tree Collapse file tree 3 files changed +28
-10
lines changed Original file line number Diff line number Diff line change @@ -65,16 +65,16 @@ private final class PostgresParameterizedQuery: PostgresRequest {
6565 case . parseComplete:
6666 return [ ]
6767 case . parameterDescription:
68- // let params = try PostgresMessage.ParameterDescription(message: message)
69- // if params.dataTypes.count != binds.count {
70- // self.logger!.warning("Expected parameters count (\(params.dataTypes.count)) does not equal binds count (\(binds.count))")
71- // } else {
72- // for (i, item) in zip(params.dataTypes, binds).enumerated() {
73- // if item.0 != item.1.type {
74- // self.logger!.warning("bind $\(i + 1) type (\(item.1.type)) does not match expected parameter type (\(item.0))")
75- // }
76- // }
77- // }
68+ let params = try PostgresMessage . ParameterDescription ( message: message)
69+ if params. dataTypes. count != self . binds. count {
70+ self . logger!. warning ( " Expected parameters count ( \( params. dataTypes. count) ) does not equal binds count ( \( binds. count) ) " )
71+ } else {
72+ for (i, item) in zip ( params. dataTypes, self . binds) . enumerated ( ) {
73+ if item. 0 != item. 1 . type {
74+ self . logger!. warning ( " bind $ \( i + 1 ) type ( \( item. 1 . type) ) does not match expected parameter type ( \( item. 0 ) ) " )
75+ }
76+ }
77+ }
7878 return [ ]
7979 case . commandComplete:
8080 return [ ]
Original file line number Diff line number Diff line change @@ -556,6 +556,23 @@ final class NIOPostgresTests: XCTestCase {
556556 XCTAssertEqual ( rows [ 0 ] . column ( " languages " ) ? . array ( of: String . self) , [ " en " ] )
557557 XCTAssertEqual ( rows [ 0 ] . column ( " currencies " ) ? . array ( of: String . self) , [ " USD " , " DKK " ] )
558558 }
559+
560+ func testBindDate( ) throws {
561+ // https://github.com/vapor/postgres-nio/issues/53
562+ let date = Date ( timeIntervalSince1970: 1571425782 )
563+ let query = """
564+ SELECT $1::json as " date "
565+ """
566+ let conn = try PostgresConnection . test ( on: eventLoop) . wait ( )
567+ defer { try ! conn. close ( ) . wait ( ) }
568+ do {
569+ _ = try conn. query ( query, [ . init( date: date) ] ) . wait ( )
570+ XCTFail ( " should have failed " )
571+ } catch PostgresError . server( let error) {
572+ XCTAssertEqual ( error. fields [ . routine] , " report_invalid_encoding " )
573+ }
574+
575+ }
559576
560577 // MARK: Performance
561578
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ extension NIOPostgresTests {
77 // to regenerate.
88 static let __allTests__NIOPostgresTests = [
99 ( " testAverageLengthNumeric " , testAverageLengthNumeric) ,
10+ ( " testBindDate " , testBindDate) ,
1011 ( " testBindInteger " , testBindInteger) ,
1112 ( " testBoolSerialize " , testBoolSerialize) ,
1213 ( " testBytesSerialize " , testBytesSerialize) ,
You can’t perform that action at this time.
0 commit comments