2938 Commits

Author SHA1 Message Date
Jack Christensen
173227a6e3 Link to wiki from README. 2020-05-16 10:10:07 -05:00
Jack Christensen
b1fc2870e5 go mod tidy 2020-05-16 08:21:04 -05:00
Jack Christensen
f19b08628e Tweak docs to make conn / conn pool distinction clearer 2020-05-16 08:20:40 -05:00
Jack Christensen
1b54d15e93 Fix documentation error
fixes #749
2020-05-16 07:48:11 -05:00
Jack Christensen
c65fd8e2df
Merge pull request #745 from un000/master
Properly close a pool on "not lazy" connect
2020-05-13 12:01:59 -05:00
Yegor Myskin
8dd3679f5a Properly close a pool on "not lazy" connect 2020-05-13 17:48:28 +03:00
Jack Christensen
18d2604119
Merge pull request #38 from lukedirtwalker/fixIPv6
Handle IPv6 in connection URLs
2020-05-13 08:50:38 -05:00
Jack Christensen
238967ec4e Improve accuracy of numeric to float
fixes #27
2020-05-13 08:05:19 -05:00
Jack Christensen
64789acf46
Merge pull request #734 from georgysavva/stdlib-timeouts
Improve Stdlib context timeouts
2020-05-13 07:45:18 -05:00
Jack Christensen
39f9d6079c Merge branch 'georgysavva-improve-connect-timeout' 2020-05-13 07:43:45 -05:00
Jack Christensen
fafefa6063 Merge branch 'improve-connect-timeout' of git://github.com/georgysavva/pgconn into georgysavva-improve-connect-timeout 2020-05-13 07:43:15 -05:00
Jack Christensen
fb54a80edf
Merge pull request #36 from Eun/patch-1
concludeCommand should not throw away fieldDescriptions
2020-05-13 07:38:08 -05:00
Jack Christensen
6a1a9d05bc Add pgxtype package for simpler type registration 2020-05-13 07:34:10 -05:00
Jack Christensen
f8471ebfa8 ArrayType requires element OID 2020-05-13 07:11:10 -05:00
Jack Christensen
ee0e207ee4 CompositeType fields contain name and oid 2020-05-13 07:09:52 -05:00
Jack Christensen
0e2bc3467a Fix ext/gofrs-uuid AssignTo *uuid.UUID 2020-05-12 21:01:06 -05:00
Jack Christensen
b3e1355a46 CompositeType can assign to struct via reflection 2020-05-12 16:58:16 -05:00
Jack Christensen
9a3923b6e0 EncodeRow is superceded by CompositeFields 2020-05-12 15:51:27 -05:00
Jack Christensen
506ea36835 Do not export quoteCompositeFieldIfNeeded 2020-05-12 15:47:44 -05:00
Jack Christensen
eebc6975de Add EncodeText support for CompositeType 2020-05-12 15:45:16 -05:00
Jack Christensen
e45ef46424 Refactor and add CompositeTextBuilder 2020-05-12 15:42:26 -05:00
Jack Christensen
fcb385dccb Add ScanDecoder and ScanValue to composite scanners.
Rename Scan to Next to disambiguate.
2020-05-12 15:04:14 -05:00
Jack Christensen
e51cb1ef09 Add CompositeBinaryBuilder 2020-05-12 14:04:11 -05:00
Jack Christensen
2186634638 Add CompositeFields encoders 2020-05-12 11:55:24 -05:00
Jack Christensen
e92ee69901 Expose EnumType directly instead of behind interface 2020-05-12 10:41:50 -05:00
Jack Christensen
9cdd928cb8 CompositeType implements TypeValue 2020-05-12 10:40:13 -05:00
Jack Christensen
e5992d0aed TypeValue should include Value 2020-05-12 10:28:13 -05:00
Jack Christensen
682201a4fc Rename CloneTypeValue to NewTypeValue 2020-05-12 10:26:51 -05:00
Jack Christensen
bff2829b0f Move ComposteType.Scan functionality into AssignTo
Also remove adapter functions that are no longer used.
2020-05-12 10:19:41 -05:00
Jack Christensen
247043b597 Merge SetFields functionality into Set 2020-05-12 08:35:45 -05:00
Jack Christensen
c41160bcbb Make CompositeType status private 2020-05-12 08:01:10 -05:00
Jack Christensen
4a6bd41a36 Rename Composite to CompositeType.
This harmonizes the naming with EnumType and ArrayType.
2020-05-12 07:58:10 -05:00
Lukas Vogel
08d071c094 Handle IPv6 in connection URLs
Previously IPv6 addresses were wrongly split and lead to a parse error.
This commit fixes the behavior.
2020-05-12 10:39:35 +02:00
Jack Christensen
036101deb5 Allow scanning to nil as no-op 2020-05-11 17:41:20 -05:00
Jack Christensen
36dbbd983d Add CompositeFields type
This adds support for the text format and removes the need for the
ScanRowValue function.
2020-05-11 17:21:21 -05:00
Jack Christensen
1b3d694469 Add ArrayType 2020-05-10 19:37:25 -05:00
Jack Christensen
6cef4638ad Update pgx dependency for tests 2020-05-10 14:11:24 -05:00
Jack Christensen
94ba730bb1 Use simplified pgtype ScanPlan 2020-05-10 14:09:26 -05:00
Jack Christensen
38dd42de4b Support new pgtype format preferences 2020-05-10 14:09:02 -05:00
Jack Christensen
8cd94a14c7 Allow types to specify preference format result and param formats
This will be useful for array and composite types that may have to
support elements that may not support binary encoding.

It also is slightly more convenient for text-ish types to have a default
format of text.
2020-05-10 14:05:16 -05:00
Jack Christensen
cc4d1eafe0 Doc tweaks and renames 2020-05-10 12:45:12 -05:00
Jack Christensen
a71c179ce3 Extract nullAssignmentError 2020-05-10 12:28:47 -05:00
Jack Christensen
52729c1b77 Back off some aggressive PlanScan optimizations
PlanScan used to require the exact same value be used every time. While
this was great for performance, on further consideration I think it is
too much of a potential foot-gun.

This moves back in the other direction. A plan tolerates a change in
destination. It even detects a change in destination type and falls
back to a new plan.

Perfectly matched hot scan paths (e.g. PG int4 to Go int32) are still
much faster than they were before this set of optimizations. The first
scan of a destination that uses a decoder is faster due to not
allocating. It's a little bit slower on subsequent runs than before
this set of optimizations. But it is preferable to optimize for the
most common scan targets (e.g. *int32, *int64, *string) over generic
decoder destinations.

In addition this fees pgx.connRows.Scan from having to check that
the destination is unchanged.
2020-05-10 09:37:15 -05:00
Jack Christensen
aabe5538a8 Optimize large result sets 2020-05-09 23:57:20 -05:00
Jack Christensen
7e66ab1e14 Add scan plan system
This can improve performance now and will be useful for the future
transcoder system.
2020-05-09 23:52:48 -05:00
Jack Christensen
e3519cfd75 Document supported versions 2020-05-09 10:24:58 -05:00
Jack Christensen
c4e6445cc7 Explicitly test supported Go and PostgreSQL versions 2020-05-09 10:19:39 -05:00
Jack Christensen
a66b09fbd8 Improve simple protocol / text format
Increased data type support for simple protocol. Improved test
coverage of simple protocol. This has the additional advantage of
exercising the text encoders and decoders.
2020-05-08 16:20:15 -05:00
Jack Christensen
97bbe6ae20 Add RegisterDefaultPgType
This allows registering a mapping of a Go type to a PostgreSQL type
name. If the OID of a value to be encoded or decoded is unknown, this
additional mapping will be used to determine a suitable data type.
2020-05-08 16:13:15 -05:00
Jack Christensen
c3381c6911 Replace t.Fatal with require where possible 2020-05-08 12:47:47 -05:00