2349 Commits

Author SHA1 Message Date
Jack Christensen
af0ca3a39b Fix simple protocol empty array and original recursive empty array issue
Original issue https://github.com/jackc/pgtype/issues/68

This crash occurred in the recursive assignment system used to support
multidimensional arrays.

This was fixed in 9639a69d451f55456f598c1aa8b93053f8df3088. However,
that fix incorrectly used nil instead of an empty slice.

In hindsight, it appears the fundamental error is that an assignment to
a slice of a type that is not specified is handled with the recursive /
reflection path. Or another way of looking at it is as an unexpected
feature where []T can now be scanned if individual elements are
assignable to T even if []T is not specifically handled.

But this new reflection / recursive path did not handle empty arrays.

This fix handles the reflection path for an empty slice by allocating an
empty slice.
2020-10-31 17:12:16 -05:00
Jack Christensen
7c47415150 Fix SendBatch of all prepared statements with statement cache disabled
fixes #856
2020-10-29 20:28:57 -05:00
Jack Christensen
9d7fc8e63a AssignTo pointer to pointer to slice and named types
fixes #69
2020-10-24 09:21:42 -05:00
Simo Haasanen
9639a69d45 Adds checks for zero length arrays.
Assigning values from nil or zero length elements or dimensions now return immediately as there are no values to assign.
2020-10-20 19:52:05 +01:00
Tomas Volf
e92478ec70
Fix Inet.Set to handle nil net.IP correctly
When nil IP is returned from net.ParseIP, it is accepted into Inet type,
but not properly marked as being Null. That introduces issues later on
when calling for example EncodeBinary, since it does not assume this can
happen.

This commit resolves that by properly detecting zero-length net.IP and
setting status to Null if that is the case.
2020-10-13 15:26:09 +02:00
Oleg Kovalov
5f8d853b34 remove unused definitions on conn.go 2020-10-12 08:13:52 -05:00
duohedron
2bc8c67e4a Fix misleading names parseString and parseFloat64 in polygon.go 2020-10-08 07:59:44 -05:00
duohedron
b55f972f49 Add comment to Polygon.Set() 2020-10-08 07:59:44 -05:00
duohedron
8aa7211df5 Add tests to Polygon 2020-10-08 07:59:44 -05:00
duohedron
6166c99b77 Add Undefined status to invalid Polygon 2020-10-08 07:59:44 -05:00
duohedron
e09987f1d6 Add tests to Polygon 2020-10-08 07:59:44 -05:00
duohedron
2dca42ee7d Add Set(string|[]Vec2|[]float64) to Polygon 2020-10-08 07:59:44 -05:00
Erik Agsjö
66c36ff24f Support setting infinite timestamps 2020-10-08 07:58:57 -05:00
drpytho
0c145a3faa Add/Copy docstring from puddle 2020-10-06 09:04:33 -05:00
Oleg Kovalov
5ebf34e484 remove unused definitions on messages.go 2020-10-05 19:31:25 -05:00
Oleg Kovalov
557018a24e use simpler strings funcs 2020-10-05 19:26:33 -05:00
Jack Christensen
376361f53d Add tests for Int(2|4|8).Set accepting float(32|64) 2020-10-03 08:36:40 -05:00
lqu3j
909d814f65 support float64, float32 convert to int2, int4, int8 2020-09-29 13:10:38 +08:00
Jack Christensen
2a8ae6f269 Release v4.9.0 v4.9.0 2020-09-26 11:58:01 -05:00
Jack Christensen
f23bd4824d Upgrade pgtype to v1.5.0 2020-09-26 11:56:52 -05:00
Jack Christensen
3e9614fdb4 Upgrade pgconn to v1.7.0 2020-09-26 11:56:52 -05:00
Jack Christensen
f9204b4c10 Upgrade puddle to v1.1.2 2020-09-26 11:56:52 -05:00
Jack Christensen
116eba4401 Release v1.5.0 2020-09-26 11:48:37 -05:00
Bekmamat
d7f92427ad fixed marshaling and unmarshaling 2020-09-22 08:18:39 -05:00
Jack Christensen
fbe354aea1 Remove editor specific .gitignore 2020-09-15 17:21:13 -05:00
bakmataliev
6777e0294b eliminate regex dep 2020-09-15 13:24:17 +03:00
bakmataliev
cd9b888ff6 Remove unnecessary check for null 2020-09-11 16:28:49 +03:00
bakmataliev
d540ca39be New marshalers have been added 2020-09-11 16:24:48 +03:00
Harmen
040df1ccef fix link to 'pgtype' repo 2020-09-10 09:30:26 -05:00
Jack Christensen
a8abb80082 Update CI Go versions 2020-09-05 13:26:19 -05:00
Jack Christensen
d4a300bd58 Fix: FieldDescriptions are available on Rows before calling Next 2020-09-05 13:24:57 -05:00
Jack Christensen
2ec377350b Update Rows.Scan documentation to reflect reality.
Previously, the Scan documentation stated that scanning into a []byte
will skip the decoding process and directly copy the raw bytes received
from PostgreSQL.

This has not been true for at least 2 months. It is also undesirable
behavior in some cases such as a binary formatted jsonb. In that case
the '1' prefix needs to be stripped to have valid JSON. If the raw
bytes are desired this can easily be accomplished by scanning into
pgtype.GenericBinary or using Rows.RawValues.

In light of the fact that the new behavior is superior, and that it has
been in place for a significant amount of time, I have decided to
document the new behavior rather than change back to the old behavior.
2020-09-05 11:26:19 -05:00
Jack Christensen
e7d2b057a7 Text formatted values except bytea can be directly scanned to []byte
This significantly improves performance of scanning text to []byte as it
avoids multiple allocations and copies.
2020-09-05 11:13:53 -05:00
Jack Christensen
9da6afcad7 Fix selecting empty array
Failing test was in pgx: TestReadingValueAfterEmptyArray
2020-09-05 10:56:22 -05:00
Jack Christensen
79b05217d1 Fix JSONBArray to have elements of JSONB 2020-09-04 18:41:34 -05:00
Jinzhu
5b06f03d0a Fix SimpleProtocol with prepared statement 2020-08-31 17:06:36 -05:00
Jack Christensen
43ce317556 Plan scans even if destination is nil
fixes #810
2020-08-21 18:34:52 -05:00
Jack Christensen
997a16dbc5 Update pgconn for renamed CleanupChan 2020-08-20 22:09:50 -05:00
Jack Christensen
39b096d01e pgxpool waits for connection cleanup to finish before making room in pool
refs #679
2020-08-20 22:04:56 -05:00
Simo Haasanen
ec14212d30 Add comments to explain the use of reflection after type assertion.
Removes one local variable, which is used twice only in an error.
2020-08-09 09:17:40 +01:00
Simo Haasanen
b90570feb5 Restored more optimised array type conversions for a few select 1D-slice types.
Results of calls to the reflect lib are now stored as local variables for small performance gains.
2020-08-08 19:51:37 +01:00
Simo Haasanen
449a8a4f8e Add multidimensional array and slice support.
Adds array support - previously only slices were supported.
Adds new test cases for multidimensional arrays and slices.
All previous test cases are unmodified and passed (fully backwards compatible).
Removes hard-coded type conversions for arrays, instead now relies on the type support of the array element's type conversion support.
Less maintenance for arrays, new type conversions are automatically supported when array's element gains new type support.
Simplifies typed_array_gen.sh generator script by removing the hard-coded single-dimensional types for arrays.
Only typed_array.go.erb and typed_array_gen.sh have been changed + 1 new auxiliary function in array.go file + additional tests in test files for each array. Other changes are from generated code.
2020-08-07 13:10:32 +01:00
Jack Christensen
e9579e6249 Release v4.8.1 v4.8.1 2020-07-29 22:19:49 -05:00
Jack Christensen
cce1d671f4 Update pgconn to v1.6.4 2020-07-29 22:18:05 -05:00
Jack Christensen
b8c5857880 Release v4.8.0 v4.8.0 2020-07-22 06:49:50 -05:00
Jack Christensen
d831ba712a Release v1.4.2 2020-07-22 06:46:27 -05:00
Jack Christensen
7673c8578d Update changelog 2020-07-22 06:45:10 -05:00
Yaz Saito
b939bc8d68 Fix encoding of a large composite data type
If encoding a field caused a buffer reallocation, the its length would be
written to a wrong place.
2020-07-21 23:52:20 -07:00
Jack Christensen
4ebf1d2e0b Passthrough all parameters directly to pgx 2020-07-18 08:44:57 -05:00
Jack Christensen
42cbd0fa46 Release v4.7.2 v4.7.2 2020-07-14 12:07:51 -05:00