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
georgysavva
e27a6e71b5
Wrap stdlib Conn.Close() and Stmt.Close() with default 5 seconds timeout.
2020-05-02 16:57:39 +03:00
georgysavva
01a7510ae9
Reformat imports
2020-05-02 16:43:02 +03:00
georgysavva
2d5a17beab
Add comment.
2020-05-02 16:39:51 +03:00
georgysavva
391e1ef2ce
Parse connect timeout setting into Config. Restrict context timeout via Config.ConnectTimeout on .Connect() call.
2020-05-02 16:35:22 +03:00
georgysavva
e5920c3ad9
Merge branch 'master' of github.com:jackc/pgx
2020-05-02 15:01:11 +03: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
Jack Christensen
3c5d72a8d9
Merge pull request #733 from dchenk/patch-1
...
Small typo fixed
2020-04-30 19:15:06 -05:00
Tobias Salzmann
8d9293e1e7
Update pgconn.go
2020-04-30 11:27:01 +02:00
Tobias Salzmann
8f3f335b0f
concludeCommand should not throw away fieldDescriptions
2020-04-30 11:22:43 +02:00
Dmitriy
830193dc36
Small typo fixed
2020-04-29 22:23:46 -07:00
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