Commit Graph

129 Commits (0f77a2d028414a616da37d0a07813dfaf61e5d5f)

Author SHA1 Message Date
Jack Christensen 3179e2debc Add timestamp to pgtype 2017-03-04 12:36:24 -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 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
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 4ba4d0097a Gets formatting correct for tricky ingoing string
...but broken for outgoing string; must fix next
2016-11-13 18:08:36 -05:00
Manni Wood 9b8e3043ba Handles empty aclitems 2016-11-12 12:46:31 -05:00
Manni Wood b12a1bb8bc Removes scan from test struct 2016-11-12 12:38:30 -05:00
Manni Wood 96b652cc95 Makes aclitem test types more specific 2016-11-12 12:36:55 -05:00
Manni Wood 104c01df21 Handles aclitem lists of 1+ 2016-11-12 12:28:31 -05:00
Manni Wood d9ab219753 Pulls out aclitem[] assert func 2016-11-12 12:07:48 -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 c1177f292e Adds note on why tricky test user has to actually exist 2016-10-27 22:02:12 -04: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 7dec41fb6d Fixes TestNullX test of NullName 2016-10-10 20:41:57 -04:00
Manni Wood 46db1eb9b8 Merge branch 'master' into add-name 2016-10-08 09:39:18 -04:00
Nathaniel Waisbrot c14c63d63c
Fix test failure when DB and client are not in the same time zone
Explicitly set the time zone to UTC in the database and in the
test expectation. Then compare the two times in the client-local
time zone.
2016-10-03 08:48:05 -04:00
Manni Wood c8575984d8 Removes name length convenience method 2016-10-01 13:46:48 -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 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 60ab3403ab Adds Cid/NullCid type 2016-09-05 12:15:34 -04:00
Manni Wood 1061b1f978 Adds Xid type 2016-09-03 18:04:55 -04:00
Manni Wood 7dbfd4bf4b Switches oid to uint32 2016-09-01 22:55:18 -04:00
Martin Hamrle 9f6b99e332 Cleanups
Cleanups suggested by gometalinter tools.
2016-08-30 20:05:44 +02: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
Jack Christensen 7323d3f5a7 Encode/decode [][]byte to/from bytea[]
fixes #139
2016-04-30 19:07:29 -05:00
Jack Christensen e3859aa03e Test should not panic if no err 2016-04-30 12:43:18 -05:00
Jack Christensen d62da82ab1 Support decoding inet/cidr to net.IP
fixes #137
2016-04-22 16:00:11 -05:00
m1kc (Max Musatov) aac1fd86a4 []uint16, []uint32, and []uint64 encoding and decoding. 2016-03-17 12:14:48 +03:00
Jack Christensen edfdaf15c6 Rows.Scan errors now include which argument caused error 2015-11-20 14:02:49 -06:00
Jack Christensen and Jake Worth c726a51450 Add inet[] and cidr[] support 2015-09-29 13:23:26 -05:00
Jack Christensen 4987d5425e Fix JSON encoding of *string 2015-09-21 13:40:47 -05:00
Jack Christensen 8b296b9d58 Encode from net.IP to inet and cidr 2015-09-09 18:49:20 -05:00
Jack Christensen 4ff46becfc Generalize pointer to string uuid transcoding to any non-varchar/text type 2015-09-09 18:07:05 -05:00
Joseph Glanville 2184ffb5e9 Add support for encoding to UUID from string types 2015-09-10 00:58:51 +10:00
Jonathan Rudenberg 272262536b Add support for pointers to pointers
Using types like **string allows the inner pointer to be nil’ed out,
avoiding the need for NullX types.

Signed-off-by: Jonathan Rudenberg <jonathan@titanous.com>
2015-09-08 11:52:58 -05:00
Jack Christensen 4ebb0508b6 Encode dates in binary format
- Also allow NullTime to handle dates
2015-09-08 11:51:28 -05:00
Jack Christensen fff5b9759b Add tests for other types of JSON objects 2015-09-04 13:40:59 -05:00
Jack Christensen 9d200733b9 Merge common JSON and JSONB 2015-09-04 11:04:51 -05:00
Jack Christensen 7383e240d4 Skip JSON/JSONB tests for older PostgreSQL servers 2015-09-04 09:13:15 -05:00
Joseph Glanville 0013733535 Add JSON/JSONB support 2015-09-04 18:15:46 +10:00
Jack Christensen f672dd2732 Remove mustPrepare from tests
Now that Query/QueryRow always prepares statements when given SQL
text there is no need to test raw SQL and prepared statements of
the same query.
2015-09-03 13:39:28 -05:00
Jack Christensen fd39261551 Use binary transcoding for inet/cidr
fixes #87
2015-09-03 11:39:32 -05:00
Jack Christensen 9af068add0 Add cidr support 2015-09-03 09:42:01 -05:00
Jack Christensen d494f83cd1 Add inet support 2015-09-03 09:33:19 -05:00
Jack Christensen 879ca97228 Fix Scanner that does not read entire value 2015-04-09 17:46:58 -05:00
Laurent Debacker e511c267de Unit test demonstrating infinite loop
Hi, I have just created a unit test demonstrating an infinite loop during cleanup in a defered function. The CPU will just sit at 100% use. I know this is a special case, but it's would be nice if a buggy Scanner doesn't make cleanup functions like rows.Close run indefinitely. Sadly, I'm not sure how to fix/improve this.
2015-04-09 22:10:55 +02:00
Jack Christensen 654508050c Add failing test for empty array from debackerl 2015-04-08 16:53:08 -05:00
Jack Christensen 3dcb2fcbfc Add test for empty array between other values 2015-04-08 14:50:57 -05:00
Jack Christensen 92d38b7f37 Add test for empty array decoding 2015-04-08 14:46:14 -05:00
Jack Christensen fc484ab5fd Allow NullTime to work with timestamp 2015-03-27 18:14:36 -04:00
Jack Christensen d77e599ce6 Add timestamptz[] support 2014-12-23 18:17:39 -06:00
Jack Christensen 8743d96be4 Fix swapped test names 2014-12-23 17:33:38 -06:00
Karl Seguin 109b55f9de support decoding of []time.Time and []bool 2014-12-21 14:35:38 +07:00
Jack Christensen 61bf7d841a Always use bound parameters
PostgreSQL has two string syntaxes, one that allows backslash escapes and one
that does not (SQL standard conforming strings). By default PostgreSQL uses
standard conforming strings. QuoteString was only designed for use with
standard conforming strings. If PostgreSQL was configured with certain
combinations of the standard_conforming_strings and backslash_quote settings,
QuoteString may not correctly sanitize strings. QuoteString was only used in
unprepared queries, bound parameters are used for prepared queries.

This commit alters pgx to use always use bound parameters.

As a consequence of never doing string interpolation there is no need to have
separate Text and Binary encoders. There is now only the Encoder interface.

This change had a negative effect on the performance of simple unprepared
queries, but prepared statements should already be used for performance.

fixes #26

https://github.com/jackc/pgx/issues/26
2014-07-18 16:51:11 -05:00
Jack Christensen f215c8bf5f Change Scan / decodeX to use ValueReader
Also improve Rows.Scan and Rows.Values error handling.
2014-07-12 19:43:27 -05:00
Jack Christensen 1cb3ac91f3 EncodeBinary checks oid of param 2014-07-12 09:46:33 -05:00
Jack Christensen 92b204309c Remove commented out test 2014-07-12 08:20:06 -05:00
Jack Christensen 6c1c819a5e Error detection for mismatched types 2014-07-11 16:07:08 -05:00
Jack Christensen 4bdefced66 Add NullTime 2014-07-11 15:25:26 -05:00
Jack Christensen 724adde815 Add NullBool 2014-07-11 15:00:13 -05:00
Jack Christensen 7ca95d7f73 Add NullString
Changes EncodeText interface to work for null values in SQL interpolation
and in prepared statements text format.
2014-07-11 14:16:25 -05:00
Jack Christensen 6eac791f51 Encode* should be value, not pointer to value 2014-07-11 11:44:02 -05:00
Jack Christensen 32a368a75b Add more Null* types
* NullFloat32
* NullFloat64
* NullInteger16
* NullInteger32
2014-07-11 11:41:32 -05:00
Jack Christensen 24395d98df Add more testing of Encode*
Handle case where TextEncoder is used to a core type that the driver
could otherwise have handled as binary.
2014-07-11 11:16:12 -05:00
Jack Christensen 566d713285 More tests and bug fixes 2014-07-11 07:50:44 -05:00
Jack Christensen d7b402cd65 Test SanitizeSql for more types 2014-07-09 08:30:06 -05:00
Jack Christensen 6df06f043d Remove obsolete tests 2014-07-09 08:11:47 -05:00
Jack Christensen 89bcc0670c Unify serialization code in values.go 2014-07-09 08:05:03 -05:00