Bug #9912
closedURI#to_s with an empty host formats the string incorrectly
Description
maciek@gamera:~$ ruby -e "puts URI.parse('postgres:///foo').to_s"
postgres:/foo
The string of the formatted URI should be 'postgres:///foo'.
Postgres uses empty-host URIs to indicate a Unix socket connection should be used instead of a TCP connection (which is used if you specify 'localhost' as host), so this can be very useful.
Updated by nagachika (Tomoyuki Chikanaga) over 10 years ago
- Status changed from Open to Assigned
- Assignee set to naruse (Yui NARUSE)
Updated by naruse (Yui NARUSE) about 7 years ago
- Status changed from Assigned to Closed
Fixed it at r60970.
Updated by duerst (Martin Dürst) about 7 years ago
[I wrote this directly to ruby-core because I didn't see the issue, but want to make sure it's in the right place.]
The "postgres:" URI scheme isn't even mentioned in the registry at https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml, so I'm not really sure we should deal with it in a special way.
In more general terms, creating exceptions for schemes is a bad idea, even if it may look like a good idea.