Bug was chooseParameterFormatCode would see that type could handle
binary format so binary format would be chosen. But
encodePreparedStatementArgument would see driver.Valuer first and
would encode with that -- which is text mode. So the server would
receive a text format value when expecting a binary format value.
Discovered while investigating #316
Since QueryRow delegates to Query, it needs Query to always return
non-nil *Rows to prevent a nil pointer deference when the QueryRow
caller calls Scan(). This commit fixes the few returns in QueryEx that
return nil on errors rather than *Rows with its err field set.
Because reading a record type requires the decoder to be able to look up oid
to type mapping and types such as hstore have types that are not fixed between
different PostgreSQL servers it was necessary to restructure the pgtype system
so all encoders and decodes take a *ConnInfo that includes oid/name/type
information.
Though this doesn't follow Go naming conventions exactly it makes names more
consistent with PostgreSQL and it is easier to read. For example, TIDOID becomes
TidOid. In addition this is one less breaking change in the move to V3.
Squashed commit of the following:
commit c19454582b335ce5bdda6320f7e4e8c76cfeaf44
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Mar 3 15:24:47 2017 -0600
Add AssignTo to pgtype.Timestamptz
Also handle infinity for pgtype.Date
commit 7329933610b38f4bc15731b1f7c55c520b49e300
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Mar 3 15:12:18 2017 -0600
Implement AssignTo for most pgtypes
commit cc3d1e4af896d34ec98c3bf2e982d0367451f21c
Author: Jack Christensen <jack@jackchristensen.com>
Date: Thu Mar 2 21:19:07 2017 -0600
Use pgtype.Int2Array in pgx
commit 36da5cc2178d1a31a56dc6e6f128843bd80dea0b
Author: Jack Christensen <jack@jackchristensen.com>
Date: Tue Feb 28 21:45:33 2017 -0600
Add text array transcoding
commit 1b0f18d99f38b69f8c2db26388815e67b2b03d59
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 27 19:28:55 2017 -0600
Add ParseUntypedTextArray
commit 0f50ce3e833fc38495d333228daf04f5142be676
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 27 18:54:20 2017 -0600
wip
commit d934f273627d79997035c282416db922f2fbe87a
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sun Feb 26 17:14:32 2017 -0600
WIP - beginning text format array parsing
commit 7276ad33ce7fa9c250745a3ed909998f3dae4a32
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 22:50:11 2017 -0600
Beginning binary arrays
commit 917faa5a3175d376222423c10aca297a20f96448
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 19:36:35 2017 -0600
Fix incomplete tests
commit de8c140cfb98b7b047d53c5718ccbf12eaf813a1
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 19:32:22 2017 -0600
Add timestamptz null and infinity
commit 7d9f954de4e071a1eccac762248079b90dbeb53f
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 18:19:38 2017 -0600
Add infinity to pgtype.Date
commit 7bf783ae20ba05571c2fb9f661183233c95eab41
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 17:19:55 2017 -0600
Add Status to pgtype.Date
commit 984500455c9b9a4b6221758540d248e6410d93a4
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 16:54:01 2017 -0600
Add status to Int4 and Int8
commit 6fe76fcfc2de31552790db3b093480a9d5b2a742
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 16:40:27 2017 -0600
Extract testSuccessfulTranscode
commit 001647c1da03f796014cf21f41c9a7fd2cfadfde
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 16:15:51 2017 -0600
Add Status to pgtype.Int2
commit 720451f06d13d9c9fa2a0482e010f24bf4627c2a
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 15:56:44 2017 -0600
Add status to pgtype.Bool
commit 325f700b6edff215a692b10bc5b94cdfe1100769
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 17:28:15 2017 -0600
Add date to conversion system
commit 4a9343e45d3897f59eab98a0009d2ddbe07e02d7
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 16:28:35 2017 -0600
Add bool to oid based encoding
commit d984fcafab1476cf84852485b6711f4b2069eb6d
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 16:15:38 2017 -0600
Add pgtype interfaces
commit 0f93bfc2de4023b069b966c0988bf7f0469d1809
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 14:48:34 2017 -0600
Begin introduction of Convert
commit e5707023cac7c07342b8c910e480d09a1caaf6ee
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 14:10:56 2017 -0600
Move bool to pgtype
commit bb764d2129efe7fb21e841dbb35e6d0dc7586d37
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 13:45:05 2017 -0600
Add Int2 test
commit 08c49437f455a32f7c3f0a524cd21a895d440301
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 13:44:09 2017 -0600
Add Int4 test
commit 16722952222fd15c53c8fa84974645504a6d0dc0
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 08:56:59 2017 -0600
Add int8 tests
commit 83a5447cd2c46b58d0880023cc4e9af0c84988a2
Author: Jack Christensen <jack@jackchristensen.com>
Date: Wed Feb 22 18:08:05 2017 -0600
wip
commit 0ca0ee72068a72b016729b01fccef22474595285
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 18:56:52 2017 -0600
wip
commit d2c2baf4ea2cd0793d68c7094c425217df952bec
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 18:46:10 2017 -0600
wip
commit f78371da0098356527b193fd496a338da5fe414b
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 17:43:39 2017 -0600
wip
commit 3366699bea62ec0110db05f3cb2998d58ac9ce5d
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 14:07:47 2017 -0600
wip
commit 66b79e940870fd0133ebb10ac1547e1d4d7d0b51
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 13:35:37 2017 -0600
Extract pgio
commit 8b07d97d1305ed98fd76db6e306a289c0af92d56
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 13:20:00 2017 -0600
wip
commit 62f1adb3427f4317b708da075dce50c4d4daff7b
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 12:08:46 2017 -0600
wip
commit a712d2546933a5a8433c65eef0ff2ee135077c87
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 09:30:52 2017 -0600
wip
commit 4faf97cc588126dda160fc360680719572a23105
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 17 22:20:18 2017 -0600
wip