Squashed commit of the following:
commit c19454582b
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 7329933610
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Mar 3 15:12:18 2017 -0600
Implement AssignTo for most pgtypes
commit cc3d1e4af8
Author: Jack Christensen <jack@jackchristensen.com>
Date: Thu Mar 2 21:19:07 2017 -0600
Use pgtype.Int2Array in pgx
commit 36da5cc217
Author: Jack Christensen <jack@jackchristensen.com>
Date: Tue Feb 28 21:45:33 2017 -0600
Add text array transcoding
commit 1b0f18d99f
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 27 19:28:55 2017 -0600
Add ParseUntypedTextArray
commit 0f50ce3e83
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 27 18:54:20 2017 -0600
wip
commit d934f27362
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sun Feb 26 17:14:32 2017 -0600
WIP - beginning text format array parsing
commit 7276ad33ce
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 22:50:11 2017 -0600
Beginning binary arrays
commit 917faa5a31
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 19:36:35 2017 -0600
Fix incomplete tests
commit de8c140cfb
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 19:32:22 2017 -0600
Add timestamptz null and infinity
commit 7d9f954de4
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 18:19:38 2017 -0600
Add infinity to pgtype.Date
commit 7bf783ae20
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 17:19:55 2017 -0600
Add Status to pgtype.Date
commit 984500455c
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 16:54:01 2017 -0600
Add status to Int4 and Int8
commit 6fe76fcfc2
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 16:40:27 2017 -0600
Extract testSuccessfulTranscode
commit 001647c1da
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 16:15:51 2017 -0600
Add Status to pgtype.Int2
commit 720451f06d
Author: Jack Christensen <jack@jackchristensen.com>
Date: Sat Feb 25 15:56:44 2017 -0600
Add status to pgtype.Bool
commit 325f700b6e
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 17:28:15 2017 -0600
Add date to conversion system
commit 4a9343e45d
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 16:28:35 2017 -0600
Add bool to oid based encoding
commit d984fcafab
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 16:15:38 2017 -0600
Add pgtype interfaces
commit 0f93bfc2de
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 14:48:34 2017 -0600
Begin introduction of Convert
commit e5707023ca
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 14:10:56 2017 -0600
Move bool to pgtype
commit bb764d2129
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 13:45:05 2017 -0600
Add Int2 test
commit 08c49437f4
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 13:44:09 2017 -0600
Add Int4 test
commit 1672295222
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 24 08:56:59 2017 -0600
Add int8 tests
commit 83a5447cd2
Author: Jack Christensen <jack@jackchristensen.com>
Date: Wed Feb 22 18:08:05 2017 -0600
wip
commit 0ca0ee7206
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 18:56:52 2017 -0600
wip
commit d2c2baf4ea
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 18:46:10 2017 -0600
wip
commit f78371da00
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 17:43:39 2017 -0600
wip
commit 3366699bea
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 14:07:47 2017 -0600
wip
commit 66b79e9408
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 13:35:37 2017 -0600
Extract pgio
commit 8b07d97d13
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 13:20:00 2017 -0600
wip
commit 62f1adb342
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 12:08:46 2017 -0600
wip
commit a712d25469
Author: Jack Christensen <jack@jackchristensen.com>
Date: Mon Feb 20 09:30:52 2017 -0600
wip
commit 4faf97cc58
Author: Jack Christensen <jack@jackchristensen.com>
Date: Fri Feb 17 22:20:18 2017 -0600
wip
Previous commits had a race condition due to not waiting for the PostgreSQL
server to close the cancel query connection. This made it possible for the
cancel request to impact a subsequent query on the same connection. This
commit sets a flag that a cancel request was made and blocks until the
PostgreSQL server closes the cancel connection.
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.
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.
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>
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.
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.
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#26https://github.com/jackc/pgx/issues/26