? db_url_as_array_support.patch
Index: includes/command.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drush/includes/command.inc,v
retrieving revision 1.14
diff -u -r1.14 command.inc
--- includes/command.inc	15 Feb 2009 19:33:38 -0000	1.14
+++ includes/command.inc	22 Feb 2009 01:07:35 -0000
@@ -27,7 +27,7 @@
  */
 function drush_get_commands() {
   $commands = drush_command_invoke_all('drush_command');
-  
+
   // Filter out commands which are invalid for the current version of core Drupal.
   $commands = drush_enforce_requirement_core($commands);
   
Index: includes/core_commands.drush.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drush/includes/core_commands.drush.inc,v
retrieving revision 1.23
diff -u -r1.23 core_commands.drush.inc
--- includes/core_commands.drush.inc	16 Feb 2009 11:36:20 -0000	1.23
+++ includes/core_commands.drush.inc	22 Feb 2009 01:07:36 -0000
@@ -183,8 +183,22 @@
       switch (drush_drupal_major_version()) {
         case 5:
         case 6:
-          drush_print(dt("Current database: !db_url", array('!db_url' => $GLOBALS['db_url'])));
-          break;
+	  $rows = array();
+          $rows[] = array('Connection name', 'Connection string');
+	  $active = db_set_active();
+	  db_set_active($active);
+
+	  if ( is_array($GLOBALS['db_url']) ) {
+	    foreach ( $GLOBALS['db_url'] as $name => $db_string ) {
+	      $name .= ($name == $active) ? ' (active)': '';
+	      $rows[] = array($name, $db_string);
+	    }
+	    drush_print_table($rows, 0, true);
+	  }
+	  else {
+            drush_print(dt("Current database: !db_url", array('!db_url' => $GLOBALS['db_url'])));
+          }
+	  break;
         case 7:
           $db_conn = Database::getConnectionInfo();
           drush_print(dt("Current database:"));
