Commit Graph

367 Commits (c7d03eb5554c78db59563b04630e989b07b3fe45)

Author SHA1 Message Date
Jack Christensen c7d03eb555 Add RowsFromResultReader 2019-04-24 15:57:50 -05:00
Jack Christensen a19ca0638f Reorganize conn and rows 2019-04-24 14:16:52 -05:00
Jack Christensen 1b8f0016e9 Split pgtype into own repo 2019-04-20 19:20:00 -05:00
Jack Christensen cc3461e65d Use golang.org/x/xerrors 2019-04-20 17:43:44 -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 b7e56b003a Replace lastStmtSent with pgconn support 2019-04-20 17:12:20 -05:00
Jack Christensen 35a0f64876 Pass ctx to PgConn.Prepare 2019-04-20 12:06:11 -05:00
Jack Christensen de40fea100 Remove unused variables 2019-04-20 12:00:07 -05:00
Jack Christensen 66625e6489 Prepare takes context
Also remove PrepareEx. It's primary usage was for context. Supplying
parameter OIDs is unnecessary when you can type cast in the query SQL.
If it does become necessary or desirable to add options back it can be
added in a backwards compatible way by adding a varargs as last
argument.
2019-04-20 11:47:16 -05:00
Jack Christensen 95756b1d7f Deallocate takes context 2019-04-20 11:34:52 -05:00
Jack Christensen 427cfe1c16 Remove unnecessary mux 2019-04-19 16:23:06 -05:00
Jack Christensen 2978a7440a Use pgconn for more conn status 2019-04-19 16:18:47 -05:00
Jack Christensen ae73ca2da1 Update to more effecient pgconn 2019-04-19 15:55:45 -05:00
Jack Christensen 1b7ff4d774 Remove unused config field 2019-04-13 18:15:02 -05:00
Jack Christensen a6bdd8fd49 Hard code standard PostgreSQL types
Instead of needing to instrospect the database on connection preload the
standard OID / type map. Types from extensions (like hstore) and custom
types can be registered by the application developer. Otherwise, they
will be treated as strings.
2019-04-13 16:45:52 -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 5a374c467f Fix Exec prepared statement with 0 args 2019-04-13 08:37:15 -05:00
Jack Christensen ec0bae649a Fix Ping 2019-04-12 21:42:16 -05:00
Jack Christensen b78ecf26dc Fix encode empty value 2019-04-12 21:23:57 -05:00
Jack Christensen 3901f3ef88 Add Conn.PgConn escape hatch 2019-04-12 16:57:25 -05:00
Jack Christensen 3497f0e8f9 Expose ParseConfig 2019-04-12 16:56:54 -05:00
Jack Christensen 938ee9f434 Rows and Row are now interfaces 2019-04-11 17:58:16 -05:00
Jack Christensen 3e87a8b363 Conn.Close takes context 2019-04-10 14:56:14 -05:00
Jack Christensen 2f948c5249 Remove unused code 2019-04-10 14:33:35 -05:00
Jack Christensen acd15cf589 Remove some obsolete context handling 2019-04-10 14:25:06 -05:00
Jack Christensen 7718ee6207 Remove Ex versions of Query and QueryRow
Always require context and prepend options to arguments if necessary.
2019-04-10 12:12:22 -05:00
Jack Christensen b69179cebb Remove Conn.Listen and Conn.Unlisten
Use Conn.Exec instead to listen or unlisten.
2019-04-10 11:21:40 -05:00
Jack Christensen ec10fdde8b Core of new connection pool 2019-04-09 21:32:01 -05:00
Jack Christensen d619d8913e Remove cancel query logic 2019-04-05 11:04:57 -05:00
Jack Christensen 858d00788a Use extracted packages with Go modules 2019-04-05 10:59:47 -05:00
Jack Christensen d287776d97 Use LogLevel type consistently 2019-03-23 11:32:38 -05:00
Jack Christensen bd181764bf Remove ensureConnectionReadyForQuery 2019-02-02 13:00:31 -06:00
Jack Christensen 577bc57ba5 Remove sendSimpleQuery
In preparation for removing ready for query tracking.
2019-02-02 12:55:12 -06:00
Jack Christensen 1127f31cb3 Remove sendPreparedQuery and simplify sendSimpleQuery 2019-02-02 12:47:12 -06:00
Jack Christensen 52e8d0d679 Remove *Conn.sendQuery 2019-02-02 12:45:10 -06:00
Jack Christensen 1ccd6527f5 Remove rxMsg 2019-02-02 12:41:44 -06:00
Jack Christensen d3a2c1c107 Partial conversion of pgx to use pgconn 2019-01-26 16:46:30 -06:00
Jack Christensen c4050134cc Begin delegation of Prepare to pgconn 2019-01-12 12:19:12 -06:00
Jack Christensen 1257b89df7 Update main pgx package to compile with new pgconn 2019-01-05 19:00:41 -06:00
Jack Christensen e78fd95296 Fix switching CommandTag back to string 2019-01-05 18:53:07 -06:00
Jack Christensen 19a8df16b6 Move notice handling to pgconn 2019-01-02 13:15:26 -06:00
Jack Christensen 89c3d8af5d Remove ExecEx 2019-01-02 12:52:37 -06:00
Jack Christensen 12857ad05b Implement pgx.Conn.Exec in terms of pgconn.PgConn.Exec 2019-01-02 12:32:36 -06:00
Jack Christensen 7f9540438c pgx uses pgconn.CommandTag instead of own definition 2019-01-01 16:55:48 -06:00
Jack Christensen 356a6c43d2 Avoid allocating strings in common message types 2019-01-01 13:47:37 -06:00
Jack Christensen be7a7b44dc Access PID and SecretKey via method 2018-12-31 18:03:55 -06:00
Jack Christensen 1ff8024df9 Access underlying net.Conn via method
Also remove some dead code.
2018-12-31 18:00:08 -06:00
Jack Christensen af2fc36c27 Remove code moved to pgconn 2018-12-31 17:52:11 -06:00
Jack Christensen 378ccb8945 PG error type is *pgconn.PgError 2018-12-31 17:46:56 -06:00
Jack Christensen 103ab963eb pgx uses pgconn CancelRequest 2018-12-31 17:37:07 -06:00