2
0
Commit Graph

167 Commits

Author SHA1 Message Date
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
Jack Christensen be36a7e14b Fix test and avoid change to array signatures
typed_array.go.erb was not updated back in
a8802b16cc when Value, EncodeBinary,
EncodeText, and MarshalJSON were changed to be defined on T instead of
*T. This has been corrected.
2019-11-14 20:40:41 -06:00
Alex Gaynor 0079108e29 Fixes #11 -- support initializing Array types from a slice of the value 2019-11-08 14:59:19 -05:00
Jack Christensen f711de3591 Release 1.0.2 2019-10-22 20:45:14 -05:00
Jack Christensen 3bc1f8ac57 Merge pull request #10 from jaltavilla/pointer-to-custom-type
Scan into nullable custom types (pointers to pointers).
2019-10-22 20:42:19 -05:00
jaltavilla af517d68fc Scan into nullable custom types (pointers to pointers). 2019-10-21 17:21:42 -04:00
Jack Christensen f395b32fa6 Added failing test for pointer to custom type 2019-10-19 11:43:24 -05:00
Jack Christensen fa5c331c78 Add text format support to bit
fixes #7
2019-09-26 21:12:42 -05:00
Jack Christensen 90d22fb483 Add basic README.md 2019-09-26 21:08:20 -05:00
Jack Christensen 51e58f842b Merge pull request #5 from quillchat/master
Add tstzrange data type
2019-09-26 21:00:43 -05:00
Jack Christensen d3b475212c Merge pull request #4 from alex/patch-1
Added a license -- fixes #3
2019-09-25 09:21:56 -05:00
Alex Gaynor eb20ab8219 Added a license -- fixes #3 2019-09-20 10:14:48 -04:00
Jack Christensen 9dc453458c Release v1.0.1 2019-09-19 21:57:09 -05:00
Jack Christensen 52ae698572 Fix daterange oid 2019-09-19 21:43:18 -05:00
Andrew Huang f517670ba5 Add tstzrange data type 2019-09-18 15:01:37 -07:00
Jack Christensen cf8fe4a477 uuid extension switched to gofrs from satori
Do not encourage library use that has serious outstanding bug:
https://github.com/satori/go.uuid/issues/73
2019-09-14 19:58:54 -05:00
Jack Christensen a8802b16cc Value, EncodeBinary, EncodeText, and MarshalJSON on T instead of *T
Methods defined on T are also available on *T. This change makes Value
consistent with database/sql Value implementations. It also makes Value,
EncodeBinary, and EncodeText more convenient to use because you can
pass T or *T as an argument to a query.

The MarshalJSON change is even more significant because without it
json.Marshal would generate the "%v" format instead of the implemented
MarshalJSON.

Thought this technically changes the interface, because *T will be
automatically dereferenced as needed it shouldn't be a breaking change.

See: https://github.com/jackc/pgx/issues/538 for initial discussion.
2019-08-27 20:46:16 -05:00
Jack Christensen b1e25e4ea4 Add format code helpers to ConnInfo 2019-08-25 00:32:11 -05:00
Jack Christensen 7d83f9ba53 Update pgx for tests
Finish previous go mod dependency bounce.
2019-08-24 13:59:25 -05:00
Jack Christensen ab885b375b OID type should only be used for scanning and encoding values
It was a mistake to use it in other contexts. This made interop
difficult between pacakges that depended on pgtype such as pgx and
packages that did not like pgconn and pgproto3. In particular this was
awkward for prepared statements.

Because pgx depends on pgtype and the tests for pgtype depend on pgx
this change will require a couple back and forth commits to get the
go.mod dependecies correct.
2019-08-24 13:49:12 -05:00
Jack Christensen 4cf1c44817 Fix unknown OID scanning into string and []byte 2019-08-22 18:20:36 -05:00
Jack Christensen 9010c554ed Port 251e6b7730 from pgx v3
commit 251e6b7730
Author: Nicholas Wilson <nicholas.wilson@realvnc.com>
Date:   Wed Jul 24 12:32:43 2019 +0100

    Tidying: make underlyingTimeType consistent with other underlyingFooType

    The first return value is ignored when returning false - so there's no
    point returning an empty time.Time when it can be nil.
2019-08-17 13:33:34 -05:00
Jack Christensen bcc139a365 Port fc020c24ac from pgx v3
commit fc020c24ac
Author: Nicholas Wilson <nicholas.wilson@realvnc.com>
Date:   Wed Jul 24 12:32:18 2019 +0100

    Add support for pgtype.UUID to write into any [16]byte type
2019-08-17 13:30:41 -05:00
Jack Christensen 4e0ed911f5 Import Fix for -0 numeric
From pgx: d678216f46
2019-06-08 11:45:47 -05:00
Jack Christensen 3294a8cf1f Allow empty hstore keys
See pgx commit: 56f4f0b9d3
2019-05-20 16:26:58 -05:00
Jack Christensen 99fd636b8e Finish mod changes for split 2019-04-20 19:20:51 -05:00
Jack Christensen 4ed0de4755 Splitting pgtype into own repo 2019-04-20 19:14:08 -05:00
Jack Christensen f25878662d Use golang.org/x/xerrors 2019-04-20 17:43:44 -05:00
Jack Christensen 8502a12ac7 Fix go modules
Wow. This is fun. Sure is easy to get modules wrong when upgrading a v2+
project.
2019-04-20 17:41:08 -05:00
Jack Christensen 6161728ff9 Prepare takes context
Also remove PrepareEx. It's primary usage was for context. Supplying
parameter OIDs is unnecessary when you can type cast in the query SQL.
If it does become necessary or desirable to add options back it can be
added in a backwards compatible way by adding a varargs as last
argument.
2019-04-20 11:47:16 -05:00
Jack Christensen 78eda7d567 Remove unused scan float into numeric 2019-04-13 18:06:09 -05:00
Jack Christensen 4e79a104f7 Test domains when registered and unregistered
Fix bug assigning to unknown type.
2019-04-13 17:09:51 -05:00
Jack Christensen bd85fe870d Hard code standard PostgreSQL types
Instead of needing to instrospect the database on connection preload the
standard OID / type map. Types from extensions (like hstore) and custom
types can be registered by the application developer. Otherwise, they
will be treated as strings.
2019-04-13 16:45:52 -05:00
Jack Christensen a0f487bc09 More transcoding type tests
Text every combination of text and binary arguments and text and binary
results.
2019-04-13 14:17:04 -05:00
Jack Christensen ea65a92de9 Fix long standing text array text format null bug 2019-04-13 14:06:01 -05:00
Jack Christensen 7fbae064bb Remove simple protocol and one round trip query options
It is impossible to guarantee that the a query executed with the simple
protocol will behave the same as with the extended protocol. This is
because the normal pgx path relies on knowing the OID of query
parameters. Without this encoding a value can only be determined by the
value instead of the combination of value and PostgreSQL type. For
example, how should a []int32 be encoded? It might be encoded into a
PostgreSQL int4[] or json.

Removal also simplifies the core query path.

The primary reason for the simple protocol is for servers like PgBouncer
that may not be able to support normal prepared statements. After
further research it appears that issuing a "flush" instead "sync" after
preparing the unnamed statement would allow PgBouncer to work.

The one round trip mode can be better handled with prepared statements.

As a last resort, all original server functionality can still be accessed by
dropping down to PgConn.
2019-04-13 11:39:01 -05:00
Jack Christensen f779b05f36 Extract scan value to pgtype 2019-04-12 21:31:59 -05:00
Jack Christensen 59003afe8c Fix encode empty value 2019-04-12 21:23:57 -05:00
Jack Christensen fcbd9e93fa Initial pass at fixing pgtype tests
Many still failing, but at least it compiles now.
2019-04-12 16:58:42 -05:00
Jack Christensen 0ac82007fb Use extracted packages with Go modules 2019-04-05 10:59:47 -05:00
David Bariod 738f3a1027 support binding of []int type to array integer 2019-01-19 11:44:30 -06:00
maxarchx f9440700e5 Apply UUID string length check before parsing 2018-11-30 15:13:43 +05:00
Jack Christensen 6c9b75d49b Merge pull request #454 from regeda/macaddr-array
macaddr array is introduced
2018-09-01 22:46:13 -04:00
Jack Christensen 8f7c03a47f Fix: do not silently ignore assign NULL to *string
AssignTo can only assign NULL to a **string. Previous code tried to
assign nil to a *string, which did nothing. Correct behavior is to
detect this as an error.
2018-09-01 18:40:42 -05:00
Anthony Regeda 88d317af97 macaddr-array macaddr array is introduced 2018-09-01 16:06:20 +03:00
Damir Vandic 79ba0275de Add the type of the value in all decode error messages 2018-06-04 21:02:20 +02:00
Tarik Demirci 3ec4c6ca23 Allow setting nil to pgtype.Bool 2018-05-17 12:22:48 +02:00
Anthony Regeda 5524d654d3 numeric_with_uint64 numeric array supports both types int64 and uint64 2018-04-24 16:31:31 +03:00