On Nov 22, 2013, at 8:48 PM, Darren Duncan <dar...@darrenduncan.net> wrote:

>>     postgresql://user@localhost:5433/dbname
>>     sqlite:///path/to/foo.db
> 
> By "database name" do you mean "DBMS name"?  Because I'd say the "database 
> name" is what's on the right-hand side of the //, not what's on the left.

Yes, correct.

> Another thing I was going to say is, if you wanted some standardization, you 
> should distinguish the parts that are necessary to connect to a database from 
> parts that just select a default schema in the database for interacting with.

Getting a bit OT from my original questions here. But anyway, I’m following the 
JDBC and PostgreSQL examples here, where, frankly, are almost identical to most 
other URLs. This is a very good thing.

> By that I mean, remember that a PostgreSQL "database" and a MySQL "database" 
> aren't actually the same concept.  A PostgreSQL DBMS server gives access to 
> multiple disjoint databases where you must name one to connect, and then 
> separately from that is the optional concept of the current schema that you 
> can select.  A MySQL DBMS server gives access to exactly 1 database, which 
> you can connect to without specifying a "database name", and selecting a 
> current schema (what they call a "database") is optional for using MySQL.

While I agree that a PostgresSQL database and a MySQL database are not the same 
thing, the MySQL community still calls it a database and tends to think of it 
that way, and JDBC has set the precedent for relying on what the community 
calls a “database” to be the “database” part of the URL:

  
http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html

> The reason I say this is that DBI's uri scheme uses the same syntax for both 
> "database" even though how they're treated is actually very different.  And 
> you don't have to do the same.

I don’t have to, but that ship has long since sailed, so I will treat them the 
same as the DBI and JDBC.

Best,

David

Reply via email to