Edgewall Software
Modify

Opened 11 years ago

Closed 11 years ago

Last modified 3 years ago

#4546 closed enhancement (fixed)

PATCH: Proper UNIX socket support for PostgreSQL

Reported by: pacopablo Owned by: Matthew Good
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 Matthew Good)

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 (2)

postgres_unix_socket.patch (581 bytes ) - added by pacopablo 11 years ago.
patch to enable use of UNIX sockets withPostgreSQL
postgres_unix_socket.2.patch (579 bytes ) - added by pacopablo 11 years ago.
updated patch that supports both psycopg2 and pyPgSQL

Download all attachments as: .zip

Change History (7)

Changed 11 years ago by pacopablo

Attachment: postgres_unix_socket.patch added

patch to enable use of UNIX sockets withPostgreSQL

comment:1 Changed 11 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 11 years ago by Matthew Good

Description: modified (diff)
Milestone: 0.10.4
Owner: changed from Jonas Borgström to Matthew Good
Status: newassigned

Looks ok, though I'd like to check out how to do this for pyPgSQL as well too.

Changed 11 years ago by pacopablo

updated patch that supports both psycopg2 and pyPgSQL

comment:3 Changed 11 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 11 years ago by Matthew Good

Resolution: fixed
Status: assignedclosed

Replying to pacopablo:

OK, just attached patch that is tested working with both psycopg2 and pyPgSQL.

Thanks. I've applied the patch in r4579 and r4580 with a small change to use the in operator instead of has_key.

comment:5 Changed 3 years ago by Ryan J Ollos

Keywords: postgresql unix socketpostgresql, unix, socket

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Matthew Good.
The resolution will be deleted.
to The owner will be changed from Matthew Good to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .

 
Note: See TracTickets for help on using tickets.