146 Commits

Author SHA1 Message Date
Jörg Thalheim
3410ad9122
Add host query parameter to support unix sockets
Currently there is no way to specify unix sockets in the connection
url. This patch adds a `host` query parameter that allows to set the path.
2018-11-03 21:07:33 +00:00
Valery Krivchikov
1f054a77ea fix new variables on left side 2018-09-15 14:50:17 +03:00
Valery Krivchikov
0468c97a7e Fix undefined cancel 2018-09-15 14:27:29 +03:00
Valery Krivchikov
c844a2402b Call context.WithTimeout cancel function 2018-09-15 13:23:09 +03:00
Jack Christensen
39bbc98d99 Do not use same tls.Config for fallback in test 2018-06-08 15:19:56 -05:00
Jack Christensen
7b6f0ffc8c Fix race in TLS tests 2018-06-08 15:14:45 -05:00
Jack Christensen
e04f5443d5 Fix test with formatting directive 2018-05-17 16:45:01 -05:00
Jack Christensen
6044dcbe21 Fix race in TLS test 2018-05-17 16:43:15 -05:00
Jack Christensen
db7df79e10 Add domain support
fixes #407
2018-04-07 14:04:16 -05:00
Sean Chittenden
d7f24b91f4
Make ParseURI() compatible with lib/pq's TLS keywords.
Add support for:

- `sslrootcert`
- `sslcert`
- `sslkey`

All three arguments, like thir `gitub.com/lib/pq` counterparts,
are filesystem paths.
2018-02-01 22:58:14 -08:00
Jack Christensen
5f24beb4f0 Test database name in parsing tests 2018-01-15 11:47:59 -06:00
Jack Christensen
2c07b03087 Parse connect_timeout into Dial func
Instead of adding Timeout field which could conflict with custom Dial
func.
2018-01-13 18:02:13 -06:00
Jack Christensen
9281f057ae Merge branch 'timeout' of https://github.com/cyberdelia/pgx into cyberdelia-timeout 2018-01-13 17:31:22 -06:00
Jack Christensen
bd76a96882 Add ConnConfig.PreferSimpleProtocol
Allows configuring on a connection basis to prefer the simple protocol /
disable implicit prepared statements.

refs #331
2018-01-13 12:05:33 -06:00
ferhat elmas
763deea17e Run gofmt with simplify flag 2017-12-21 23:45:26 +01:00
Timothée Peignier
1bec450326
Handle timeout parameters 2017-12-16 19:18:33 -08:00
Felix Geisendörfer
1bebe56697 travis: add connection test coverage for cratedb 2017-11-12 15:47:26 +01:00
Jack Christensen
fd7b776540 Merge pull request #323 from kelseyfrancis/namespace-oids
Prefix types in namespaces other than pg_catalog or public
2017-09-14 13:59:51 -05:00
Kelsey Francis
953e08df99 Prefix types in namespaces other than pg_catalog or public
It's possible to define a type (e.g., an enum) with the same name in two
different schemas. When initializing data types after connecting, types
defined within schemas other than pg_catalog or public should be
qualified with their schema name to disambiguate them and ensure all
types with the same base name get added to the map of OID to type.

Prior to this commit, the last type scanned would "win", and all others
with the same name would be missing from the ConnInfo type maps, which
would subsequently cause any PREPARE involving columns of those missing
types to return the error "unknown oid".
2017-09-11 11:29:42 -07:00
Jack Christensen
a1e4d17e58 Fix sslmode require test 2017-09-09 11:05:27 -05:00
Kelsey Francis
ea740fb316 Fix some invalid one round trip execs failing to return non-nil error
Prior to this commit, execEx() would write the one round trip exec to
the connection before first calling ensureConnectionReadyForQuery, which
ultimately caused any errors to be suppressed if the exec followed a
valid query, because the receive message processing would finish
successfully as soon as it received the ReadyForQuery that actually
belonged to the preceding query. So, the exec would never actually
receive the error message that it caused, leaving it to be incorrectly
received by the first subsequent query sent.
2017-08-28 18:51:35 -07:00
Jack Christensen
fb90fb2729 Add notification response hook
refs #239
2017-06-04 21:18:26 -05:00
Jack Christensen
27ab289096 Use Go casing convention for OID 2017-06-03 11:53:49 -05:00
Jack Christensen
95c11a1fd1 Remove bad channel sync causing orphaned goroutine 2017-05-31 07:57:22 -05:00
Jack Christensen
dd5de3e49e Add single round-trip mode for ExecEx 2017-05-29 09:11:52 -05:00
Jack Christensen
8a7165dd98 Add ctx to PrepareEx
Remove PrepareExContext
2017-05-20 18:03:59 -05:00
Jack Christensen
280bce7078 Added log adapter for logrus
Also changed standard logger interface to take a map instead of varargs for
extra data.
2017-04-29 21:28:38 -05:00
Jack Christensen
855b735eae Add log adapters for testing and log15
Make LogLevel a type for Stringer interface.
2017-04-29 20:33:52 -05:00
Jack Christensen
7b1f461ec3 Add simple protocol suuport with (Query|Exec)Ex 2017-04-10 08:58:51 -05:00
James Lawrence
c5d247830c enable sql.Open to support both DSN and URI based connection strings 2017-04-01 08:50:48 -05:00
Jack Christensen
d7973d87dd Fix TestParseEnvLibpq when PGSSLMODE is set 2017-03-24 13:27:04 -05:00
Jack Christensen
9ab59a74a9 Remove oid constants from pgx 2017-03-18 14:59:34 -05:00
Jack Christensen
5eb19bc66a Add *Conn.CopyFrom
This replaces *Conn.CopyTo. CopyTo was named incorrectly. In PostgreSQL
COPY FROM is the command that copies from the client to the server. In
addition, CopyTo does not accept a schema qualified table name. This
commit introduces the Identifier type which handles multi-part names and
correctly quotes/sanitizes them. The new CopyFrom method uses this
Identifier type.

Conn.CopyTo is deprecated.

refs #243 and #190
2017-03-17 08:25:49 -05:00
Jack Christensen
ba5f97176a Move not null Oid to pgtype
In preparation to ConnInfo implementation.
2017-03-13 21:34:38 -05:00
Jack Christensen
743b98b298 Name PG types as words
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.
2017-03-11 17:03:23 -06:00
Jack Christensen
908c439317 Use stdlib context 2017-03-03 16:01:06 -06:00
Jack Christensen
ccc65c361a Privatize Conn.SecretKey 2017-02-16 18:31:34 -06:00
Jack Christensen
e390ac33f5 Fix Fatal -> Fatalf 2017-02-16 18:12:42 -06:00
Jack Christensen
11b82b3ca4 msgReader implemented in terms of ChunkReader
This should substantially reduce memory allocations and memory copies.

It also means that PostgreSQL messages are always entirely buffered in memory
before processing begins. This simplifies the message processing code.

In particular, Conn.WaitForNotification is dramatically simplified by this
change.
2017-02-13 20:45:42 -06:00
Jack Christensen
7fbff4a495 Merge branch 'context' into v3-experimental 2017-02-12 15:13:47 -06:00
Jack Christensen
e4f9108e82 wip 2017-02-11 14:59:16 -06:00
Jack Christensen
a9e7e3acbc Extract connection dead on server test 2017-02-04 16:03:20 -06:00
Jack Christensen
78adfb13d7 Add Ping, PingContext, and ExecContext 2017-02-04 14:20:00 -06:00
Jack Christensen
ec513248ac Conn.PID accessed through method 2017-01-07 13:37:36 -06:00
Jack Christensen
93e5c68f69 Merge branch 'master' into v3-experimental 2016-12-10 12:21:08 -06:00
Martin Hamrle
9f6b99e332 Cleanups
Cleanups suggested by gometalinter tools.
2016-08-30 20:05:44 +02:00
Jack Christensen
73124171e2 Rename Pid to PID 2016-08-02 15:10:00 -05:00
Jack Christensen
390f75c0e1 Reduce Logger interface to Log method 2016-08-02 14:42:31 -05:00
Jack Christensen
214443deb7 Rename Oid to OID 2016-08-02 13:31:55 -05:00
Jack Christensen
40f00f4a82 Pass PrepareEx opts as pointer and DRY implementation 2016-05-20 08:30:10 -05:00