Commit Graph

61 Commits (99e546152212377b211ac6fdd9b2e5a59ebaf616)

Author SHA1 Message Date
Jack Christensen 5eae85194e Bring stdlib iso change from v3 2019-08-08 15:35:30 -05:00
Jack Christensen 98f3e64bec Use envvars for stdlib tests 2019-05-20 20:39:45 -05:00
Jack Christensen 29f02807b0 Restore simple protocol support 2019-05-20 20:36:03 -05:00
Jack Christensen efb333df6b Fix go modules
Wow. This is fun. Sure is easy to get modules wrong when upgrading a v2+
project.
2019-04-20 17:41:08 -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 b77f901168 Inital pass at converting stdlib
Multiple tests still failing
2019-04-12 16:57:42 -05:00
Jack Christensen 858d00788a Use extracted packages with Go modules 2019-04-05 10:59:47 -05:00
James Hartig 6d336eccb1 Added LastStmtSent and use it to retry on errors if statement was not sent
Previously, a failed connection could be put back in a pool and when the
next query was attempted it would fail immediately trying to prepare the
query or reset the deadline. It wasn't clear if the Query or Exec call
could safely be retried since there was no way to know where it failed.

You can now call LastQuerySent and if it returns false then you're
guaranteed that the last call to Query(Ex)/Exec(Ex) didn't get far enough
to attempt to send the query. The call can be retried with a new
connection.

This is used in the stdlib to return a ErrBadConn if a network error
occurred and the statement was not attempted.

Fixes #427
2018-11-19 10:44:40 -05:00
Jack Christensen 897e90f353 Type modifier should be int32 not uint32 2018-09-22 07:43:18 -05:00
Valery Krivchikov c844a2402b Call context.WithTimeout cancel function 2018-09-15 13:23:09 +03:00
Jack Christensen 0a483bad9d Merge branch 'implement-opendb' of https://github.com/james-lawrence/pgx into james-lawrence-implement-opendb 2018-07-14 09:57:49 -05:00
Jack Christensen 1fbd6977e1 Use json instead of jsonb for PG 9.3 compat. 2018-04-14 10:02:08 -05:00
Jack Christensen 5297846239 pgtype.JSON(B).Value now returns []byte
Allows scanning jsonb column into *json.RawMessage.

fixes #409
2018-04-14 09:17:56 -05:00
James Lawrence 19a9154d23 implement driver.Connector 2018-04-08 11:12:15 -04:00
Jack Christensen 3707b79782 Add prefer simple protocol support to stdlib
Test code partially taken from james-lawrence
(7471e7f9eb)
2018-01-13 13:46:20 -06:00
ferhat elmas 763deea17e Run gofmt with simplify flag 2017-12-21 23:45:26 +01:00
Timothée Peignier 0f84f73c7b
Add more ColumnType support 2017-08-18 18:22:08 -07:00
Jack Christensen a147e0f3b8 Fix test on Travis 2017-07-22 08:41:13 -05:00
Jack Christensen dfe250c13b Allow either error message 2017-06-02 08:38:27 -05:00
Jack Christensen 07c5b76a24 Allow for either of 2 possible errors from tx context cancelation 2017-05-29 11:39:06 -05:00
Jack Christensen 21d2ed0934 Add mock close 2017-05-22 08:51:23 -05:00
Jack Christensen d1fd222ca5 Add transaction context support 2017-05-20 17:58:19 -05:00
Jack Christensen 2a27fb1817 Remove accidentally committed mock db open 2017-05-20 08:30:47 -05:00
Jack Christensen e5820baebe Add driver.StmtQueryContext support to stdlib.Stmt 2017-05-19 17:31:56 -05:00
Jack Christensen 7f226539a0 Add driver.StmtExecContext support to stdlib.Stmt 2017-05-19 16:18:54 -05:00
Jack Christensen f9cb22e4b8 Add driver.RowsColumnTypeDatabaseTypeName support to stdlib.Rows 2017-05-19 16:05:30 -05:00
Jack Christensen 5ee76a26c8 Add tests for stdlib.Conn.QueryContext 2017-05-19 15:54:55 -05:00
Jack Christensen dbcfa46d8e Add driver.ExecerContext support to stdlib.Conn 2017-05-19 14:57:49 -05:00
Jack Christensen f8d7602270 Add driver.ConnPrepareContext support to stdlib.Conn 2017-05-19 14:31:01 -05:00
Jack Christensen 936cb68866 Add driver.Pinger support to stdlib.Conn 2017-05-19 08:54:08 -05:00
Jack Christensen 479ebdfa19 Add basic pgmock support
Primarily useful for testing pgx itself. Design is still subject to change.
2017-05-13 17:56:54 -05:00
Jack Christensen 6a2a5e28fd Fix issues identified by go vet 2017-05-06 19:48:03 -05:00
Jack Christensen c78d450c19 Add stdlib AcquireConn and ReleaseConn
Also add some documentation.
2017-05-06 19:39:40 -05:00
Jack Christensen 4cbefbb27e Add TxOptions support to stdlib 2017-05-06 16:29:37 -05:00
Jack Christensen ffae1b1345 Remove stdlib.OpenFromConnPool 2017-05-06 15:39:26 -05:00
Jack Christensen 78d344d1ab Add DriverConfig system to stdlib 2017-05-06 15:28:16 -05:00
Jack Christensen 280bce7078 Added log adapter for logrus
Also changed standard logger interface to take a map instead of varargs for
extra data.
2017-04-29 21:28:38 -05:00
Jack Christensen 855b735eae Add log adapters for testing and log15
Make LogLevel a type for Stringer interface.
2017-04-29 20:33:52 -05:00
Terin Stock 1a99c0e5c4 fix(stdlib): lock openFromConnPoolCount while using
Locks the `openFromConnPoolCount` counter while formatting the driver
name and incrementing to avoid a data race of multiple goroutines
modifying the counter and registering the same name. `sql.Register`
panics if a driver name has already been registered.
2017-03-22 08:16:09 -05:00
Jack Christensen ed9e8bb168 Remove skip test for missing json type
All supported versions of PostgreSQL now have json type.
2017-03-03 16:08:00 -06:00
Jack Christensen ecedf3d94a Fix stdlib test logger 2017-01-07 10:16:12 -06:00
Kris Wehner edbd30ea6a Add replication stop mechanism 2016-12-06 15:44:37 -08:00
Jack Christensen a8a990f51b Add test for stdlib query not being logged properly 2016-07-07 07:50:34 -05:00
Jack Christensen b5901f7dba Fix skip JSON tests for old servers 2015-11-12 15:43:48 -06:00
Jack Christensen 09e0cc4815 Skip JSON tests for old PostgreSQL servers 2015-11-12 15:27:20 -06:00
Jack Christensen e1215d9b19 []byte skips encoding/decoding
refs #104
2015-11-12 14:54:25 -06:00
Jack Christensen 26bb780063 inet is known type now -- so use point instead 2015-11-12 13:41:00 -06:00
Jack Christensen 69102e4463 test ipv4 for travis simplicity 2015-10-26 19:08:15 -05:00
Jack Christensen db57394741 test ipv4 for travis simplicity 2015-10-26 18:13:35 -05:00
Jack Christensen acdf5acc5a Add test for stdlib query nil 2015-04-15 08:01:26 -05:00