441 Commits

Author SHA1 Message Date
Jack Christensen
7e13db4538 Finish import of pgtype repo
Fix some tests that broke by merging repos
Tweak readme wording
2021-12-04 13:45:57 -06:00
Jack Christensen
44214b7854 Import to pgx main repo in pgtype subdir 2021-12-04 13:07:54 -06:00
Jack Christensen
1b8f0016e9 Split pgtype into own repo 2019-04-20 19:20:00 -05:00
Jack Christensen
cc3461e65d Use golang.org/x/xerrors 2019-04-20 17:43:44 -05:00
Jack Christensen
efb333df6b Fix go modules
Wow. This is fun. Sure is easy to get modules wrong when upgrading a v2+
project.
2019-04-20 17:41:08 -05:00
Jack Christensen
66625e6489 Prepare takes context
Also remove PrepareEx. It's primary usage was for context. Supplying
parameter OIDs is unnecessary when you can type cast in the query SQL.
If it does become necessary or desirable to add options back it can be
added in a backwards compatible way by adding a varargs as last
argument.
2019-04-20 11:47:16 -05:00
Jack Christensen
57b149e8e9 Remove unused scan float into numeric 2019-04-13 18:06:09 -05:00
Jack Christensen
5cc4796c96 Test domains when registered and unregistered
Fix bug assigning to unknown type.
2019-04-13 17:09:51 -05:00
Jack Christensen
a6bdd8fd49 Hard code standard PostgreSQL types
Instead of needing to instrospect the database on connection preload the
standard OID / type map. Types from extensions (like hstore) and custom
types can be registered by the application developer. Otherwise, they
will be treated as strings.
2019-04-13 16:45:52 -05:00
Jack Christensen
6c0de9ff37 More transcoding type tests
Text every combination of text and binary arguments and text and binary
results.
2019-04-13 14:17:04 -05:00
Jack Christensen
93aa913677 Fix long standing text array text format null bug 2019-04-13 14:06:01 -05:00
Jack Christensen
c53c9e6eb5 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
f756d9d591 Extract scan value to pgtype 2019-04-12 21:31:59 -05:00
Jack Christensen
b78ecf26dc Fix encode empty value 2019-04-12 21:23:57 -05:00
Jack Christensen
072391f4a8 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
858d00788a Use extracted packages with Go modules 2019-04-05 10:59:47 -05:00
David Bariod
903a7734c5 support binding of []int type to array integer 2019-01-19 11:44:30 -06:00
maxarchx
b1a17cf284 Apply UUID string length check before parsing 2018-11-30 15:13:43 +05:00
Jack Christensen
e44f0f24c4
Merge pull request #454 from regeda/macaddr-array
macaddr array is introduced
2018-09-01 22:46:13 -04:00
Jack Christensen
302c74f214 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
b0702cf2b1
macaddr-array macaddr array is introduced 2018-09-01 16:06:20 +03:00
Damir Vandic
fa045b7a4b Add the type of the value in all decode error messages 2018-06-04 21:02:20 +02:00
Tarik Demirci
1149b0f015
Allow setting nil to pgtype.Bool 2018-05-17 12:22:48 +02:00
Anthony Regeda
88c559bbcd
numeric_with_uint64 numeric array supports both types int64 and uint64 2018-04-24 16:31:31 +03:00
Jack Christensen
5297846239 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
cb4431028c Fix precision loss for test format geometric types
fixes #399
2018-03-17 10:26:03 -05:00
Jack Christensen
a07b87eb8b Skip line test of PG 9.3 2018-03-08 08:05:54 -05:00
Jack Christensen
b0c9bbbf71 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
55ca9db5d5 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
a680463718 Import encoding/json package 2018-01-13 18:14:42 -06:00
Jack Christensen
6ca9b1279e Merge branch 'patch-1' of https://github.com/eruca/pgx into eruca-patch-1 2018-01-13 18:12:35 -06:00
Iurii Krasnoshchok
90de4adfa7 Add support for bpchar type 2018-01-02 12:29:40 +01:00
eruca
de72a2c730
UnmarshalJSON for Int8 missing 2017-12-29 21:09:22 +08:00
Jack Christensen
4fb47ac8c9
Merge pull request #371 from ferhatelmas/gofmt-simplify
Run gofmt with simplify flag
2017-12-23 10:32:44 -06:00
Jack Christensen
21dad60cf7 Add test for record with unknown OID 2017-12-23 10:24:09 -06:00
ferhat elmas
763deea17e Run gofmt with simplify flag 2017-12-21 23:45:26 +01:00
Iurii Krasnoshchok
0bc891e780 Return error on unknown oid while decoding record instead of panic 2017-12-20 14:47:52 +01:00
Jack Christensen
5e08a4a5f1 Add support for bit type 2017-11-18 21:13:34 -06:00
Jack Christensen
5785eea828 Fix missing interval mapping 2017-11-17 09:37:57 -06:00
Jack Christensen
f6d37536c4 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
425fbe1c88 Fix ranges with text format where end is unbounded
fixes #342
2017-11-04 14:03:46 -05:00
Jack Christensen
d6cd3b1962 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
e16749774d Use named value instead of literal 2017-11-04 13:37:47 -05:00
Jack Christensen
ab9a1af65b Add support for array of enum
fixes #338
2017-10-17 20:31:11 -05:00
Jack Christensen
63f58fd32e Add UnmarshalJSON to a few types 2017-09-29 15:26:37 -05:00
Jack Christensen
47c0e9cbac 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
4e26b04d6e Generate UUIDArray from template
- Fix error in Set
- Specifically handle untyped nil
2017-08-29 14:33:25 -05:00
Kelsey Francis
1e36edf4b0 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
5e91defb41 Merge pull request #306 from cyberdelia/rows
Add more ColumnType support
2017-08-22 14:21:47 -05:00
Timothée Peignier
0f84f73c7b
Add more ColumnType support 2017-08-18 18:22:08 -07:00