Commit Graph

98 Commits (d1fd222ca574df832934c4b4ada8fd9efd47d25d)

Author SHA1 Message Date
Jack Christensen 2df4b1406b Do not double call termContext in QueryEx
QueryEx was calling termContext and rows.fatal on err of sendPreparedQuery.
rows.fatal calls rows.Close which already calls termContext. This sequence of
calls was causing underlying io timeout errors to be returned instead of context
errors.

In addition, added fatalWriteErr helper method to allow recovery of write
timeout errors where no bytes were written.

This should solve flickering errors on Travis.
2017-05-20 10:58:44 -05:00
Jack Christensen 2a49569747 Remove AfterClose() and Conn() from Tx and Rows 2017-05-06 10:00:49 -05:00
Jack Christensen 8322171bd8 Remove Rows.Fatal 2017-05-06 09:37:49 -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 f04c58338b Introduce pgproto3 package
pgproto3 will wrap the message encoding and decoding for the PostgreSQL
frontend/backend protocol version 3.
2017-04-29 10:02:38 -05:00
Jack Christensen 932ab58cf7 Remove ValueReader 2017-04-12 07:46:25 -05:00
Jack Christensen 7b1f461ec3 Add simple protocol suuport with (Query|Exec)Ex 2017-04-10 08:58:51 -05:00
Jack Christensen bec9bd261b Add database/sql support to pgtype 2017-03-18 21:11:43 -05:00
Jack Christensen 92cff1d961 Simplify []byte scanning 2017-03-18 14:42:36 -05:00
Jack Christensen b9e2f0e814 Remove a lot of unused code 2017-03-18 13:54:42 -05:00
Jack Christensen 19c6689752 Add pgtype.Record and prerequisite restructuring
Because reading a record type requires the decoder to be able to look up oid
to type mapping and types such as hstore have types that are not fixed between
different PostgreSQL servers it was necessary to restructure the pgtype system
so all encoders and decodes take a *ConnInfo that includes oid/name/type
information.
2017-03-18 12:01:16 -05:00
Jack Christensen 26d57356f7 Remove old Scanner and Encoder system 2017-03-12 17:22:04 -05:00
Jack Christensen 3391818847 Add pgtype GenericText and GenericBinary
Rows.Values uses this for unknown types.
2017-03-11 20:28:14 -06:00
Jack Christensen 7da69cd3db Restructure *Rows.Values() to use Get() 2017-03-11 20:07:31 -06:00
Jack Christensen 57494a6a0f Expand pgtype.Value interface
- Include and rename ConvertFrom to Set
- Add Get
- Include AssignTo
2017-03-11 19:53:45 -06:00
Jack Christensen 542eac08c6 Add json/jsonb to pgtype 2017-03-11 18:46:51 -06:00
Jack Christensen 743b98b298 Name PG types as words
Though this doesn't follow Go naming conventions exactly it makes names more
consistent with PostgreSQL and it is easier to read. For example, TIDOID becomes
TidOid. In addition this is one less breaking change in the move to V3.
2017-03-11 17:03:23 -06:00
Jack Christensen 6694e0e618 Move Tid to pgtype 2017-03-11 16:48:37 -06:00
Jack Christensen b0cd63bcf0 Remove unused ScannerV3 2017-03-11 15:44:21 -06:00
Jack Christensen 8162634259 Decode(Text|Binary) now accepts []byte instead of io.Reader 2017-03-10 16:08:47 -06:00
Jack Christensen af8519991e Move OID to pgtype 2017-03-05 13:05:49 -06:00
Jack Christensen fa57904d6b Add text to pgtype 2017-03-04 21:20:56 -06:00
Jack Christensen b1fc8109db Remove AF_INET fetching system
Also remove old encode/decode inet/cidr code. This removed some functionality
from Rows.Values, but that entire system will soon change anyway.
2017-03-04 18:00:51 -06:00
Jack Christensen 0a0c086edd Fix broken stdlib tests 2017-03-03 16:46:50 -06:00
Jack Christensen 908c439317 Use stdlib context 2017-03-03 16:01:06 -06:00
Jack Christensen 5e997e82f4 Initial proof-of-concept for pgtype
Squashed commit of the following:

commit c19454582b
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Mar 3 15:24:47 2017 -0600

    Add AssignTo to pgtype.Timestamptz

    Also handle infinity for pgtype.Date

commit 7329933610
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Mar 3 15:12:18 2017 -0600

    Implement AssignTo for most pgtypes

commit cc3d1e4af8
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Thu Mar 2 21:19:07 2017 -0600

    Use pgtype.Int2Array in pgx

commit 36da5cc217
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Tue Feb 28 21:45:33 2017 -0600

    Add text array transcoding

commit 1b0f18d99f
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 27 19:28:55 2017 -0600

    Add ParseUntypedTextArray

commit 0f50ce3e83
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 27 18:54:20 2017 -0600

    wip

commit d934f27362
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sun Feb 26 17:14:32 2017 -0600

    WIP - beginning text format array parsing

commit 7276ad33ce
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 22:50:11 2017 -0600

    Beginning binary arrays

commit 917faa5a31
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 19:36:35 2017 -0600

    Fix incomplete tests

commit de8c140cfb
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 19:32:22 2017 -0600

    Add timestamptz null and infinity

commit 7d9f954de4
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 18:19:38 2017 -0600

    Add infinity to pgtype.Date

commit 7bf783ae20
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 17:19:55 2017 -0600

    Add Status to pgtype.Date

commit 984500455c
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 16:54:01 2017 -0600

    Add status to Int4 and Int8

commit 6fe76fcfc2
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 16:40:27 2017 -0600

    Extract testSuccessfulTranscode

commit 001647c1da
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 16:15:51 2017 -0600

    Add Status to pgtype.Int2

commit 720451f06d
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Sat Feb 25 15:56:44 2017 -0600

    Add status to pgtype.Bool

commit 325f700b6e
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 17:28:15 2017 -0600

    Add date to conversion system

commit 4a9343e45d
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 16:28:35 2017 -0600

    Add bool to oid based encoding

commit d984fcafab
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 16:15:38 2017 -0600

    Add pgtype interfaces

commit 0f93bfc2de
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 14:48:34 2017 -0600

    Begin introduction of Convert

commit e5707023ca
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 14:10:56 2017 -0600

    Move bool to pgtype

commit bb764d2129
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 13:45:05 2017 -0600

    Add Int2 test

commit 08c49437f4
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 13:44:09 2017 -0600

    Add Int4 test

commit 1672295222
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 24 08:56:59 2017 -0600

    Add int8 tests

commit 83a5447cd2
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Wed Feb 22 18:08:05 2017 -0600

    wip

commit 0ca0ee7206
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 18:56:52 2017 -0600

    wip

commit d2c2baf4ea
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 18:46:10 2017 -0600

    wip

commit f78371da00
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 17:43:39 2017 -0600

    wip

commit 3366699bea
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 14:07:47 2017 -0600

    wip

commit 66b79e9408
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 13:35:37 2017 -0600

    Extract pgio

commit 8b07d97d13
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 13:20:00 2017 -0600

    wip

commit 62f1adb342
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 12:08:46 2017 -0600

    wip

commit a712d25469
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Mon Feb 20 09:30:52 2017 -0600

    wip

commit 4faf97cc58
Author: Jack Christensen <jack@jackchristensen.com>
Date:   Fri Feb 17 22:20:18 2017 -0600

    wip
2017-03-03 15:33:34 -06:00
Jack Christensen 4d56221868 Do not scan binary values into strings
refs #219 and #228
2017-02-16 19:19:45 -06:00
Jack Christensen 7fbff4a495 Merge branch 'context' into v3-experimental 2017-02-12 15:13:47 -06:00
Jack Christensen 048a75406f Fix context query cancellation
Previous commits had a race condition due to not waiting for the PostgreSQL
server to close the cancel query connection. This made it possible for the
cancel request to impact a subsequent query on the same connection. This
commit sets a flag that a cancel request was made and blocks until the
PostgreSQL server closes the cancel connection.
2017-02-11 19:53:18 -06:00
Jack Christensen deac6564ee Implement Query in terms of QueryContext
- Merge Rows.close into Rows.Close
- Merge Rows.abort into Rows.Fatal
2017-02-11 19:16:13 -06:00
Jack Christensen e4f9108e82 wip 2017-02-11 14:59:16 -06:00
Jack Christensen 72b6d32e2f Extracted more context handling 2017-02-07 21:49:58 -06:00
Jack Christensen 004c18e5a2 Begin extracting context handling 2017-02-07 20:35:37 -06:00
Jack Christensen 14eedb4fca Add ConnPool context methods 2017-02-06 18:54:49 -06:00
Jack Christensen 24193ee322 Add QueryRowContext 2017-02-04 15:57:06 -06:00
Jack Christensen 3e13b333d9 Add QueryContext 2017-02-04 15:40:58 -06:00
Jack Christensen 39dad2b795 Merge branch 'master' into v3-experimental 2017-02-04 11:27:12 -06:00
Jack Christensen a52a6bd555 Add PgxScanner interface
Enables types to support database/sql at the same time as pgx.

fixes #232
2017-02-02 20:20:52 -06:00
Jack Christensen 93e5c68f69 Merge branch 'master' into v3-experimental 2016-12-10 12:21:08 -06:00
Jack Christensen f7b6b3f077 Handle json/jsonb in binary to support CopyTo
fixes #189
2016-10-01 11:01:54 -05:00
Jack Christensen 04c02cf3d3 Rename Json(b) to JSON(B) 2016-08-02 13:35:52 -05:00
Jack Christensen 214443deb7 Rename Oid to OID 2016-08-02 13:31:55 -05:00
Jack Christensen 1a4be31e7a Fix Rows.Values with binary varchar
fixes #161
2016-07-07 08:03:26 -05:00
Krzysztof Dryś ed6ee27a22 Copy sql query from prepared statement to rows.
This enables proper logging of sql query when using stdlib.
2016-06-28 11:08:38 +02:00
Jack Christensen 9288322a4f Avoid two memory allocations per query
rows can get log and shouldLog from conn instead of needing copied
to self.
2016-04-30 13:06:59 -05:00
Jack Christensen 932a4d6533 Avoid pointless recursive call 2016-04-30 12:58:36 -05:00
Jack Christensen 6e2cee6294 Prevent every row scan from causing a malloc 2016-04-30 12:54:16 -05:00
Jack Christensen e5ec5851e5 Reduce allocations for row objects 2016-04-30 12:22:36 -05:00
Jack Christensen 04e9fbcc55 Fix some golint errors
- Add comments
- Rename variables
- Remove unnecessary "else"
2016-03-29 15:18:09 -05:00
Jack Christensen 94052ea940 Rows.Scan can ignore column with nil
fixes #130
2016-03-24 14:22:16 -05:00