147 Commits

Author SHA1 Message Date
Jack Christensen
a9e7e3acbc Extract connection dead on server test 2017-02-04 16:03:20 -06:00
Jack Christensen
24193ee322 Add QueryRowContext 2017-02-04 15:57:06 -06:00
Jack Christensen
3e13b333d9 Add QueryContext 2017-02-04 15:40:58 -06:00
Jack Christensen
3cc6264dfd Fix renamed constant 2017-02-04 11:31:11 -06:00
Jack Christensen
39dad2b795 Merge branch 'master' into v3-experimental 2017-02-04 11:27:12 -06:00
Jack Christensen
a52a6bd555 Add PgxScanner interface
Enables types to support database/sql at the same time as pgx.

fixes #232
2017-02-02 20:20:52 -06:00
Jack Christensen
93e5c68f69 Merge branch 'master' into v3-experimental 2016-12-10 12:21:08 -06:00
Jack Christensen
bcfb1f4d7c Use pointer for decimal.Decimal
Fix breakage caused by 54efccb61ffe0a31b6a1908bdc8a35f491da01ea in
https://github.com/shopspring/decimal
2016-09-22 08:56:46 -05:00
Martin Hamrle
9f6b99e332 Cleanups
Cleanups suggested by gometalinter tools.
2016-08-30 20:05:44 +02:00
Jack Christensen
214443deb7 Rename Oid to OID 2016-08-02 13:31:55 -05:00
Jack Christensen
1a4be31e7a Fix Rows.Values with binary varchar
fixes #161
2016-07-07 08:03:26 -05:00
Jack Christensen
88acc7e19f Encode and decode between all integer types
fixes #138
2016-04-28 15:28:38 -05:00
Jack Christensen
623ba1eeb1 Add scan to uint16
refs #138
2016-04-27 08:26:59 -05:00
Jack Christensen
94052ea940 Rows.Scan can ignore column with nil
fixes #130
2016-03-24 14:22:16 -05:00
Jack Christensen
34b1711eef Tweak test for old versions of PostgreSQL
It seems on TravisCI that old versions of PostgreSQL may return an
error on select 1/0 such that Query errors instead of Scan.
2016-03-15 19:37:38 -05:00
Jack Christensen
49b3582977 Fix connection corruption when errored query closes early
refs #125
2016-03-15 19:20:03 -05:00
Jack Christensen
c6b6d7bad7 Expose encoding and decoding functions 2016-02-15 13:57:11 -06:00
Jack Christensen
9d7cf39563 Fix go vet identified format strings 2016-02-15 12:32:24 -06:00
Jack Christensen
9f9a9779ac Add compatibility with database/sql custom types
Support database/sql.Scanner
Support database/sql/driver.Valuer
2015-12-31 14:46:43 -06:00
Jack Christensen
edfdaf15c6 Rows.Scan errors now include which argument caused error 2015-11-20 14:02:49 -06:00
Jack Christensen
e1215d9b19 []byte skips encoding/decoding
refs #104
2015-11-12 14:54:25 -06:00
Jack Christensen
7dfdc92855 Rows.Values supports oid type 2015-10-07 08:00:43 -05:00
Jack Christensen
e315754b1f Add stress test to connection pool 2015-09-26 13:12:53 -05:00
Jack Christensen
f672dd2732 Remove mustPrepare from tests
Now that Query/QueryRow always prepares statements when given SQL
text there is no need to test raw SQL and prepared statements of
the same query.
2015-09-03 13:39:28 -05:00
Jack Christensen
fd39261551 Use binary transcoding for inet/cidr
fixes #87
2015-09-03 11:39:32 -05:00
Jack Christensen
651d976ea6 Test should not use type that does not exist in PG 9.0 2015-02-13 13:42:18 -06:00
Jack Christensen
daf2efa313 Tweak handling of reading null as raw bytes.
* NULL maps to nil not empty slice
* Handle NULL in Scan not ReadBytes
2014-12-23 21:58:48 -06:00
Karl Seguin
edc8216aa2 handle this not like an idiot 2014-12-24 09:16:13 +07:00
Karl Seguin
8d116336c3 added failing test, not sure how to fix it yet 2014-12-24 09:06:06 +07:00
Karl Seguin
43e06f9c62 handle null bytes 2014-12-23 23:10:36 +07:00
Jack Christensen
3c61b16776 Fix crash reading value after empty array
fixes #51
2014-12-19 08:25:33 -06:00
Jack Christensen
194a077220 Add test for writing []byte to text/varchar 2014-10-31 10:33:38 -05:00
Jack Christensen
4e51ff728f Allow reading any value into []byte 2014-09-27 15:34:52 -05:00
Jack Christensen
b8881af745 Better error when Scan fails due to unknown destination type
fixes #31
2014-09-02 16:58:10 -05:00
Jack Christensen
e2c9d2f13a Better error messages on decode* for wrong oid 2014-08-08 11:18:46 -05:00
Jack Christensen
0ddf94ef9d Add pgx.Oid serialization 2014-08-08 10:57:33 -05:00
Jack Christensen
2a04433355 Fix misleading error message 2014-08-08 10:31:47 -05:00
Jack Christensen
fb55203324 Add support for varchar[] 2014-07-31 13:35:44 -05:00
Jack Christensen
e29574d447 Add support for integer, float and text arrays
Restructure internals a bit so pgx/stdlib can turn off binary encoding and
receive text back for array types.
2014-07-26 15:03:52 -05:00
Jack Christensen
3144b5363f Support unknown PostgreSQL types as strings 2014-07-19 17:49:11 -05:00
Jack Christensen
6b78c7aa34 Merge prepared and unprepared tests
Because unprepared queries use the same code path as unprepared
queries now, separate tests are unnecessary.
2014-07-19 17:23:00 -05:00
Jack Christensen
61bf7d841a Always use bound parameters
PostgreSQL has two string syntaxes, one that allows backslash escapes and one
that does not (SQL standard conforming strings). By default PostgreSQL uses
standard conforming strings. QuoteString was only designed for use with
standard conforming strings. If PostgreSQL was configured with certain
combinations of the standard_conforming_strings and backslash_quote settings,
QuoteString may not correctly sanitize strings. QuoteString was only used in
unprepared queries, bound parameters are used for prepared queries.

This commit alters pgx to use always use bound parameters.

As a consequence of never doing string interpolation there is no need to have
separate Text and Binary encoders. There is now only the Encoder interface.

This change had a negative effect on the performance of simple unprepared
queries, but prepared statements should already be used for performance.

fixes #26

https://github.com/jackc/pgx/issues/26
2014-07-18 16:51:11 -05:00
Jack Christensen
1027d2d014 Fix Values when there is a null 2014-07-13 13:35:28 -05:00
Jack Christensen
a12b7ed6c1 Handle Scanning null into core types
Return error instead of panic.
2014-07-12 22:07:21 -05:00
Jack Christensen
f215c8bf5f Change Scan / decodeX to use ValueReader
Also improve Rows.Scan and Rows.Values error handling.
2014-07-12 19:43:27 -05:00
Jack Christensen
ed2b3b3b49 Add timestamp support
But not to NullTime because of text vs binary encoding difficulties.

You really should never use timestamp anyway.
2014-07-12 09:33:49 -05:00
Jack Christensen
c108378973 Reorganize code 2014-07-12 08:50:30 -05:00