131 Commits

Author SHA1 Message Date
Jack Christensen
ea65a92de9 Fix long standing text array text format null bug 2019-04-13 14:06:01 -05:00
Jack Christensen
7fbae064bb 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
f779b05f36 Extract scan value to pgtype 2019-04-12 21:31:59 -05:00
Jack Christensen
59003afe8c Fix encode empty value 2019-04-12 21:23:57 -05:00
Jack Christensen
fcbd9e93fa Initial pass at fixing pgtype tests
Many still failing, but at least it compiles now.
2019-04-12 16:58:42 -05:00
Jack Christensen
0ac82007fb Use extracted packages with Go modules 2019-04-05 10:59:47 -05:00
David Bariod
738f3a1027 support binding of []int type to array integer 2019-01-19 11:44:30 -06:00
maxarchx
f9440700e5 Apply UUID string length check before parsing 2018-11-30 15:13:43 +05:00
Jack Christensen
6c9b75d49b Merge pull request #454 from regeda/macaddr-array
macaddr array is introduced
2018-09-01 22:46:13 -04:00
Jack Christensen
8f7c03a47f Fix: do not silently ignore assign NULL to *string
AssignTo can only assign NULL to a **string. Previous code tried to
assign nil to a *string, which did nothing. Correct behavior is to
detect this as an error.
2018-09-01 18:40:42 -05:00
Anthony Regeda
88d317af97 macaddr-array macaddr array is introduced 2018-09-01 16:06:20 +03:00
Damir Vandic
79ba0275de Add the type of the value in all decode error messages 2018-06-04 21:02:20 +02:00
Tarik Demirci
3ec4c6ca23 Allow setting nil to pgtype.Bool 2018-05-17 12:22:48 +02:00
Anthony Regeda
5524d654d3 numeric_with_uint64 numeric array supports both types int64 and uint64 2018-04-24 16:31:31 +03:00
Jack Christensen
9bb19fd8e7 pgtype.JSON(B).Value now returns []byte
Allows scanning jsonb column into *json.RawMessage.

fixes #409
2018-04-14 09:17:56 -05:00
Jack Christensen
46d0f7e1c8 Fix precision loss for test format geometric types
fixes #399
2018-03-17 10:26:03 -05:00
Jack Christensen
898fc86e25 Skip line test of PG 9.3 2018-03-08 08:05:54 -05:00
Jack Christensen
7ed0a8732c Update shopspring decimal integration test
New version of shopspring/decimal improves precision. This broke a test.
2018-03-08 07:40:25 -05:00
Jack Christensen
f078754e05 Skip test based on missing line type
Instead of explicit server version checking. Ubuntu installed version
string is not parsable by go-version. e.g.

10.2 (Ubuntu 10.2-1.pgdg16.04+1)
2018-02-16 21:39:19 -06:00
Jack Christensen
44bb11de82 Import encoding/json package 2018-01-13 18:14:42 -06:00
Jack Christensen
c01e12e351 Merge branch 'patch-1' of https://github.com/eruca/pgx into eruca-patch-1 2018-01-13 18:12:35 -06:00
Iurii Krasnoshchok
91bb74b526 Add support for bpchar type 2018-01-02 12:29:40 +01:00
eruca
fbc0fc7e3e UnmarshalJSON for Int8 missing 2017-12-29 21:09:22 +08:00
Jack Christensen
81b3e79897 Merge pull request #371 from ferhatelmas/gofmt-simplify
Run gofmt with simplify flag
2017-12-23 10:32:44 -06:00
Jack Christensen
5bd04dc568 Add test for record with unknown OID 2017-12-23 10:24:09 -06:00
ferhat elmas
645e646183 Run gofmt with simplify flag 2017-12-21 23:45:26 +01:00
Iurii Krasnoshchok
e22e7e67ec Return error on unknown oid while decoding record instead of panic 2017-12-20 14:47:52 +01:00
Jack Christensen
a01653c3df Add support for bit type 2017-11-18 21:13:34 -06:00
Jack Christensen
4e6de12a62 Fix missing interval mapping 2017-11-17 09:37:57 -06:00
Jack Christensen
3f02d66ae0 Detect erroneous JSON(B) encoding
JSON(B) automatically marshals any value. Avoid marshalling values of
pgtype.JSON and pgtype.JSONB. The caller certainly meant to call on a
pointer.

See https://github.com/jackc/pgx/issues/350 for discussion.

refs #350
2017-11-04 19:09:24 -05:00
Jack Christensen
4e334054dd Fix ranges with text format where end is unbounded
fixes #342
2017-11-04 14:03:46 -05:00
Jack Christensen
5ab54cb24f Add String method to pgtype.BoundType
Character representation is much easier to read than numeric.
2017-11-04 13:47:03 -05:00
Jack Christensen
6618ea669e Use named value instead of literal 2017-11-04 13:37:47 -05:00
Jack Christensen
5ba28cf2c5 Add support for array of enum
fixes #338
2017-10-17 20:31:11 -05:00
Jack Christensen
3453586e89 Add UnmarshalJSON to a few types 2017-09-29 15:26:37 -05:00
Jack Christensen
2e630dddf9 Fix decoding row with same type values
Row decoding was reusing and returning connection owned values for
decoding. Instead allocate new value each time.

fixes #313
2017-08-29 15:38:45 -05:00
Jack Christensen
703ce85513 Generate UUIDArray from template
- Fix error in Set
- Specifically handle untyped nil
2017-08-29 14:33:25 -05:00
Kelsey Francis
2dfcf74f62 Add UUIDArray type
Also change UUID.Set() to convert nil to NULL in order for
UUIDArray.Set() to support converting [][]byte slices that contain nil.
2017-08-27 19:36:53 -07:00
Jack Christensen
9ee71598ee Merge pull request #306 from cyberdelia/rows
Add more ColumnType support
2017-08-22 14:21:47 -05:00
Timothée Peignier
43c2b979d0 Add more ColumnType support 2017-08-18 18:22:08 -07:00
Wei Congrui
f18a22e066 Fix numeric EncodeBinary bug 2017-08-18 15:20:39 +08:00
Jack Christensen
10fa3a6497 Return error on MarshalJSON of status Undefined
Previously "undefined" was returned as a value. While this is a
valid JavaScript value, it is not valid JSON.
2017-08-12 16:40:18 -05:00
Jack Christensen
a5f166bd21 Use github.com/pkg/errors 2017-06-04 21:30:03 -05:00
Jack Christensen
654adbdd4a Use Go casing convention for CID/TID/XID/CIDR 2017-06-03 12:01:49 -05:00
Jack Christensen
01fa5960b2 Use Go casing convention for ACLItem 2017-06-03 11:58:40 -05:00
Jack Christensen
aab8b77215 Use Go casing convention for JSON(B) 2017-06-03 11:57:14 -05:00
Jack Christensen
496c5a4dff Use Go casing convention for UUID 2017-06-03 11:54:57 -05:00
Jack Christensen
2140814606 Use Go casing convention for OID 2017-06-03 11:53:49 -05:00
Jack Christensen
071de0b674 Fix shopsprint-numeric test 2017-05-20 09:46:06 -05:00
Jack Christensen
1f1677ba5e Ensure shopspring-numeric tests run 2017-05-20 09:44:15 -05:00