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 11 years ago
          Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
          
          
        
        
      
      - Status changed from Open to Assigned
- Assignee set to naruse (Yui NARUSE)
        
           Updated by naruse (Yui NARUSE) almost 8 years ago
          Updated by naruse (Yui NARUSE) almost 8 years ago
          
          
        
        
      
      - Status changed from Assigned to Closed
Fixed it at r60970.
        
           Updated by duerst (Martin Dürst) almost 8 years ago
          Updated by duerst (Martin Dürst) almost 8 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.