Re: Specification of "/" in the host name (for Unix socket
От | Barry Lind |
---|---|
Тема | Re: Specification of "/" in the host name (for Unix socket |
Дата | |
Msg-id | 3F627371.1070509@xythos.com обсуждение исходный текст |
Ответ на | Re: Specification of "/" in the host name (for Unix socket support) (Oliver Jowett <oliver@opencloud.com>) |
Список | pgsql-jdbc |
Overall I concur with what Oliver is suggesting here. However I slightly prefer the URL RFC compatible syntax. jdbc:postgresql-unix:///path/to/socket/database thanks, --Barry Oliver Jowett wrote: > On Fri, Sep 12, 2003 at 03:20:49PM -0400, Deepak Bhole wrote: > >>Hi, >> >> We are trying to add support for Unix sockets to the current jdbc (for >>our own release for now). The support is added via gnu classpath,located >>at: http://www.nfrese.net/software/gnu_net_local/overview.html >> >> Since Unix sockets require specification of path to the socket, the url >>would be something like: jdbc:postgresql:///tmp:5432/template1... >> >> However, since the path starts with a "/" which is a token separator, >>parseURL in Driver.java cannot handle it, and sets the host to "/". To >>find possible solutions, we referred to the URL RFC located at: >>http://www.w3.org/Addressing/rfc1738.txt >> >> Section 5, the BNF mentions that "% <hex> <hex>" is an escaped >>character. We are thinking of implementing a similar idea for the jdbc >>url. i.e. the URL jdbc:postgresql:///tmp:5432/template1... would have to >>be specified as jdbc:postgresql://%2Ftmp:5432/template1... , 2F being >>the ascii code for "/" in hex. This would of course necessitate the >>addition of an extra function for parsing tokens but it would be fairly >>simple to implement. >> >> Does the above mentioned approach seem reasonable or is there another >>format that should be followed? > > > Have you considered using something like "jdbc:postgresql-unix:...." and > having the parser handle the two cases separately? It's a different > communication path, after all .. "host" and "port" doesn't make much sense > for unix sockets. i.e. use something like: > > jdbc:postgresql-unix:///var/run/postgresql/.s.PGSQL.5432/template1 > > In fact, since this isn't a network protocol at all, how about dropping the > "common internet scheme syntax" altogether in favour of clarity: > > jdbc:postgresql-unix:/var/run/postgresql/.s.PGSQL.5432:template1 > > -O > > ---------------------------(end of broadcast)--------------------------- > TIP 7: don't forget to increase your free space map settings >
В списке pgsql-jdbc по дате отправления: