Commit Graph

439 Commits (732889728f30c6a6a7188d2007696cd3a67c4922)

Author SHA1 Message Date
Jack Christensen 8f4178b3d3 Use github.com/pkg/errors 2017-06-04 21:30:03 -05:00
Jack Christensen 8712627257 Use Go casing convention for CID/TID/XID/CIDR 2017-06-03 12:01:49 -05:00
Jack Christensen 24fb04edb5 Use Go casing convention for ACLItem 2017-06-03 11:58:40 -05:00
Jack Christensen 6688466123 Use Go casing convention for JSON(B) 2017-06-03 11:57:14 -05:00
Jack Christensen 3bdc94cee2 Use Go casing convention for UUID 2017-06-03 11:54:57 -05:00
Jack Christensen 27ab289096 Use Go casing convention for OID 2017-06-03 11:53:49 -05:00
Jack Christensen b8c043780d Fix shopsprint-numeric test 2017-05-20 09:46:06 -05:00
Jack Christensen 104192725a Ensure shopspring-numeric tests run 2017-05-20 09:44:15 -05:00
Jack Christensen dc753bf2a3 Fix TestHstoreArrayTranscode 2017-05-20 08:42:39 -05:00
Jack Christensen aa2bc93e31 Fix TestIntervalNormalize 2017-05-20 08:39:53 -05:00
Jack Christensen 6529b91111 Fix TestNumericNormalize 2017-05-20 08:38:27 -05:00
Jack Christensen ace282df66 Test &pgtype.QChar 2017-05-20 08:36:40 -05:00
Jack Christensen a904e672c1 Uncomment Hstore tests 2017-05-20 08:34:20 -05:00
Jack Christensen 6a2a5e28fd Fix issues identified by go vet 2017-05-06 19:48:03 -05:00
Jack Christensen 6e64a0c867 Refactor pgio and types to append buffers 2017-05-02 20:38:26 -05:00
Jack Christensen 932caef600 pgtype DecodeText and DecodeBinary do not copy
They now take ownership of the src argument.

Needed to change Scan to make a copy of []byte arguments as lib/pq apparently
gives Scan a shared memory buffer.
2017-04-29 12:23:51 -05:00
Jack Christensen 73471ea3fe Use pgx.ParseConnectionString in test helper
This allows using URI or DSN for database connection information. DSN allows
using unix domain sockets.
2017-04-14 17:21:32 -05:00
Jack Christensen f7d3c4e151 Replace DATABASE_URL with PGX_TEST_DATABASE
PGX_TEST_DATABASE is much less likely to collide with another environment
variable. This is especially valuable when using direnv to automatically set
environment variables.
2017-04-14 17:11:39 -05:00
Jack Christensen cab445ddd2 Add satori-uuid type
Make pgtype.EncodeValueText public
2017-04-14 16:46:39 -05:00
Jack Christensen a8c350c77d Use pointer methods for all struct pgtypes
Now no need to no whether certain interfaces are implemented by struct or
pointer to struct.
2017-04-14 13:08:05 -05:00
Jack Christensen f418255c24 Finish extraction of pgtype test helpers 2017-04-14 12:38:33 -05:00
Jack Christensen e4451b47b2 Add shopspring.Numeric
This adds PostgreSQL numeric mapping to and from
github.com/shopspring/decimal.

Makes pgtype.NullAssignTo public as external types need this functionality.

Begin extraction of pgtype testing functionality so it can easily be used by
external types.
2017-04-14 12:24:44 -05:00
Jack Christensen fe7d9d3462 Add MarshalJSON to a few types 2017-04-13 21:58:19 -05:00
Jack Christensen 76c0b9ee90 Skip line tests on when server version < PG 9.4 2017-04-11 20:16:41 -05:00
Jack Christensen 7b1f461ec3 Add simple protocol suuport with (Query|Exec)Ex 2017-04-10 08:58:51 -05:00
Jack Christensen 54d9cbc743 Add pgtype.Varbit 2017-04-05 07:54:41 -05:00
Jack Christensen 52b58b88a6 Fix pgtype.Inet.AssignTo assigning reference
AssignTo should always assign copy.
Added documentation for AssignTo interface.
2017-04-04 21:13:00 -05:00
Jack Christensen e5c48b17f2 Add pgtype.Macaddr 2017-04-04 21:07:27 -05:00
Jack Christensen 5be6819a8c Add pgtype.Circle
Also rename Point.Vec2 to Point.P to conform to rest of geometric types.
2017-04-04 20:39:48 -05:00
Jack Christensen dc71bedebf Add pgtype.Polygon 2017-04-04 20:30:04 -05:00
Jack Christensen 26e92b12c2 Add pgtype.Uuid 2017-04-04 20:24:01 -05:00
Jack Christensen d14de1d1fc Add path 2017-04-04 08:40:41 -05:00
Jack Christensen 365005d207 Add pgtype.Lseg 2017-04-04 08:16:02 -05:00
Jack Christensen 5394aa9a2b Add pgtype.Line 2017-04-04 08:04:54 -05:00
Jack Christensen 06822bebe0 Add pgtype.Box 2017-04-03 19:47:36 -05:00
Jack Christensen 5a2feadf11 Add pgtype.Point 2017-04-03 17:53:32 -05:00
Jack Christensen c09c356b19 Add pgtype.NumericArray 2017-04-03 07:46:45 -05:00
Jack Christensen 6ca1c1e41e Add pgtype.Numrange 2017-04-03 07:35:19 -05:00
Jack Christensen 5ad2c4e2b9 Add pgtype.Numeric 2017-04-01 23:33:04 -05:00
Jack Christensen 09078d2470 Add interval type 2017-03-31 20:11:18 -05:00
Jack Christensen fffeb1d5dc Add daterange, tsrange, and tstzrange 2017-03-24 14:17:49 -05:00
Jack Christensen 7312fb20e8 Add Int8range
Add code generation for ranges
2017-03-24 13:36:10 -05:00
Jack Christensen 7eae904eba Add int4range 2017-03-23 18:41:52 -05:00
Jack Christensen 120da8df8f Skip jsonb test if no jsonb type 2017-03-20 08:58:28 -05:00
Jack Christensen db6c5daa70 Run goimports as part of array gen script 2017-03-20 08:00:43 -05:00
Jack Christensen bec9bd261b Add database/sql support to pgtype 2017-03-18 21:11:43 -05:00
Jack Christensen 5572c002dc Optionally generate binary array format 2017-03-18 17:38:58 -05:00
Jack Christensen 4d9c44fc01 Factor out duplication in AssignTo 2017-03-18 16:54:08 -05:00
Jack Christensen 264823e6ab Remove unneeded idea file 2017-03-18 15:51:16 -05:00
Jack Christensen 92cff1d961 Simplify []byte scanning 2017-03-18 14:42:36 -05:00
Jack Christensen cf70e6b9f4 Add pgtype.HstoreArray
This required restructuring array types to lookup oid of element instead of
hard-coding it due to hstore having a variable oid.
2017-03-18 12:40:54 -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 ba5f97176a Move not null Oid to pgtype
In preparation to ConnInfo implementation.
2017-03-13 21:34:38 -05:00
Jack Christensen 7ec8d7b343 Fix error message for hstore 2017-03-13 20:23:17 -05:00
Jack Christensen 7bb1f3677d Move hstore to pgtype
Also implement binary format
2017-03-12 17:06:06 -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 aac8fd66f2 Remove Set self support from pgtype
Set having the capability to assign an object of the same type was
inconsistently implemented. Some places it was not implemented at all, some
places it was a shallow copy, some places a deep copy. Given that it doesn't
seem likely to ever be used, and if it is needed it is easy enough to do
outside of the library this code has been removed.
2017-03-11 20:18:56 -06:00
Jack Christensen 5cf4b97681 Document that Decode* must not keep src
- Also fix Bytea.DecodeBinary to not keep src.
2017-03-11 20:12:47 -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 3dc509df94 Rename array files 2017-03-11 16:53:07 -06:00
Jack Christensen 6694e0e618 Move Tid to pgtype 2017-03-11 16:48:37 -06:00
Jack Christensen fa1c81fec4 Move ACLItem to pgtype 2017-03-11 16:13:05 -06:00
Jack Christensen 77c57c780d Add pgtype.ByteaArray
Also fix up quoting array elements for text arrays.
2017-03-11 13:32:32 -06:00
Jack Christensen 1f3e484ca1 pgtype.Encode(Binary|Text) do not write length
To aid in composability, these methods no longer write their own length. This
is especially useful for text formatted arrays and may be useful for future
database/sql compatibility. It also makes the code a little simpler as the
types no longer have to compute their own size.

Along with this, these methods cannot encode NULL. They now return a boolean
if they are NULL. This also benefits text array encoding as numeric arrays
require NULL to be exactly `NULL` while string arrays require NULL to be
`"NULL"`.
2017-03-11 12:45:30 -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 ac9228a1a3 Fix typed_array_gen.sh typo 2017-03-09 21:09:36 -06:00
Jack Christensen bac4af13bb Add bytea 2017-03-09 21:07:40 -06:00
Jack Christensen fa36ad9196 Move "char" to pgtype 2017-03-07 19:39:57 -06:00
Jack Christensen 7b1dbd8558 Move Name to pgtype 2017-03-06 17:55:20 -06:00
Jack Christensen af8519991e Move OID to pgtype 2017-03-05 13:05:49 -06:00
Jack Christensen f66b80c387 Fix comment on XID 2017-03-05 09:18:50 -06:00
Jack Christensen 164bf9eebe Extract pguint32 2017-03-05 09:13:25 -06:00
Jack Christensen cb1c05476f Move XID to pgypte 2017-03-05 09:07:07 -06:00
Jack Christensen 0f68bdcd52 Generalize array template 2017-03-05 08:59:26 -06:00
Jack Christensen 575574cf98 Move cid to pgtype 2017-03-04 22:12:03 -06:00
Jack Christensen fa57904d6b Add text to pgtype 2017-03-04 21:20:56 -06:00
Jack Christensen 4cdea13f0f Add inet and cidr to pgtype 2017-03-04 17:33:41 -06:00
Jack Christensen 2010bea555 Add float4, float8 and arrays 2017-03-04 13:29:04 -06:00
Jack Christensen 3179e2debc Add timestamp to pgtype 2017-03-04 12:36:24 -06:00
Jack Christensen ffb949054d Add arrays to all other pgtypes 2017-03-04 11:48:53 -06:00
Jack Christensen 0e8dd862b1 Add tests for pgtype.Int2Array 2017-03-03 19:19:31 -06:00
Jack Christensen 6a3b22cee8 Add pgtype error cases 2017-03-03 18:39:52 -06:00
Jack Christensen 5b861d0a5f Add tests to more pgtypes
Int4, Int8, Date, Timestamptz
2017-03-03 18:23:26 -06:00
Jack Christensen 9e5d81d8f5 Add test for pgtype.Int2.AssignTo 2017-03-03 17:59:26 -06:00
Jack Christensen 272f095a44 Standardize receiver variable name for pgtype
Conversion functions now use standardized src and dst depending on their role.
2017-03-03 17:35:02 -06:00
Jack Christensen 2e2b11be34 Add more tests for pgtype.Bool 2017-03-03 17:15:05 -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