fixed bug #3419, moved DSN parsing to DB.php so the driver could properly be set to instantiate the correct db driver class.
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 6b3a74b..b101317 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -70,12 +70,7 @@
 	 * Constructor.  Accepts one parameter containing the database

 	 * connection settings.

 	 *

-	 * Database settings can be passed as discreet

-	 * parameters or as a data source name in the first

-	 * parameter. DSNs must have this prototype:

-	 * $dsn = 'driver://username:password@hostname/database';

-	 *

-	 * @param mixed. Can be an array or a DSN string

+	 * @param array

 	 */	

 	function CI_DB_driver($params)

 	{

@@ -86,24 +81,6 @@
 				$this->$key = $val;

 			}

 		}

-		elseif (strpos($params, '://'))

-		{

-			if (FALSE === ($dsn = @parse_url($params)))

-			{

-				log_message('error', 'Invalid DB Connection String');

-			

-				if ($this->db_debug)

-				{

-					return $this->display_error('db_invalid_connection_str');

-				}

-				return FALSE;			

-			}

-			

-			$this->hostname = ( ! isset($dsn['host'])) ? '' : rawurldecode($dsn['host']);

-			$this->username = ( ! isset($dsn['user'])) ? '' : rawurldecode($dsn['user']);

-			$this->password = ( ! isset($dsn['pass'])) ? '' : rawurldecode($dsn['pass']);

-			$this->database = ( ! isset($dsn['path'])) ? '' : rawurldecode(substr($dsn['path'], 1));

-		}

 

 		log_message('debug', 'Database Driver Class Initialized');

 	}