Jack Christensen
e4f9108e82
wip
2017-02-11 14:59:16 -06:00
Jack Christensen
72b6d32e2f
Extracted more context handling
2017-02-07 21:49:58 -06:00
Jack Christensen
004c18e5a2
Begin extracting context handling
2017-02-07 20:35:37 -06:00
Jack Christensen
14eedb4fca
Add ConnPool context methods
2017-02-06 18:54:49 -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
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
f7b6b3f077
Handle json/jsonb in binary to support CopyTo
...
fixes #189
2016-10-01 11:01:54 -05:00
Jack Christensen
04c02cf3d3
Rename Json(b) to JSON(B)
2016-08-02 13:35:52 -05: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
Krzysztof Dryś
ed6ee27a22
Copy sql query from prepared statement to rows.
...
This enables proper logging of sql query when using stdlib.
2016-06-28 11:08:38 +02:00
Jack Christensen
9288322a4f
Avoid two memory allocations per query
...
rows can get log and shouldLog from conn instead of needing copied
to self.
2016-04-30 13:06:59 -05:00
Jack Christensen
932a4d6533
Avoid pointless recursive call
2016-04-30 12:58:36 -05:00
Jack Christensen
6e2cee6294
Prevent every row scan from causing a malloc
2016-04-30 12:54:16 -05:00
Jack Christensen
e5ec5851e5
Reduce allocations for row objects
2016-04-30 12:22:36 -05:00
Jack Christensen
04e9fbcc55
Fix some golint errors
...
- Add comments
- Rename variables
- Remove unnecessary "else"
2016-03-29 15:18:09 -05:00
Jack Christensen
94052ea940
Rows.Scan can ignore column with nil
...
fixes #130
2016-03-24 14:22:16 -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
a93025479d
Add AfterClose and Conn to Rows
2016-02-13 13:03:06 -06:00
Jack Christensen
0f7bf19387
Add *Conn.SetLogLevel
...
Allow changing log level after connection is established. Because
log level and loggers can be set independently, it is now possible
to have a log level above none when there is a nil logger. This
means all log statements need to check for nil logger and an
appropriate log level. This check has been factored out into
*Conn.shouldLog.
2016-02-13 10:13:10 -06:00
Jack Christensen
cffae7ff5d
Add SetLogger to *Conn
...
Allow replacing logger after connection is established. Also
refactor internals of logging such that there is a log method that
adds the pid to all log calls instead of making a new logger object.
The reason for this is so pid will be logged regardless of whether
loggers are replaced and restored.
2016-02-12 17:49:04 -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 and Jake Worth
c726a51450
Add inet[] and cidr[] support
2015-09-29 13:23:26 -05:00
Jack Christensen
86837e5576
Add guards against usage of busy connection
2015-09-16 10:22:16 -05:00
Jack Christensen
a1aa06c934
More efficient logging with log levels
2015-09-16 08:20:51 -05:00
Jonathan Rudenberg
272262536b
Add support for pointers to pointers
...
Using types like **string allows the inner pointer to be nil’ed out,
avoiding the need for NullX types.
Signed-off-by: Jonathan Rudenberg <jonathan@titanous.com>
2015-09-08 11:52:58 -05:00
Jack Christensen
fff5b9759b
Add tests for other types of JSON objects
2015-09-04 13:40:59 -05:00
Jack Christensen
9d200733b9
Merge common JSON and JSONB
2015-09-04 11:04:51 -05:00
Joseph Glanville
0013733535
Add JSON/JSONB support
2015-09-04 18:15:46 +10:00
Jack Christensen
9af068add0
Add cidr support
2015-09-03 09:42:01 -05:00
Jack Christensen
d494f83cd1
Add inet support
2015-09-03 09:33:19 -05:00
Jack Christensen
879ca97228
Fix Scanner that does not read entire value
2015-04-09 17:46:58 -05: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
Jack Christensen
d77e599ce6
Add timestamptz[] support
2014-12-23 18:17:39 -06:00
Jack Christensen
191c37dfa6
Values supports timestamp[]
2014-12-23 17:52:33 -06:00
Karl Seguin
109b55f9de
support decoding of []time.Time and []bool
2014-12-21 14:35:38 +07:00
Jack Christensen
3c61b16776
Fix crash reading value after empty array
...
fixes #51
2014-12-19 08:25:33 -06:00
Karl Seguin
a8f5ce12c5
Trying to reduce memory allocation. logQueryArgs is called even when
...
using the default discardLogger. This allocates quite a bit of memory.
Created a default dlogger instance and avoid logging code when that's our
logger. I couldn't think of a better implementation without touching the
Logger interface.
On 100 000 inserts, this brought the allocation down to 58MB from 122MB.
It should also result in some small performance gains.
2014-11-18 07:53:33 +07:00
Jack Christensen
5edd660971
WaitForNotification detects lost connections quicker
...
Ping server every 15 seconds while waiting if no traffic has occurred.
2014-10-03 14:58:04 -05:00
Jack Christensen
4e51ff728f
Allow reading any value into []byte
2014-09-27 15:34:52 -05:00
Jack Christensen
98853ea98f
more docs
2014-09-19 17:35:00 -05:00
Andy Walker
2f1ec582d7
Instead of native map[string]string, use type pgx.Hstore instead
2014-09-19 15:27:15 -05:00
Andy Walker
821605a8dd
Adding hstore support. map[string]string will encode to hstores and throw errors on hstores with NULL values, and there is now a NullHstore type that is basically map[string]NullString and will both accept and decode NULL values properly
2014-09-19 15:27:15 -05:00
Brian Dunn and Jack Christensen
a68115fc03
Fix data race with Rows and ConnPool
...
In an effort to reduce memory allocations, Rows was stored on the
Conn. This caused a race condition where Rows are closed and this
returns the Conn to the Pool. The Pool could then give out the Conn
again. Rows would then be reanimated and the original Rows could reclose
it.
2014-09-16 16:29:45 -05:00
Jack Christensen
b21a653085
Truncate logged strings and byte slices
2014-09-15 13:53:59 -05:00
Jack Christensen
5dbc03602d
Improve wrong number of arguments error message for Rows.Scan
...
fixes #33
2014-09-05 11:14:11 -05:00
Jack Christensen
ff905fe862
Finish compatible interface to inconshreveable/log15
2014-09-04 16:27:40 -05:00
Jack Christensen
311c332fdc
More logging
2014-09-03 11:13:29 -05:00
Jack Christensen
e47838d926
Add logging to Query
2014-09-03 10:34:45 -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
0ddf94ef9d
Add pgx.Oid serialization
2014-08-08 10:57:33 -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
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
aff5043df9
Added a lot of documentation
2014-07-12 21:17:38 -05:00
Jack Christensen
4fbd76bee5
Make MsgReader private
2014-07-12 20:08:17 -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
70c32fadc6
Rows does not expose MsgReader
2014-07-12 11:47:10 -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