Ticket #4546 (closed enhancement: fixed)
Opened 5 years ago
Last modified 5 years ago
PATCH: Proper UNIX socket support for PostgreSQL
| Reported by: | pacopablo | Owned by: | mgood |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.10.4 |
| Component: | general | Version: | 0.10.3 |
| Severity: | normal | Keywords: | postgresql unix socket |
| Cc: | pacopablo@… | ||
| Release Notes: | |||
| API Changes: | |||
Description (last modified by mgood) (diff)
Currently, if one wants to use UNIX sockets for PostgreSQL (much nicer than TCP), trac only supports connecting to the default socket defined in the PGHOST environment variable.
This is hackish.
Attached is a 2 line patch that allows the host to be specified in the database url. it also give preference to UNIX sockets of TCP sockets. This meaning that if a TCP host s specified and a UNIX socket are given, the UNIX socket will be used.
Usage:
postgres://user:password@/database?host=/path/to/socket/dir
Currently, one can only connect to the default socket dir via:
postgres://user:password@/database
Attachments
Change History
Changed 5 years ago by pacopablo
- Attachment postgres_unix_socket.patch added
comment:1 Changed 5 years ago by pacopablo
Ok, so me and my bad typing. Obviously, the examples of the db strings should be the following:
postgres://user:password@/database?host=/path/to/socket/dir
and
postgres://user:password@/database
Will someone please fix the ticket description? Thanks
comment:2 Changed 5 years ago by mgood
- Description modified (diff)
- Milestone set to 0.10.4
- Owner changed from jonas to mgood
- Status changed from new to assigned
Looks ok, though I'd like to check out how to do this for pyPgSQL as well too.
Changed 5 years ago by pacopablo
- Attachment postgres_unix_socket.2.patch added
updated patch that supports both psycopg2 and pyPgSQL
comment:3 follow-up: ↓ 4 Changed 5 years ago by pacopablo
OK, just attached patch that is tested working with both psycopg2 and pyPgSQL.
They are both very similar except that pyPgSQL take positional parameters where psycopg2 takes a dsn. Anyway, the solution was to simply move the 2 lines before the if psycopg: block
comment:4 in reply to: ↑ 3 Changed 5 years ago by mgood
- Resolution set to fixed
- Status changed from assigned to closed



patch to enable use of UNIX sockets withPostgreSQL