38 Commits

Author SHA1 Message Date
Jack Christensen
95a43139c7 Avoid allocations with non-blocking write 2022-06-18 18:22:32 -05:00
Jack Christensen
6b63ceee07 Simplify iobufpool usage 2022-06-18 17:46:49 -05:00
Jack Christensen
60ecdda02e Add true non-blocking IO 2022-06-18 11:51:59 -05:00
Jack Christensen
7dd26a34a1 Fix block when reading more than buffered 2022-06-04 20:28:23 -05:00
Jack Christensen
afa702213f More TLS support 2022-06-04 20:10:23 -05:00
Jack Christensen
51655bf8f4 Steps toward TLS 2022-06-04 17:46:00 -05:00
Jack Christensen
2b80beb1ed Litle more TLS support 2022-06-04 13:06:29 -05:00
Jack Christensen
765b2c6e7b Add testing of TLS 2022-06-04 12:29:30 -05:00
Jack Christensen
5b64432afb Introduce testVariants in prep for TLS 2022-06-04 09:48:19 -05:00
Jack Christensen
ecebd7b103 Handle and test read of previously buffered data 2022-06-04 09:32:14 -05:00
Jack Christensen
09c64d8cf3 Rename nbbconn to nbconn 2022-06-04 09:05:50 -05:00
Jack Christensen
73398bc67a Remove backup files 2022-06-04 08:59:53 -05:00
Jack Christensen
ca22396789 wip 2022-06-02 19:32:55 -05:00
Jack Christensen
2e7b46d5d7 Update comments 2022-05-30 08:32:43 -05:00
Jack Christensen
bf1edc77d7 fixed putting wrong size bufs 2022-05-28 19:40:33 -05:00
Jack Christensen
1f7a855b2e initial not quite working non-blocking conn 2022-05-28 18:13:47 -05:00
Jack Christensen
e12ba1b6b9 Extract iobufpool 2022-05-28 10:59:54 -05:00
Jack Christensen
5714896b10 Restructure sending messages
Use an internal buffer in pgproto3.Frontend and pgproto3.Backend instead
of directly writing to the underlying net.Conn. This will allow tracing
messages as well as simplify pipeline mode.
2022-05-21 11:06:44 -05:00
Jack Christensen
1f4b34f932 Merge branch 'master' into v5-dev 2022-04-23 11:05:24 -05:00
Jack Christensen
c323ab6662 Merge remote-tracking branch 'pgconn/master' into v5-dev 2022-04-23 10:48:44 -05:00
Jack Christensen
f14fb3d692 Replace interface{} with any 2022-04-09 09:12:55 -05:00
Jack Christensen
f27178ba85 Initial privatization of stmtcache
ConnConfig.BuildStatementCache is pending removal once connections
always have separate caches for prepared and described statements.
2022-03-12 08:35:31 -06:00
Jack Christensen
1cef9075d9 Simply typed nil and driver.Valuer handling
* Convert typed nils to untyped nils at beginning of encoding process.
* Restore v4 json/jsonb null behavior
* Add anynil internal package
2022-03-05 19:53:59 -06:00
Andrew Rusakow
a86ece025c Fix single line comment for line endings in mac when sanitizing. 2022-03-04 18:17:40 -06:00
Jack Christensen
2e0ec225de Make Chunkreader an internal implementation detail 2022-02-26 08:50:46 -06:00
Jack Christensen
d13f651810 Finish importing pgio as internal package 2022-02-21 14:35:20 -06:00
Jack Christensen
95cbbfe441 Import pgproto3
Also copy in pgmock as an internal package.
2022-02-21 13:22:42 -06:00
Jack Christensen
72cc95e4dd Bump module version to v5 2021-12-11 13:29:03 -06:00
Jack Christensen
162dc65eff Make ContextWatcher concurrency safe
fixes #94
2021-11-06 08:57:49 -05:00
Jack Christensen
a49f4bb135 Use errors instead of golang.org/x/xerrors 2021-03-25 09:55:12 -04:00
Rusakow Andrew
292539a590 Add comment support when sanitizing SQL queries 2021-03-13 07:31:56 -06:00
Jack Christensen
5d2be99c25 Fix panic when closing conn during cancellable query
fixes #29
2020-04-07 19:38:21 -05:00
Andrew Nicoll
816e95d3ee sanatize time to within microsecond accuracy 2020-03-27 13:03:36 +00:00
Jack Christensen
29f02807b0 Restore simple protocol support 2019-05-20 20:36:03 -05:00
Jack Christensen
1baf0ef57e Refactor context handling into ctxwatch package 2019-05-07 18:05:06 -05:00
Jack Christensen
c53c9e6eb5 Remove simple protocol and one round trip query options
It is impossible to guarantee that the a query executed with the simple
protocol will behave the same as with the extended protocol. This is
because the normal pgx path relies on knowing the OID of query
parameters. Without this encoding a value can only be determined by the
value instead of the combination of value and PostgreSQL type. For
example, how should a []int32 be encoded? It might be encoded into a
PostgreSQL int4[] or json.

Removal also simplifies the core query path.

The primary reason for the simple protocol is for servers like PgBouncer
that may not be able to support normal prepared statements. After
further research it appears that issuing a "flush" instead "sync" after
preparing the unnamed statement would allow PgBouncer to work.

The one round trip mode can be better handled with prepared statements.

As a last resort, all original server functionality can still be accessed by
dropping down to PgConn.
2019-04-13 11:39:01 -05:00
Jack Christensen
8f4178b3d3 Use github.com/pkg/errors 2017-06-04 21:30:03 -05:00
Jack Christensen
7b1f461ec3 Add simple protocol suuport with (Query|Exec)Ex 2017-04-10 08:58:51 -05:00