2
0
Commit Graph

59 Commits

Author SHA1 Message Date
Jack Christensen fede0ce5d6 Document that received messages are only valid until the next receive. 2020-09-05 11:30:23 -05:00
Yuli Khodorkovskiy 08088ecf9a Fix notification response
Notification response was missing the PID in the Encode function
2020-08-31 17:09:20 -05:00
Jack Christensen 6677e2430f Merge pull request #4 from yulicrunchy/fix-malformed-sasl
Fix malformed SASL messages
2020-08-28 16:49:24 -05:00
Jack Christensen 5847a2671a Merge pull request #3 from yulicrunchy/gss
Add missing GSSEncRequest
2020-08-28 16:48:40 -05:00
Jack Christensen 72288731fc Merge pull request #8 from mjibson/patch-1
mark CopyDone as frontend too
2020-08-01 05:46:49 -05:00
Matt Jibson 2799a6e9a6 mark CopyDone as frontend too 2020-07-31 16:13:23 -06:00
Jack Christensen 3443d78a73 Merge pull request #7 from mjibson/patch-1
correctly encode CopyInResponse's format field
2020-07-31 17:02:15 -05:00
Matt Jibson 6d0b4c45e4 correctly encode CopyInResponse's format field 2020-07-31 15:42:06 -06:00
Jack Christensen 7746f223e0 Merge pull request #1 from felixge/fix-auth-md5
fix: AuthenticationMD5Password AuthType
2020-05-18 08:52:34 -05:00
Jack Christensen 595780be0f Map io.EOF errors to io.ErrUnexpectedEOF
io.EOF is never expected during valid usage. In addition, database/sql
uses io.EOF as a sentinal value that all rows from a query have been
received.

See https://github.com/jackc/pgx/issues/662.
2020-01-17 16:55:05 -06:00
Yuli Khodorkovskiy 1c20e7d36e Fix malformed SASL messages
Per the PG documentation [0], an AuthenticationSASLContinue message has:

    AuthenticationSASLContinue (B)
	Byte1('R')
	    Identifies the message as an authentication request.
	Int32
	    Length of message contents in bytes, including self.
	Int32(11)
	    Specifies that this message contains a SASL challenge.
	Byten
	    SASL data, specific to the SASL mechanism being used.

The current implementation was mistakenly adding the lengh of msg bytes
in between the Int32(11) and Byten. There was a similar issue for
AuthenticationSASLFinal.

[0] https://www.postgresql.org/docs/current/protocol-message-formats.html
2019-12-17 20:28:01 -05:00
Yuli Khodorkovskiy e6b823d649 Add missing GSSEncRequest 2019-12-17 20:21:57 -05:00
Felix Geisendörfer a90ef7ed5b fix: AuthenticationMD5Password AuthType 2019-09-08 17:29:06 +02:00
Jack Christensen eca1e51822 Add more pgfortune output 2019-09-07 11:41:31 -05:00
Jack Christensen 80f2cbce25 Add pgfortune example 2019-09-07 11:37:43 -05:00
Jack Christensen 4c03ce451f Add MarshalJSON for FieldDescription 2019-08-31 16:00:41 -05:00
Jack Christensen 0d1ceed7a6 Refactor authentication message handling 2019-08-31 15:43:07 -05:00
Jack Christensen 439ea11d47 NewFrontend and NewBackend cannot fail 2019-08-31 14:49:55 -05:00
Jack Christensen 2bc8f2e6af Remove pkg/errors package 2019-08-31 11:53:26 -05:00
Jack Christensen 1ba5dcbe01 Support SSLRequest and CancelRequest 2019-08-31 11:48:01 -05:00
Jack Christensen 76538434cf MarshalJSON should be defined on T not *T
Otherwise "%v" format would be used by json.Marshal(T).
2019-08-27 21:13:45 -05:00
Jack Christensen 432c2951c7 Add a lot of documentation 2019-06-08 19:38:34 -05:00
Jack Christensen bf3a27ae3f Update to github.com/jackc/chunkreader/v2 2019-06-08 18:34:35 -05:00
Jack Christensen 18e7e777be Import PortalSuspended from pgx v3
0ab6f80f99
2019-06-08 10:26:26 -05:00
Jack Christensen a340d5f15f CopyFail should be frontend message 2019-05-17 13:27:11 -05:00
Jack Christensen 4acc0f54c6 Import fixes from pgx/pgproto3
Import and adapt commit: fbb8cce
2019-05-03 14:07:55 -05:00
Jack Christensen c116219b62 Update tests to use v2 2019-04-20 13:01:11 -05:00
Jack Christensen 9b6a681f50 Update go.mod version 2019-04-18 23:15:44 -05:00
Jack Christensen 76e904a5a4 CommandComplete.CommandTag is now []byte
Avoid allocation
2019-04-18 23:12:18 -05:00
Jack Christensen 8d43b38287 RowDescription.Name is now []byte
Avoid allocation
2019-04-18 23:12:00 -05:00
Jack Christensen 2acb7b6d4e Reduce mallocs in RowDescription.Decode 2019-04-18 22:33:11 -05:00
Jack Christensen b2a540ca81 Add sufficient support for SCRAM 2019-04-16 20:30:55 -05:00
Jack Christensen 97a0ac4ddc Clarify ChunkReader.Next contract 2019-03-30 12:52:55 -05:00
Jack Christensen bb06e6b3ff Decouple github.com/jackc/chunkreader 2019-03-30 12:46:56 -05:00
Jack Christensen 127e997696 Add travis CI 2019-03-30 12:33:04 -05:00
Jack Christensen b9d0da5558 Add readme, license, and docs 2019-03-30 12:32:39 -05:00
Jack Christensen 16176b5151 Add go module support 2019-03-30 12:26:24 -05:00
Jack Christensen 440fbf1581 Include missed changes 2019-01-26 12:21:54 -06:00
Jack Christensen 38671ea106 Properly abort CopyFrom on reader error 2019-01-26 10:21:16 -06:00
Josh Leverette 66af2227c0 Fix encoding of ErrorResponse 2019-01-19 11:42:30 -06:00
Jack Christensen a24d764440 Back out of some over optimization 2019-01-02 18:16:08 -06:00
Jack Christensen 7bd9b776cd Remove another allocation 2019-01-01 13:52:04 -06:00
Jack Christensen f225b3d4a1 Avoid allocating strings in common message types 2019-01-01 13:47:37 -06:00
Jack Christensen 64b1ecf96f Type modifier should be int32 not uint32 2018-09-22 07:43:18 -05:00
Murat Kabilov 5f39bbaf35 Add *Conn. CopyFromTextual, CopyToTextual, which use textual format for copying data 2018-07-31 08:57:53 +02:00
Jack Christensen b3d0cbd0e6 Fix reading interrupted messages
When an message is received and a timeout occurs after reading the
header but before reading the entire body the connection state could
be corrupted due to the header being consumed. The next read would
consider the body of the previous message as the header for the next.

fixes #348
2017-12-16 13:45:22 -06:00
Jack Christensen ffa9ff2213 Use github.com/pkg/errors 2017-06-04 21:30:03 -05:00
Jack Christensen 8e404a02a3 Ensure pgproto3.Parse.Decode overwrites itself entirely 2017-05-29 11:24:49 -05:00
Jack Christensen d6312305ae Replace MarshalBinary with Encode
This new approach can avoid allocations.
2017-05-26 17:00:44 -05:00
Jack Christensen b1934ad4c2 Add flush and close messages to pgproto3 2017-05-19 17:31:22 -05:00