199 Commits

Author SHA1 Message Date
Jack Christensen
3b7c47a2a7 Add EnumType 2020-05-05 13:23:14 -05:00
Jack Christensen
ab5e597826 Avoid type assertion in Scan
Before:
BenchmarkConnInfoScanInt4IntoBinaryDecoder-16           79859755                14.6 ns/op             0 B/op          0 allocs/op
BenchmarkConnInfoScanInt4IntoGoInt32-16                 38969991                30.0 ns/op             0 B/op          0 allocs/op

After:
BenchmarkConnInfoScanInt4IntoBinaryDecoder-16    	458046958	        13.3 ns/op	       0 B/op	       0 allocs/op
BenchmarkConnInfoScanInt4IntoGoInt32-16          	275791776	        20.6 ns/op	       0 B/op	       0 allocs/op
2020-05-02 20:30:58 -05:00
Jack Christensen
18c64dceee ConnInfo Scan optimizes common native types
This comes at a small expense to scanning into a type that implements
TextDecoder or BinaryDecoder but I think it is a good trade.

Before:
BenchmarkConnInfoScanInt4IntoBinaryDecoder-16    	88181061	        12.4 ns/op	       0 B/op	       0 allocs/op
BenchmarkConnInfoScanInt4IntoGoInt32-16          	30402768	        36.8 ns/op	       0 B/op	       0 allocs/op

After:
BenchmarkConnInfoScanInt4IntoBinaryDecoder-16    	79859755	        14.6 ns/op	       0 B/op	       0 allocs/op
BenchmarkConnInfoScanInt4IntoGoInt32-16          	38969991	        30.0 ns/op	       0 B/op	       0 allocs/op
2020-05-02 20:18:51 -05:00
Jack Christensen
6357d3b3f3 Avoid extra type assertion on native type Scan path
Before:
BenchmarkConnInfoScanInt4IntoBinaryDecoder-16    	89744814	        12.5 ns/op	       0 B/op	       0 allocs/op
BenchmarkConnInfoScanInt4IntoGoInt32-16          	27688370	        41.1 ns/op	       0 B/op	       0 allocs/op

After:
BenchmarkConnInfoScanInt4IntoBinaryDecoder-16    	88181061	        12.4 ns/op	       0 B/op	       0 allocs/op
BenchmarkConnInfoScanInt4IntoGoInt32-16          	30402768	        36.8 ns/op	       0 B/op	       0 allocs/op
2020-05-02 17:31:53 -05:00
Jack Christensen
a4dd4af756 Add benchmarks for scan into native type vs decoder 2020-05-02 17:31:34 -05:00
Jack Christensen
e6c6de9494 Improved ext/shopspring-numeric binary decoding performance
Before:
BenchmarkDecode/Zero-Binary-16       	 3944304	       292 ns/op	     128 B/op	       7 allocs/op
BenchmarkDecode/Small-Binary-16      	 2034132	       585 ns/op	     184 B/op	      13 allocs/op
BenchmarkDecode/Medium-Binary-16     	 1747191	       690 ns/op	     192 B/op	      12 allocs/op
BenchmarkDecode/Large-Binary-16      	 1334006	       899 ns/op	     304 B/op	      14 allocs/op
BenchmarkDecode/Huge-Binary-16       	  702382	      1590 ns/op	     584 B/op	      18 allocs/op

After:
BenchmarkDecode/Zero-Binary-16       	14592645	        80.1 ns/op	      64 B/op	       2 allocs/op
BenchmarkDecode/Small-Binary-16      	 5729318	       212 ns/op	     104 B/op	       7 allocs/op
BenchmarkDecode/Medium-Binary-16     	 4930009	       241 ns/op	      88 B/op	       5 allocs/op
BenchmarkDecode/Large-Binary-16      	 3369573	       344 ns/op	     144 B/op	       7 allocs/op
BenchmarkDecode/Huge-Binary-16       	 2587156	       453 ns/op	     216 B/op	       9 allocs/op
2020-05-02 11:34:14 -05:00
Jack Christensen
98c9ec4f7b
Merge pull request #23 from lbcjbb/clean-go-mod-file
Clean go.sum file to remove old version of pgx v3
2020-04-07 19:49:44 -05:00
Jean-Baptiste Bronisz
1fcc71410c
Clean go.sum file to remove old version of pgx v3 2020-04-06 19:45:25 +02:00
Jack Christensen
9016875cae Add JSON support to ext/gofrs-uuid 2020-04-02 14:01:16 -05:00
Jack Christensen
ef5f8b54af Update dependencies 2020-03-30 11:30:37 -05:00
Jack Christensen
b26cd22378 Update changelog for v1.3.0 2020-03-30 11:18:27 -05:00
Jack Christensen
d3d80cd2de Merge branch 'rwelin-rw_format' 2020-03-27 16:10:54 -05:00
Jack Christensen
65bb544ba9 Merge branch 'rw_format' of git://github.com/rwelin/pgtype into rwelin-rw_format 2020-03-27 16:10:37 -05:00
Jack Christensen
523cdad66f Truncate nanoseconds in EncodeText for Timestamptz and Timestamp
PostgreSQL has microsecond precision. If more than this precision is
supplied in the text format it is rounded. This was inconsistent with
the binary format.

See https://github.com/jackc/pgx/issues/699 for original issue.
2020-03-27 15:59:54 -05:00
Robert Welin
43bf713180 Use correct format verb for unknown type error 2020-03-27 13:20:33 +00:00
Jack Christensen
9e700ff067 Date.Set parses string 2020-03-09 10:40:40 -05:00
Jack Christensen
8117205a75 Range types Set method supports its own type, string, and nil
Previously Set would always return an error when called on a range type.
Now it will accept an instance of itself, a pointer to an instance of
itself, a string, or nil. Strings are parsed with the same logic as
DecodeText.
2020-03-03 15:25:57 -06:00
Jack Christensen
55a56add23 Set will call Get on src if possible 2020-02-19 11:58:49 -06:00
Jack Christensen
666bd514e2 Add standard nil test to gofrs-uuid.UUID.Set 2020-02-19 10:50:58 -06:00
Jack Christensen
f3816bd1c0 Get implemented on T instead of *T
Methods defined on T are also available on *T. Thought this technically
changes the interface, because *T will be automatically dereferenced as
needed it shouldn't be a breaking change.

See a8802b16cc593842f5c69b0f7cfb0de11d5cd3a8 for similar change.
2020-02-19 10:48:09 -06:00
Jack Christensen
282b7936a2 Release 1.2.0 2020-02-05 11:10:17 -06:00
Jack Christensen
0ab69ce885 Merge branch 'freb-json_marshaling' 2020-01-29 09:26:45 -06:00
Jeffrey Stiles
5f363cb1f0 Add JSON marshalling for Bool, Date, JSON/B, Timestamptz 2020-01-27 16:19:43 -08:00
Jack Christensen
53a5c14d50
Merge pull request #17 from freb/null_unmarshaljson
Support Null Status in UnmarshalJSON
2020-01-25 14:13:00 -06:00
Jeffrey Stiles
06942241c4 Support Null Status in UnmarshalJSON 2020-01-24 16:38:15 -08:00
Jack Christensen
cf87e34792 Add JSON to shopspring-numeric extension 2020-01-24 17:07:41 -06:00
Jack Christensen
b01b35f466 Fix typo in docs 2020-01-24 14:58:59 -06:00
Jack Christensen
0bbaad1348 Add zeronull package for easier NULL <-> zero conversion 2020-01-24 11:23:28 -06:00
Jack Christensen
186f4b3539 Update changelog 2020-01-11 19:15:23 -06:00
Jack Christensen
c7502af68b Add PostgreSQL time type support
fixes #15
2019-12-19 21:35:35 -06:00
Jack Christensen
038f263a44 Add remaining int array conversions 2019-11-27 20:23:43 -06:00
Jack Christensen
52cb969ea1 Merge branch 'JohnnyQQQQ-master' 2019-11-27 20:17:12 -06:00
Jean-Philippe Quéméner
9ff83bc41c feat: add tests for less stricter numeric conversion 2019-11-26 17:31:13 +01:00
Jean-Philippe Quéméner
01ae643a48 feat: make conversion between numeric values and arrays less strict
closes https://github.com/jackc/pgx/issues/642
2019-11-26 17:11:54 +01:00
Jack Christensen
7e1301257e Release 1.0.3 2019-11-16 11:10:32 -06:00
Jack Christensen
be36a7e14b Fix test and avoid change to array signatures
typed_array.go.erb was not updated back in
a8802b16cc593842f5c69b0f7cfb0de11d5cd3a8 when Value, EncodeBinary,
EncodeText, and MarshalJSON were changed to be defined on T instead of
*T. This has been corrected.
2019-11-14 20:40:41 -06:00
Alex Gaynor
0079108e29 Fixes #11 -- support initializing Array types from a slice of the value 2019-11-08 14:59:19 -05:00
Jack Christensen
f711de3591 Release 1.0.2 2019-10-22 20:45:14 -05:00
Jack Christensen
3bc1f8ac57
Merge pull request #10 from jaltavilla/pointer-to-custom-type
Scan into nullable custom types (pointers to pointers).
2019-10-22 20:42:19 -05:00
jaltavilla
af517d68fc Scan into nullable custom types (pointers to pointers). 2019-10-21 17:21:42 -04:00
Jack Christensen
f395b32fa6 Added failing test for pointer to custom type 2019-10-19 11:43:24 -05:00
Jack Christensen
fa5c331c78 Add text format support to bit
fixes #7
2019-09-26 21:12:42 -05:00
Jack Christensen
90d22fb483 Add basic README.md 2019-09-26 21:08:20 -05:00
Jack Christensen
51e58f842b
Merge pull request #5 from quillchat/master
Add tstzrange data type
2019-09-26 21:00:43 -05:00
Jack Christensen
d3b475212c
Merge pull request #4 from alex/patch-1
Added a license -- fixes #3
2019-09-25 09:21:56 -05:00
Alex Gaynor
eb20ab8219 Added a license -- fixes #3 2019-09-20 10:14:48 -04:00
Jack Christensen
9dc453458c Release v1.0.1 2019-09-19 21:57:09 -05:00
Jack Christensen
52ae698572 Fix daterange oid 2019-09-19 21:43:18 -05:00
Andrew Huang
f517670ba5 Add tstzrange data type 2019-09-18 15:01:37 -07:00
Jack Christensen
cf8fe4a477 uuid extension switched to gofrs from satori
Do not encourage library use that has serious outstanding bug:
https://github.com/satori/go.uuid/issues/73
2019-09-14 19:58:54 -05:00