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
Maxim Ivanov
63c5d350a3
Add JSON benchmarks
2020-05-02 10:54:19 +01:00
Maxim Ivanov
700df0d05a
Request binary format in Composite tests
2020-05-01 23:37:05 +01:00
Maxim Ivanov
5f0d5f4255
Remove pgtype.Row(), introduce Composite.Scan()
...
pgtype.Row() was optimized for a single line use
without much ceremony at a cost of OID registration,
which is cumbersome. In practice it so much incovnenience
to create new Composite just before making a query.
So now there is just a Composite type and 2 helper methods:
- SetFields sets composite fields to values passed. This assignment
fails if types passed are not assignable to Values pgtype is
made of.
- Scan acts exactly like query.Scan, but for a composite value. Passed
values are set to values from SQL composite.
2020-04-27 00:48:02 +01:00
Maxim Ivanov
e283f322e1
Composite().Row() helper for working with composites without registration
2020-04-20 22:38:20 +00:00
Maxim Ivanov
04ff904ff5
Add binary decoding benchmarks
...
```
BenchmarkBinaryDecodingManual-4 10479085 106 ns/op 40 B/op 2 allocs/op
BenchmarkBinaryDecodingHelpers-4 4485451 263 ns/op 64 B/op 4 allocs/op
BenchmarkBinaryDecodingRow-4 1999726 587 ns/op 96 B/op 5 allocs/op
```
2020-04-19 15:46:14 +00:00
Maxim Ivanov
72680d61f8
Move value createion outside of encoding benchmark
2020-04-19 11:30:21 +00:00
Maxim Ivanov
53e0f25a4e
Make ScanRowValue error message clearer
2020-04-18 19:29:18 +00:00
Maxim Ivanov
b88a3e0765
Tighten ScanRowValue input types
...
ScanRowValue needs not Value, but BinaryEncoder
2020-04-18 14:08:31 +01:00
Maxim Ivanov
54a03cb143
Add benchmark for various composite encoder implementations
...
```
BenchmarkBinaryEncodingManual-12 824053234 28.9 ns/op 0 B/op 0 allocs/op
BenchmarkBinaryEncodingHelper-12 76815436 314 ns/op 192 B/op 5 allocs/op
BenchmarkBinaryEncodingRow-12 65302958 364 ns/op 192 B/op 5 allocs/op
```
2020-04-16 22:24:43 +01:00
Maxim Ivanov
2e13f2fe76
Move lowlevel binary routines into own package
2020-04-16 21:34:06 +01:00
Maxim Ivanov
a6747b513f
Split composite examples
2020-04-13 17:44:02 +01:00
Maxim Ivanov
3ce29f9e05
Add Composite type for inplace row() values handling
...
Composite() function returns a private type, which should
be registered with ConnInfo.RegisterDataType for the composite
type's OID.
All subsequent interaction with Composite types is to be done
via Row(...) function. Function return value can be either
passed as a query argument to build SQL composite value out of
individual fields or passed to Scan to read SQL composite value
back.
When passed to Scan, Row() should have first argument of type
*bool to flag NULL values returned from query.
2020-04-13 17:41:44 +01:00
Maxim Ivanov
8ae83b19f7
Add EncodeRow helpers
...
Also extend example to show how EncodeRow can be used
to create binary encoders for composite type
2020-04-13 00:09:03 +01:00
Maxim Ivanov
368295d3ee
Create ROW helper for adhoc decoding of records
2020-04-12 18:40:52 +01:00
Maxim Ivanov
71ed747f3a
Add example of CompositeType handling with ScanRowValue helper
2020-04-12 17:36:39 +01:00
Maxim Ivanov
ff95f82f70
Add ScanRowValue helper function
...
ScanRowValue is useful when reading ROW() values with
known field types as well as composite types. It accepts
pgtype.Value arguments, where ROW() fields are written to
on successfull scan.
2020-04-12 12:26:12 +01:00
Maxim Ivanov
9a869c8359
Refactor record field binary decoder preparation
2020-04-11 11:08:53 +01:00
Maxim Ivanov
087df120bb
Refactor lowlevel record field iteration
2020-04-11 10:38:23 +01: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