Commit Graph

202 Commits (9eaeb51e305fa7bed7c74a290242f9d020a55129)

Author SHA1 Message Date
Jack Christensen ad2ce2ce3c Remove internalNativeGoTypeFormats 2017-03-18 14:02:55 -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 ba5f97176a Move not null Oid to pgtype
In preparation to ConnInfo implementation.
2017-03-13 21:34:38 -05:00
Jack Christensen 9cd561f1a5 Remove unused code 2017-03-13 20:14:08 -05:00
Jack Christensen 26d57356f7 Remove old Scanner and Encoder system 2017-03-12 17:22:04 -05:00
Jack Christensen 7bb1f3677d Move hstore to pgtype
Also implement binary format
2017-03-12 17:06:06 -05: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 f10ed4ff5d Remove unused function 2017-03-11 16:14:13 -06:00
Jack Christensen fa1c81fec4 Move ACLItem to pgtype 2017-03-11 16:13:05 -06:00
Jack Christensen b0cd63bcf0 Remove unused ScannerV3 2017-03-11 15:44:21 -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 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 cb1c05476f Move XID to pgypte 2017-03-05 09:07:07 -06:00
Jack Christensen 575574cf98 Move cid to pgtype 2017-03-04 22:12:03 -06:00
Jack Christensen 12ac0c33b8 Remove unused array code from pgx 2017-03-04 21:23:57 -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 005916166a Remove behavior migrated to pgtype 2017-03-04 17:43:12 -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 aabf43a725 Remove types from Decode handled by pgtypes 2017-03-04 09:44:10 -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 47eda78ea1 Refactor huge switch statement 2017-02-16 19:44:50 -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 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 e96c105b55 decodeJSONB works for text and binary format 2016-11-23 12:52:04 -06:00
Jack Christensen c952d48a5c Return first err in decodeJSONB
fixes #212
2016-11-23 12:29:21 -06:00
Manni Wood 3beac831cf Adds formatting notes 2016-11-17 22:25:00 -05:00
Manni Wood 7bd2e85f31 Improves names and comments 2016-11-17 22:18:09 -05:00
Manni Wood 09ee8a9b70 Returns AclItem earlier 2016-11-17 22:08:56 -05:00
Manni Wood bce83fd4ba Better names and efficiency 2016-11-17 21:59:05 -05:00
Manni Wood 3906f7c0d0 Casts aclitem earl to avoid O(2n) 2016-11-17 21:45:46 -05:00
Manni Wood 4b430a254e Improves docs around aclitem[] 2016-11-17 21:38:00 -05:00
Manni Wood 323e2b3f78 Adds aclitem helper func tests 2016-11-15 22:22:57 -05:00
Manni Wood 7b3488b088 Makes parseAclItemArray helpers private 2016-11-15 22:14:08 -05:00
Manni Wood 1ebcbab8a3 Removes unneeded XXXs 2016-11-15 22:09:55 -05:00
Manni Wood 6ec7e84dbf Handles parse error for aclitem[] 2016-11-15 22:05:52 -05:00
Manni Wood 5712d02e1b Gets tricky acl parsing working 2016-11-15 21:53:22 -05:00
Manni Wood 9b8e3043ba Handles empty aclitems 2016-11-12 12:46:31 -05:00
Manni Wood 104c01df21 Handles aclitem lists of 1+ 2016-11-12 12:28:31 -05:00
Manni Wood 7d7bc87396 Moves sql outside of struct 2016-11-12 12:01:03 -05:00
Manni Wood 36bdbd7cb1 Parses actual return string
...but only handles aclitem[] size 1
2016-11-12 11:56:04 -05:00
Manni Wood a80ef6d35f Actually takes the first arg 2016-11-12 11:46:07 -05:00
Manni Wood c9292c44e6 Adds aclitem[] len 1 ability 2016-11-12 11:42:07 -05:00
Manni Wood df033d499f Adds a tricky user to test
This allows us to test aclitem encoding
with tricky SQL identifiers. The user actually
has to exist, or the aclitem will be incorrect.
2016-10-27 21:57:46 -04:00
Manni Wood f73791c6c9 Adds NullAclItem 2016-10-27 21:33:56 -04:00
Manni Wood b198efdcef Merge branch 'master' into add-name 2016-10-01 13:57:21 -04:00
Manni Wood c8575984d8 Removes name length convenience method 2016-10-01 13:46:48 -04:00
Jack Christensen f7b6b3f077 Handle json/jsonb in binary to support CopyTo
fixes #189
2016-10-01 11:01:54 -05:00
Manni Wood ca96431b5e Fixes a documentation typo 2016-09-29 00:36:56 -04:00
Manni Wood c25e3dd826 Adds Name/NullName types 2016-09-29 00:25:19 -04:00
Manni Wood cc1ad69c32 Adds NullOid type
Oids are rarely null, but they can be: on the right hand
side of a left join, for instance.

This commit takes moves the Oid type def from
messages.go to values.go, so it can live along side the
other types. It removes the special case for testing Oid
and now leverages the TestNullX test instead.
2016-09-20 21:11:30 -04:00
Manni Wood 256cbf0010 Adds example column to pgx.Char doc 2016-09-19 20:48:31 -04:00
Manni Wood 88ac6ff200 Reformats "char" comment a bit 2016-09-19 20:43:03 -04:00
Manni Wood 94203a55ad Adds same comment fix about binary settings as on master 2016-09-19 20:40:13 -04:00
Manni Wood 818dcbf2b6 Adds "char" type 2016-09-17 23:11:59 -04:00
Manni Wood 00bd3062e0 Figures out tid binary wire formatting 2016-09-11 17:33:34 -04:00
Manni Wood 72084ad1b5 Gets Tid parsing working 2016-09-11 10:02:27 -04:00
Manni Wood 55bd3a9134 Adds binary tid decode 2016-09-10 20:37:02 -04:00
Manni Wood 57b3037e96 Adds tid oid 2016-09-10 14:49:39 -04:00
Manni Wood 60ab3403ab Adds Cid/NullCid type 2016-09-05 12:15:34 -04:00
Manni Wood 7adabc9b93 Improves documentation of Xid type 2016-09-05 10:59:24 -04:00
Manni Wood 30d16e722e Merge branch 'master' into add-xid 2016-09-05 10:24:10 -04:00
Manni Wood 99bfc154f0 Makes Oid casting consistent
Also fixes uint32 encoding in a few places.
2016-09-03 18:19:33 -04:00
Manni Wood 1061b1f978 Adds Xid type 2016-09-03 18:04:55 -04:00
Martin Hamrle 9f6b99e332 Cleanups
Cleanups suggested by gometalinter tools.
2016-08-30 20:05:44 +02:00
Jack Christensen e47373227b Rename Uuid to UUID 2016-08-02 16:21:32 -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 71d8b5b438 Encode / decode named types with compatible underlying type
Handle string, int, int8, int16, int32, int64, uint, uint8, uint16,
uint32, uint64.
2016-07-05 18:01:44 -05:00
Jack Christensen 30cb421551 Add basic record to []interface{} decoding
refs #155
2016-06-21 15:00:47 -05:00
anil1596 e334907105 In func encodeUInt(), case Int8Oid:, changed value to int64(value) and math.MaxInt64 to int64(math.MaxInt64) 2016-06-01 13:00:49 +05:30
John Barker a282d9df90 Cache connection properties in the pool
This is a quick attempt to improve connection startup time by caching
the properties that are loaded when a connection is ready in the pool,
so that further connections don't incur this cost.

I'm not entirely convinced by the interface here, perhaps these 3 items
could live in their own type and that be passed around for clearer code,
but the idea works well.
2016-05-10 18:34:26 -04:00
Jack Christensen 7323d3f5a7 Encode/decode [][]byte to/from bytea[]
fixes #139
2016-04-30 19:07:29 -05:00
Jack Christensen 88acc7e19f Encode and decode between all integer types
fixes #138
2016-04-28 15:28:38 -05:00
Jack Christensen 623ba1eeb1 Add scan to uint16
refs #138
2016-04-27 08:26:59 -05:00
Jack Christensen d62da82ab1 Support decoding inet/cidr to net.IP
fixes #137
2016-04-22 16:00:11 -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 05790e007c Fix 32-bit GOARCH
fixes #129
2016-03-23 16:57:31 -05:00
m1kc (Max Musatov) aac1fd86a4 []uint16, []uint32, and []uint64 encoding and decoding. 2016-03-17 12:14:48 +03:00
Nick K 7f9f79656b Fixed typo for uint64 data loss checks' error 2016-03-11 11:54:07 +03:00
Nick K 0ea1a5245c Now throwing errors on uint32/uint64 possible data loss 2016-03-11 11:52:21 +03:00
Nick K e40f08e107 Added uint encoder/decoder 2016-03-04 11:25:28 +03:00
Jack Christensen c6b6d7bad7 Expose encoding and decoding functions 2016-02-15 13:57:11 -06:00
Jack Christensen 30feade829 Fix encodeJson returning err 2016-02-15 12:40:13 -06:00
Jack Christensen 73bd33b215 Do not encode Go float64 to a PostgreSQL float4
The automatic conversion of float64 to float32 could cause loss of
precision.
2015-12-21 13:12:11 -06:00
Blake Gentry 6fc16d96c7 fix copy/paste doc mistakes
refer to the correct field names in docs for for all nullable types
2015-11-29 21:59:42 -08:00
Jack Christensen and Jake Worth c726a51450 Add inet[] and cidr[] support 2015-09-29 13:23:26 -05:00