2734 Commits

Author SHA1 Message Date
Jack Christensen
63428b802d
Merge pull request #731 from felixge/patch-1
Fix typo in readme
2020-04-28 10:47:33 -05:00
Felix Geisendörfer
23a4edc0d7
Fix typo in readme 2020-04-28 11:33:33 +02: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
georgysavva
5364a47e05 Update go.sum via go mod tidy 2020-04-13 21:20:24 +03: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
Jack Christensen
be9ceaefe6 Add native Go slice support for strings and numbers to simple protocol
[]string, []int16, []int32, []int64, []int, []uint16, []uint32,
[]uint64, []uint, []float32, and []float64 are now supported in the
simple protocol like they are in the normal usage of the extended
protocol.
2020-04-11 09:27:07 -05: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
5f723da269
Merge pull request #716 from redbaron/row-values-doc
Clarify row type handling example
2020-04-10 13:19:28 -05:00
Maxim Ivanov
198f5093e8 Clarify row type handling example 2020-04-10 18:39:04 +01:00
Jack Christensen
3286f3111b
Merge pull request #715 from redbaron/row-values-doc
Document row and composite types handling
2020-04-10 12:04:53 -05:00
Maxim Ivanov
692e10f901 Document row and composite types handling 2020-04-10 17:08:56 +01:00
Jack Christensen
15856c001a
Merge pull request #33 from pjediny/sslmode-require-with-rootca
Fix behavior of sslmode=require with sslrootcert present
2020-04-07 20:00:31 -05:00
Jack Christensen
7a9efdefde
Merge pull request #712 from lbcjbb/master
[pgxpool] Fix connection leak if BeginTx() fail
2020-04-07 19:52:40 -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
Jack Christensen
5d2be99c25 Fix panic when closing conn during cancellable query
fixes #29
2020-04-07 19:38:21 -05:00
Petr Jediný
84aee0ab44 Fix behavior of sslmode=require with sslrootcert present
According to PostgreSQL documentation the behavior should be
the same as that of verify-ca sslmode

https://www.postgresql.org/docs/12/libpq-ssl.html
2020-04-08 00:08:53 +02:00
Jean-Baptiste Bronisz
4127eba03f
[pgxpool] Fix connection leak if BeginTx() fail 2020-04-07 22:31:09 +02: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
e6af41a78a
Merge pull request #709 from georgysavva/flexible-pool-init
Add ability to skip network operations on pool initialization.
2020-04-04 07:54:28 -05:00
georgysavva
271f5a8a7d revert go.sum 2020-04-03 10:56:40 +03:00
georgysavva
5d453485a9 Introduce new pool setting: LazyConnect 2020-04-03 10:28:05 +03:00
Jack Christensen
bc4586ac6f Update to puddle v1.1.1
Fixes potential race condition if health check is creating new
connections while the pool is closed.
2020-04-02 22:24:09 -05:00
Jack Christensen
f76d37a387 Do not run timing sensitive test in parallel
This test
2020-04-02 22:24:09 -05:00
Jack Christensen
0329f12e05 Remove unneeded goroutine spawn in connection pool destructor
fixes #708
2020-04-02 22:24:09 -05:00
Jack Christensen
9016875cae Add JSON support to ext/gofrs-uuid 2020-04-02 14:01:16 -05:00
Jack Christensen
43c2113f90
Merge pull request #706 from georgysavva/wrapTx-context
add context to `stdlib.wrapTx{}`
2020-04-02 08:19:05 -05:00
georgysavva
7738775417 Include context into stdlib.wrapTx{} in order to propagate it to the underlying pgx.Tx.Commit() and Rollback() methods. 2020-04-02 15:30:55 +03:00
Jack Christensen
9188e32737
Merge pull request #704 from OberstK/patch-1
Fix of Link in Readme
2020-03-31 09:09:49 -05:00
Benjamin Kurczyk
e6e888b15c
Fix of Link in Readme
The Link to "tern" is wrong. This fixes it
2020-03-31 15:34:56 +02:00
Jack Christensen
27a069cea3 List pgerrcode in related libraries 2020-03-30 15:09:40 -05:00
Jack Christensen
14062fd19f Link to related libraries 2020-03-30 15:08:35 -05:00
Jack Christensen
0446492fe9 Release v4.6.0 v4.6.0 2020-03-30 11:35:02 -05:00
Jack Christensen
cdec57523d Update to pgtype v1.3.0 2020-03-30 11:31:23 -05:00
Jack Christensen
ef5f8b54af Update dependencies 2020-03-30 11:30:37 -05:00
Jack Christensen
da5c28239b Update to pgconn v1.5.0 2020-03-30 11:21:43 -05:00
Jack Christensen
b26cd22378 Update changelog for v1.3.0 2020-03-30 11:18:27 -05:00
Jack Christensen
e4f3224f4c Update changelog for v1.5.0 2020-03-30 11:15:08 -05:00