diff --git a/system/database/DB.php b/system/database/DB.php
index d2afce9..c6bd365 100644
--- a/system/database/DB.php
+++ b/system/database/DB.php
@@ -7,7 +7,7 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
@@ -46,7 +46,7 @@
 	}
 
 	// Load the DB classes.  Note: Since the active record class is optional
-	// we need to dynamically create a class that extends proper parent class 
+	// we need to dynamically create a class that extends proper parent class
 	// based on whether we're using the active record class or not.
 	// Kudos to Paul for discovering this clever use of eval()
 	
@@ -57,7 +57,7 @@
 	
 	require_once(BASEPATH.'database/DB_driver'.EXT);
 
-	if ( ! isset($params['active_r']) OR $params['active_r'] == TRUE) 
+	if ( ! isset($params['active_r']) OR $params['active_r'] == TRUE)
 	{
 		require_once(BASEPATH.'database/DB_active_rec'.EXT);
 		
diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php
index 8db6161..b41b929 100644
--- a/system/database/DB_active_rec.php
+++ b/system/database/DB_active_rec.php
@@ -7,17 +7,17 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
  * Active Record Class
- * 
+ *
  * This is the platform-independent base Active Record implementation class.
  *
  * @package		CodeIgniter
@@ -547,11 +547,11 @@
 	
 		if (count($this->ar_set) == 0)
 		{
-            if ($this->db_debug)
-            {
+			if ($this->db_debug)
+			{
 				return $this->display_error('db_must_use_set');
-            }
-            return FALSE;        
+			}
+			return FALSE;
 		}
 
 		if ($table == '')
@@ -596,11 +596,11 @@
 	
 		if (count($this->ar_set) == 0)
 		{
-            if ($this->db_debug)
-            {
+			if ($this->db_debug)
+			{
 				return $this->display_error('db_must_use_set');
-            }
-            return FALSE;        
+			}
+			return FALSE;
 		}
 
 		if ($table == '')
@@ -663,11 +663,11 @@
 
 		if (count($this->ar_where) == 0)
 		{
-            if ($this->db_debug)
-            {
+			if ($this->db_debug)
+			{
 				return $this->display_error('db_del_must_use_where');
-            }
-            return FALSE;        
+			}
+			return FALSE;
 		}		
 		
 		$sql = $this->_delete($this->dbprefix.$table, $this->ar_where);
@@ -679,7 +679,7 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * Use Table - DEPRECATED 
+	 * Use Table - DEPRECATED
 	 *
 	 * @deprecated	use $this->db->from instead
 	 */
@@ -726,7 +726,7 @@
 	/**
 	 * Compile the SELECT statement
 	 *
-	 * Generates a query string based on which functions were used. 
+	 * Generates a query string based on which functions were used.
 	 * Should not be called directly.  The get() function calls it.
 	 *
 	 * @access	private
diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php
index b469b0e..53425d1 100644
--- a/system/database/DB_cache.php
+++ b/system/database/DB_cache.php
@@ -7,7 +7,7 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 8a7b88f..ab8a6a8 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -7,17 +7,17 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
  * Database Driver Class
- * 
+ *
  * This is the platform-independent base DB implementation class.
  * This class will not be called directly. Rather, the adapter
  * class for the specific database will extend and instantiate it.
@@ -64,10 +64,10 @@
 	
 	/**
 	 * Constructor.  Accepts one parameter containing the database
-	 * connection settings. 
+	 * connection settings.
 	 *
-	 * Database settings can be passed as discreet 
-	 * parameters or as a data source name in the first 
+	 * 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';
 	 *
@@ -93,16 +93,16 @@
 		if (is_array($params))
 		{
 			$defaults = array(
-								'hostname'	=> '', 
-								'username'	=> '', 
-								'password'	=> '', 
-								'database'	=> '', 
-								'dbdriver'	=> 'mysql', 
-								'dbprefix'	=> '', 
-								'port'		=> '', 
-								'pconnect'	=> FALSE, 
-								'db_debug'	=> FALSE, 
-								'cachedir'	=> '', 
+								'hostname'	=> '',
+								'username'	=> '',
+								'password'	=> '',
+								'database'	=> '',
+								'dbdriver'	=> 'mysql',
+								'dbprefix'	=> '',
+								'port'		=> '',
+								'pconnect'	=> FALSE,
+								'db_debug'	=> FALSE,
+								'cachedir'	=> '',
 								'cache_on'	=> FALSE
 							);
 		
@@ -132,9 +132,9 @@
 		
 		// Connect to the database
 		$this->conn_id = ($this->pconnect == FALSE) ? $this->db_connect() : $this->db_pconnect();
-	   
+	
 		if ( ! $this->conn_id)
-		{ 
+		{
 			log_message('error', 'Unable to connect to the database');
 			
 			if ($this->db_debug)
@@ -162,7 +162,7 @@
 	 * The name of the platform in use (mysql, mssql, etc...)
 	 *
 	 * @access	public
-	 * @return	string		 
+	 * @return	string		
 	 */	
 	function platform()
 	{
@@ -172,7 +172,7 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * Database Version Number.  Returns a string containing the 
+	 * Database Version Number.  Returns a string containing the
 	 * version of the database being used
 	 *
 	 * @access	public
@@ -204,16 +204,16 @@
 	/**
 	 * Execute the query
 	 *
-	 * Accepts an SQL string as input and returns a result object upon 
-	 * successful execution of a "read" type query.  Returns boolean TRUE 
-	 * upon successful execution of a "write" type query. Returns boolean 
-	 * FALSE upon failure, and if the $db_debug variable is set to TRUE 
+	 * Accepts an SQL string as input and returns a result object upon
+	 * successful execution of a "read" type query.  Returns boolean TRUE
+	 * upon successful execution of a "write" type query. Returns boolean
+	 * FALSE upon failure, and if the $db_debug variable is set to TRUE
 	 * will raise an error.
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	An SQL query string
 	 * @param	array	An array of binding data
-	 * @return	mixed		 
+	 * @return	mixed		
 	 */	
 	function query($sql, $binds = FALSE, $return_object = TRUE)
 	{
@@ -227,8 +227,8 @@
 			return FALSE;		
 		}
 		
-		// Is query caching enabled?  If the query is a "read type" 
-		// we will load the caching class and return the previously 
+		// Is query caching enabled?  If the query is a "read type"
+		// we will load the caching class and return the previously
 		// cached query if it exists
 		if ($this->cache_on == TRUE AND stristr($sql, 'SELECT'))
 		{
@@ -253,10 +253,10 @@
 
 		// Start the Query Timer
 		$time_start = list($sm, $ss) = explode(' ', microtime());
-	  
+	
 		// Run the Query
 		if (FALSE === ($this->result_id = $this->simple_query($sql)))
-		{ 
+		{
 			// This will trigger a rollback if transactions are being used
 			$this->_trans_failure = TRUE;
 			
@@ -265,13 +265,13 @@
 				log_message('error', 'Query error: '.$this->_error_message());
 				return $this->display_error(
 										array(
-												'Error Number: '.$this->_error_number(), 
+												'Error Number: '.$this->_error_number(),
 												$this->_error_message(),
 												$sql
 											)
 										);
 			}
-		  
+		
 		  return FALSE;
 		}
 		
@@ -296,7 +296,7 @@
 			return TRUE;
 		}
 		
-		// Return TRUE if we don't need to create a result object 
+		// Return TRUE if we don't need to create a result object
 		// Currently only the Oracle driver uses this when stored
 		// procedures are used
 		if ($return_object !== TRUE)
@@ -318,7 +318,7 @@
 			$RES->limit_used	= $this->limit_used;
 		}
 		
-		// Is query caching enabled?  If so, we'll serialize the 
+		// Is query caching enabled?  If so, we'll serialize the
 		// result object and save it to a cache file.
 		if ($this->cache_on == TRUE AND $this->_cache_init())
 		{
@@ -347,9 +347,9 @@
 
 	/**
 	 * Load the result drivers
-	 * 
+	 *
 	 * @access	public
-	 * @return	string 	the name of the result class		 
+	 * @return	string 	the name of the result class		
 	 */		
 	function load_rdriver()
 	{
@@ -367,14 +367,14 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * Simple Query  
+	 * Simple Query
 	 * This is a simplified version of the query() function.  Internally
 	 * we only use it when running transaction commands since they do
 	 * not require all the features of the main query() function.
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the sql query
-	 * @return	mixed		 
+	 * @return	mixed		
 	 */	
 	function simple_query($sql)
 	{
@@ -391,9 +391,9 @@
 	/**
 	 * Disable Transactions
 	 * This permits transactions to be disabled at run-time.
-	 * 
+	 *
 	 * @access	public
-	 * @return	void		 
+	 * @return	void		
 	 */	
 	function trans_off()
 	{
@@ -404,9 +404,9 @@
 
 	/**
 	 * Start Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	void		 
+	 * @return	void		
 	 */	
 	function trans_start($test_mode = FALSE)
 	{	
@@ -429,9 +429,9 @@
 
 	/**
 	 * Complete Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_complete()
 	{
@@ -467,9 +467,9 @@
 
 	/**
 	 * Lets you retrieve the transaction flag to determine if it has failed
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_status()
 	{
@@ -480,11 +480,11 @@
 
 	/**
 	 * Compile Bindings
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the sql statement
 	 * @param	array	an array of bind data
-	 * @return	string		 
+	 * @return	string		
 	 */	
 	function compile_binds($sql, $binds)
 	{	
@@ -514,15 +514,15 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * Determines if a query is a "write" type. 
-	 * 
+	 * Determines if a query is a "write" type.
+	 *
 	 * @access	public
 	 * @param	string	An SQL query string
-	 * @return	boolean		 
+	 * @return	boolean		
 	 */	
 	function is_write_type($sql)
 	{
-		if ( ! preg_match('/^\s*"?(INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) 
+		if ( ! preg_match('/^\s*"?(INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql))
 		{
 			return FALSE;
 		}
@@ -532,11 +532,11 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * Calculate the aggregate query elapsed time 
-	 * 
+	 * Calculate the aggregate query elapsed time
+	 *
 	 * @access	public
 	 * @param	integer	The number of decimal places
-	 * @return	integer		 
+	 * @return	integer		
 	 */	
 	function elapsed_time($decimals = 6)
 	{
@@ -547,9 +547,9 @@
 
 	/**
 	 * Returns the total number of queries
-	 * 
+	 *
 	 * @access	public
-	 * @return	integer		 
+	 * @return	integer		
 	 */	
 	function total_queries()
 	{
@@ -560,9 +560,9 @@
 
 	/**
 	 * Returns the last query that was executed
-	 * 
+	 *
 	 * @access	public
-	 * @return	void		 
+	 * @return	void		
 	 */	
 	function last_query()
 	{
@@ -576,10 +576,10 @@
 	 *
 	 * Escapes data based on type
 	 * Sets boolean and null types
-	 * 
+	 *
 	 * @access	public
 	 * @param	string
-	 * @return	integer		 
+	 * @return	integer		
 	 */	
 	function escape($str)
 	{	
@@ -605,10 +605,10 @@
 	 *
 	 * Retrieves the primary key.  It assumes that the row in the first
 	 * position is the primary key
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the table name
-	 * @return	string		 
+	 * @return	string		
 	 */	
 	function primary($table = '')
 	{	
@@ -626,9 +626,9 @@
 
 	/**
 	 * Returns an array of table names
-	 * 
+	 *
 	 * @access	public
-	 * @return	array		 
+	 * @return	array		
 	 */	
 	function list_tables()
 	{
@@ -688,7 +688,7 @@
 	 *
 	 * @access	public
 	 * @param	string	the table name
-	 * @return	array		 
+	 * @return	array		
 	 */
 	function list_fields($table = '')
 	{
@@ -754,7 +754,7 @@
 	/**
 	 * DEPRECATED - use list_fields()
 	 */
-	function field_names($table = '') 
+	function field_names($table = '')
 	{
 		return $this->list_fields($table);
 	}
@@ -763,10 +763,10 @@
 
 	/**
 	 * Returns an object with field data
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the table name
-	 * @return	object		 
+	 * @return	object		
 	 */	
 	function field_data($table = '')
 	{
@@ -787,18 +787,18 @@
 	
 	/**
 	 * Generate an insert string
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the table upon which the query will be performed
 	 * @param	array	an associative array data of key/values
-	 * @return	string		 
+	 * @return	string		
 	 */	
 	function insert_string($table, $data)
 	{
-		$fields = array();	  
+		$fields = array();	
 		$values = array();
 		
-		foreach($data as $key => $val) 
+		foreach($data as $key => $val)
 		{
 			$fields[] = $key;
 			$values[] = $this->escape($val);
@@ -811,12 +811,12 @@
 
 	/**
 	 * Generate an update string
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the table upon which the query will be performed
 	 * @param	array	an associative array data of key/values
 	 * @param	mixed	the "where" statement
-	 * @return	string		 
+	 * @return	string		
 	 */	
 	function update_string($table, $data, $where)
 	{
@@ -824,7 +824,7 @@
 			return false;
 					
 		$fields = array();
-		foreach($data as $key => $val) 
+		foreach($data as $key => $val)
 		{
 			$fields[$key] = $this->escape($val);
 		}
@@ -861,11 +861,11 @@
 
 	/**
 	 * Enables a native PHP function to be run, using a platform agnostic wrapper.
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the function name
 	 * @param	mixed	any parameters needed by the function
-	 * @return	mixed		 
+	 * @return	mixed		
 	 */	
 	function call_function($function)
 	{
@@ -877,7 +877,7 @@
 		}
 		
 		if ( ! function_exists($function))
-		{ 
+		{
 			if ($this->db_debug)
 			{
 				return $this->display_error('db_unsupported_function');
@@ -888,7 +888,7 @@
 		{
 			$args = (func_num_args() > 1) ? array_splice(func_get_args(), 1) : null;
 
-			return call_user_func_array($function, $args); 
+			return call_user_func_array($function, $args);
 		}
 	}
 
@@ -999,16 +999,16 @@
 
 	/**
 	 * Close DB Connection
-	 * 
+	 *
 	 * @access	public
-	 * @return	void		 
+	 * @return	void		
 	 */	
 	function close()
 	{
 		if (is_resource($this->conn_id))
 		{
 			$this->_close($this->conn_id);
-		}   
+		}
 		$this->conn_id = FALSE;
 	}
 	
@@ -1016,14 +1016,14 @@
 
 	/**
 	 * Display an error message
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	the error message
 	 * @param	string	any "swap" values
 	 * @param	boolean	whether to localize the message
-	 * @return	string	sends the application/error_db.php template		 
+	 * @return	string	sends the application/error_db.php template		
 	 */	
-	function display_error($error = '', $swap = '', $native = FALSE) 
+	function display_error($error = '', $swap = '', $native = FALSE)
 	{
 		$LANG = new CI_Language();
 		$LANG->load('db');
@@ -1048,7 +1048,7 @@
 		echo $error->show_error('An Error Was Encountered', $message, 'error_db');
 		exit;
 
-	}  
+	}
 	
 }
 
diff --git a/system/database/DB_result.php b/system/database/DB_result.php
index d02bfb9..44f166d 100644
--- a/system/database/DB_result.php
+++ b/system/database/DB_result.php
@@ -7,17 +7,17 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
  * Database Result Class
- * 
+ *
  * This is the platform-independent result class.
  * This class will not be called directly. Rather, the adapter
  * class for the specific database will extend and instantiate it.
@@ -38,10 +38,10 @@
 
 	/**
 	 * Query result.  Acts as a wrapper function for the following functions.
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	can be "object" or "array"
-	 * @return	mixed	either a result object or array	 
+	 * @return	mixed	either a result object or array	
 	 */	
 	function result($type = 'object')
 	{	
@@ -52,9 +52,9 @@
 
 	/**
 	 * Query result.  "object" version.
-	 * 
+	 *
 	 * @access	public
-	 * @return	object 
+	 * @return	object
 	 */	
 	function result_object()
 	{
@@ -70,7 +70,7 @@
 		
 		$this->_data_seek(0);
 		while ($row = $this->_fetch_object())
-		{ 
+		{
 			$this->result_object[] = $row;
 		}
 		
@@ -81,9 +81,9 @@
 
 	/**
 	 * Query result.  "array" version.
-	 * 
+	 *
 	 * @access	public
-	 * @return	array 
+	 * @return	array
 	 */	
 	function result_array()
 	{
@@ -110,10 +110,10 @@
 
 	/**
 	 * Query result.  Acts as a wrapper function for the following functions.
-	 * 
+	 *
 	 * @access	public
 	 * @param	string	can be "object" or "array"
-	 * @return	mixed	either a result object or array	 
+	 * @return	mixed	either a result object or array	
 	 */	
 	function row($n = 0, $type = 'object')
 	{
@@ -124,9 +124,9 @@
 
 	/**
 	 * Returns a single result row - object version
-	 * 
+	 *
 	 * @access	public
-	 * @return	object 
+	 * @return	object
 	 */	
 	function row_object($n = 0)
 	{
@@ -149,9 +149,9 @@
 
 	/**
 	 * Returns a single result row - array version
-	 * 
+	 *
 	 * @access	public
-	 * @return	array 
+	 * @return	array
 	 */	
 	function row_array($n = 0)
 	{
@@ -175,9 +175,9 @@
 
 	/**
 	 * Returns the "first" row
-	 * 
+	 *
 	 * @access	public
-	 * @return	object 
+	 * @return	object
 	 */	
 	function first_row($type = 'object')
 	{
@@ -194,9 +194,9 @@
 
 	/**
 	 * Returns the "last" row
-	 * 
+	 *
 	 * @access	public
-	 * @return	object 
+	 * @return	object
 	 */	
 	function last_row($type = 'object')
 	{
@@ -213,9 +213,9 @@
 
 	/**
 	 * Returns the "next" row
-	 * 
+	 *
 	 * @access	public
-	 * @return	object 
+	 * @return	object
 	 */	
 	function next_row($type = 'object')
 	{
@@ -238,9 +238,9 @@
 
 	/**
 	 * Returns the "previous" row
-	 * 
+	 *
 	 * @access	public
-	 * @return	object 
+	 * @return	object
 	 */	
 	function previous_row($type = 'object')
 	{
@@ -261,11 +261,11 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * The following functions are normally overloaded by the identically named 
+	 * The following functions are normally overloaded by the identically named
 	 * methods in the platform-specific driver -- except when query caching
 	 * is used.  When caching is enabled we do not load the other driver.
 	 * These functions are primarily here to prevent undefined function errors
-	 * when a cached result object is in use.  They are not otherwise fully 
+	 * when a cached result object is in use.  They are not otherwise fully
 	 * operational due to the unavailability of the database resource IDs with
 	 * cached results.
 	 */
diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index 13fcaa5..e64e008 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -7,7 +7,7 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
@@ -302,7 +302,7 @@
 			}
 			$xml .= $tab."</{$element}>".$newline;
 		}
-		$xml .= "</$root>".$newline;  
+		$xml .= "</$root>".$newline;
 		
 		return $xml;
 	}
@@ -371,13 +371,13 @@
 
 		// Is the encoder supported?  If not, we'll either issue an
 		// error or use plain text depending on the debug settings
-		if (($prefs['format'] == 'gzip' AND ! @function_exists('gzencode')) 
-		 OR ($prefs['format'] == 'zip'  AND ! @function_exists('gzcompress'))) 
+		if (($prefs['format'] == 'gzip' AND ! @function_exists('gzencode'))
+		 OR ($prefs['format'] == 'zip'  AND ! @function_exists('gzcompress')))
 		{
-            if ($this->db->db_debug)
-            {
+			if ($this->db->db_debug)
+			{
 				return $this->db->display_error('db_unsuported_compression');
-            }
+			}
 		
 			$prefs['format'] = 'txt';
 		}
diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php
index 4dc8792..a1d7d29 100644
--- a/system/database/drivers/mssql/mssql_driver.php
+++ b/system/database/drivers/mssql/mssql_driver.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -106,18 +106,18 @@
 	 * @param	string	an SQL query
 	 * @return	string
 	 */	
-    function _prep_query($sql)
-    {
+	function _prep_query($sql)
+	{
 		return $sql;
-    }
+	}
 
 	// --------------------------------------------------------------------
 
 	/**
 	 * Begin Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_begin($test_mode = FALSE)
 	{
@@ -133,8 +133,8 @@
 		}
 
 		// Reset the transaction failure flag.
-		// If the $test_mode flag is set to TRUE transactions will be rolled back 
-		// even if the queries produce a successful result. 
+		// If the $test_mode flag is set to TRUE transactions will be rolled back
+		// even if the queries produce a successful result.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 
 		$this->simple_query('BEGIN TRAN');
@@ -145,9 +145,9 @@
 
 	/**
 	 * Commit Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_commit()
 	{
@@ -170,9 +170,9 @@
 
 	/**
 	 * Rollback Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_rollback()
 	{
diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php
index 0ba0b8c..230c1b5 100644
--- a/system/database/drivers/mssql/mssql_result.php
+++ b/system/database/drivers/mssql/mssql_result.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -65,7 +65,7 @@
 		$field_names = array();
 		while ($field = mssql_fetch_field($this->result_id))
 		{
-			$field_names[] = $field->name;       
+			$field_names[] = $field->name;
 		}
 		
 		return $field_names;
@@ -116,8 +116,8 @@
 	{
 		if (is_resource($this->result_id))
 		{
-        	mssql_free_result($this->result_id);
-        	$this->result_id = FALSE;
+			mssql_free_result($this->result_id);
+			$this->result_id = FALSE;
 		}
 	}
 
diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php
index 24ff1e1..4a49f53 100644
--- a/system/database/drivers/mssql/mssql_utility.php
+++ b/system/database/drivers/mssql/mssql_utility.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -74,7 +74,7 @@
 	 */
 	function _list_databases()
 	{
-		return "EXEC sp_helpdb"; // Can also be: EXEC sp_databases 
+		return "EXEC sp_helpdb"; // Can also be: EXEC sp_databases
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index 20311ff..be7c672 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -32,10 +32,10 @@
 
 	/**
 	 * Whether to use the MySQL "delete hack" which allows the number
-	 * of affected rows to be shown. Uses a preg_replace when enabled, 
+	 * of affected rows to be shown. Uses a preg_replace when enabled,
 	 * adding a bit more processing to all queries.
 	 */	
-	var $delete_hack = TRUE; 
+	var $delete_hack = TRUE;
 
 	/**
 	 * Non-persistent database connection
@@ -113,28 +113,28 @@
 	 * @param	string	an SQL query
 	 * @return	string
 	 */	
-    function _prep_query($sql)
-    {
-		// "DELETE FROM TABLE" returns 0 affected rows This hack modifies 
+	function _prep_query($sql)
+	{
+		// "DELETE FROM TABLE" returns 0 affected rows This hack modifies
 		// the query so that it returns the number of affected rows
 		if ($this->delete_hack === TRUE)
 		{
-			if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) 
+			if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql))
 			{
 				$sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql);
 			}
 		}
 		
 		return $sql;
-    }
-    
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
 	 * Begin Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_begin($test_mode = FALSE)
 	{
@@ -150,8 +150,8 @@
 		}
 
 		// Reset the transaction failure flag.
-		// If the $test_mode flag is set to TRUE transactions will be rolled back 
-		// even if the queries produce a successful result. 
+		// If the $test_mode flag is set to TRUE transactions will be rolled back
+		// even if the queries produce a successful result.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 		
 		$this->simple_query('SET AUTOCOMMIT=0');
@@ -163,9 +163,9 @@
 
 	/**
 	 * Commit Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_commit()
 	{
@@ -189,9 +189,9 @@
 
 	/**
 	 * Rollback Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_rollback()
 	{
@@ -227,8 +227,8 @@
 			return $str;
 		}
 
-    	if (function_exists('mysql_real_escape_string'))
-    	{
+		if (function_exists('mysql_real_escape_string'))
+		{
 			return mysql_real_escape_string($str, $this->conn_id);
 		}
 		elseif (function_exists('mysql_escape_string'))
@@ -237,8 +237,8 @@
 		}
 		else
 		{
-        	return addslashes($str);
-    	}
+			return addslashes($str);
+		}
 	}
 		
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php
index 1cf6ff1..4bfaf54 100644
--- a/system/database/drivers/mysql/mysql_result.php
+++ b/system/database/drivers/mysql/mysql_result.php
@@ -7,7 +7,7 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
@@ -65,7 +65,7 @@
 		$field_names = array();
 		while ($field = mysql_fetch_field($this->result_id))
 		{
-			$field_names[] = $field->name;       
+			$field_names[] = $field->name;
 		}
 		
 		return $field_names;
@@ -116,8 +116,8 @@
 	{
 		if (is_resource($this->result_id))
 		{
-        	mysql_free_result($this->result_id);
-        	$this->result_id = FALSE;
+			mysql_free_result($this->result_id);
+			$this->result_id = FALSE;
 		}
 	}
 
diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php
index b387ace..b0a7dfe 100644
--- a/system/database/drivers/mysql/mysql_utility.php
+++ b/system/database/drivers/mysql/mysql_utility.php
@@ -7,7 +7,7 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
@@ -129,39 +129,39 @@
 	
 		// Build the output
 		$output = '';
-        foreach ((array)$tables as $table)
-        { 
-        	// Is the table in the "ignore" list?
+		foreach ((array)$tables as $table)
+		{
+			// Is the table in the "ignore" list?
 			if (in_array($table, (array)$ignore, TRUE))
 			{
-        		continue;
-        	}
+				continue;
+			}
 
-        	// Get the table schema
+			// Get the table schema
 			$query = $this->db->query("SHOW CREATE TABLE `".$this->db->database.'`.'.$table);
 			
 			// No result means the table name was invalid
-        	if ($query === FALSE)
-        	{
-        		continue;
-        	}
-        	
-        	// Write out the table schema
-            $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline;
-                
+			if ($query === FALSE)
+			{
+				continue;
+			}
+			
+			// Write out the table schema
+			$output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline;
+
  			if ($add_drop == TRUE)
  			{
-            	$output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline;
+				$output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline;
 			}
 			
 			$i = 0;
 			$result = $query->result_array();
 			foreach ($result[0] as $val)
 			{
-			    if ($i++ % 2)
-			    { 			    	
-			    	$output .= $val.';'.$newline.$newline;
-			    }
+				if ($i++ % 2)
+				{ 					
+					$output .= $val.';'.$newline.$newline;
+				}
 			}
 			
 			// If inserts are not needed we're done...
@@ -179,7 +179,7 @@
 			}
 		
 			// Fetch the field names and determine if the field is an
-			// integer type.  We use this info to decide whether to 
+			// integer type.  We use this info to decide whether to
 			// surround the data with quotes or not
 			
 			$i = 0;
@@ -188,13 +188,13 @@
 			while ($field = mysql_fetch_field($query->result_id))
 			{
 				$is_int[$i] = (in_array(
-										strtolower(mysql_field_type($query->result_id, $i)), 
-										array('tinyint', 'smallint', 'mediumint', 'int', 'bigint', 'timestamp'), 
+										strtolower(mysql_field_type($query->result_id, $i)),
+										array('tinyint', 'smallint', 'mediumint', 'int', 'bigint', 'timestamp'),
 										TRUE)
 										) ? TRUE : FALSE;
 										
 				// Create a string of field names
-				$field_str .= $field->name.', ';     
+				$field_str .= $field->name.', ';
 				$i++;
 			}
 			
@@ -211,8 +211,8 @@
 				foreach ($row as $v)
 				{
 					// Do a little formatting...
-					$v = str_replace(array("\x00", "\x0a", "\x0d", "\x1a"), array('\0', '\n', '\r', '\Z'), $v);   
-					$v = str_replace(array("\n", "\r", "\t"), array('\n', '\r', '\t'), $v);   
+					$v = str_replace(array("\x00", "\x0a", "\x0d", "\x1a"), array('\0', '\n', '\r', '\Z'), $v);
+					$v = str_replace(array("\n", "\r", "\t"), array('\n', '\r', '\t'), $v);
 					$v = str_replace('\\', '\\\\',	$v);
 					$v = str_replace('\'', '\\\'',	$v);
 					$v = str_replace('\\\n', '\n',	$v);
diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php
index ea2adbe..5942091 100644
--- a/system/database/drivers/mysqli/mysqli_driver.php
+++ b/system/database/drivers/mysqli/mysqli_driver.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -32,10 +32,10 @@
 
 	/**
 	 * Whether to use the MySQL "delete hack" which allows the number
-	 * of affected rows to be shown. Uses a preg_replace when enabled, 
+	 * of affected rows to be shown. Uses a preg_replace when enabled,
 	 * adding a bit more processing to all queries.
 	 */	
-	var $delete_hack = TRUE; 
+	var $delete_hack = TRUE;
 
 	// --------------------------------------------------------------------
 
@@ -116,28 +116,28 @@
 	 * @param	string	an SQL query
 	 * @return	string
 	 */	
-    function _prep_query($sql)
-    {
-		// "DELETE FROM TABLE" returns 0 affected rows This hack modifies 
+	function _prep_query($sql)
+	{
+		// "DELETE FROM TABLE" returns 0 affected rows This hack modifies
 		// the query so that it returns the number of affected rows
 		if ($this->delete_hack === TRUE)
 		{
-			if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) 
+			if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql))
 			{
 				$sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql);
 			}
 		}
 		
 		return $sql;
-    }
+	}
 
 	// --------------------------------------------------------------------
 
 	/**
 	 * Begin Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_begin($test_mode = FALSE)
 	{
@@ -153,8 +153,8 @@
 		}
 
 		// Reset the transaction failure flag.
-		// If the $test_mode flag is set to TRUE transactions will be rolled back 
-		// even if the queries produce a successful result. 
+		// If the $test_mode flag is set to TRUE transactions will be rolled back
+		// even if the queries produce a successful result.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 
 		$this->simple_query('SET AUTOCOMMIT=0');
@@ -166,9 +166,9 @@
 
 	/**
 	 * Commit Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_commit()
 	{
@@ -192,9 +192,9 @@
 
 	/**
 	 * Rollback Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_rollback()
 	{
diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php
index 215403e..5e4e65f 100644
--- a/system/database/drivers/mysqli/mysqli_result.php
+++ b/system/database/drivers/mysqli/mysqli_result.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -65,7 +65,7 @@
 		$field_names = array();
 		while ($field = mysql_fetch_field($this->result_id))
 		{
-			$field_names[] = $field->name;       
+			$field_names[] = $field->name;
 		}
 		
 		return $field_names;
@@ -116,8 +116,8 @@
 	{
 		if (is_resource($this->result_id))
 		{
-        	mysqli_free_result($this->result_id);
-        	$this->result_id = FALSE;
+			mysqli_free_result($this->result_id);
+			$this->result_id = FALSE;
 		}
 	}
 
diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php
index 17af40b..a7bdb70 100644
--- a/system/database/drivers/mysqli/mysqli_utility.php
+++ b/system/database/drivers/mysqli/mysqli_utility.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -129,39 +129,39 @@
 	
 		// Build the output
 		$output = '';
-        foreach ((array)$tables as $table)
-        { 
-        	// Is the table in the "ignore" list?
+		foreach ((array)$tables as $table)
+		{
+			// Is the table in the "ignore" list?
 			if (in_array($table, (array)$ignore, TRUE))
 			{
-        		continue;
-        	}
+				continue;
+			}
 
-        	// Get the table schema
+			// Get the table schema
 			$query = $this->db->query("SHOW CREATE TABLE `".$this->db->database.'`.'.$table);
 			
 			// No result means the table name was invalid
-        	if ($query === FALSE)
-        	{
-        		continue;
-        	}
-        	
-        	// Write out the table schema
-            $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline;
-                
+			if ($query === FALSE)
+			{
+				continue;
+			}
+			
+			// Write out the table schema
+			$output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline;
+
  			if ($add_drop == TRUE)
  			{
-            	$output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline;
+				$output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline;
 			}
 			
 			$i = 0;
 			$result = $query->result_array();
 			foreach ($result[0] as $val)
 			{
-			    if ($i++ % 2)
-			    { 			    	
-			    	$output .= $val.';'.$newline.$newline;
-			    }
+				if ($i++ % 2)
+				{ 					
+					$output .= $val.';'.$newline.$newline;
+				}
 			}
 			
 			// If inserts are not needed we're done...
@@ -179,7 +179,7 @@
 			}
 		
 			// Fetch the field names and determine if the field is an
-			// integer type.  We use this info to decide whether to 
+			// integer type.  We use this info to decide whether to
 			// surround the data with quotes or not
 			
 			$i = 0;
@@ -188,13 +188,13 @@
 			while ($field = mysqli_fetch_field($query->result_id))
 			{
 				$is_int[$i] = (in_array(
-										strtolower(mysql_field_type($query->result_id, $i)), 
-										array('tinyint', 'smallint', 'mediumint', 'int', 'bigint', 'timestamp'), 
+										strtolower(mysql_field_type($query->result_id, $i)),
+										array('tinyint', 'smallint', 'mediumint', 'int', 'bigint', 'timestamp'),
 										TRUE)
 										) ? TRUE : FALSE;
 										
 				// Create a string of field names
-				$field_str .= $field->name.', ';     
+				$field_str .= $field->name.', ';
 				$i++;
 			}
 			
@@ -211,8 +211,8 @@
 				foreach ($row as $v)
 				{
 					// Do a little formatting...
-					$v = str_replace(array("\x00", "\x0a", "\x0d", "\x1a"), array('\0', '\n', '\r', '\Z'), $v);   
-					$v = str_replace(array("\n", "\r", "\t"), array('\n', '\r', '\t'), $v);   
+					$v = str_replace(array("\x00", "\x0a", "\x0d", "\x1a"), array('\0', '\n', '\r', '\Z'), $v);
+					$v = str_replace(array("\n", "\r", "\t"), array('\n', '\r', '\t'), $v);
 					$v = str_replace('\\', '\\\\',	$v);
 					$v = str_replace('\'', '\\\'',	$v);
 					$v = str_replace('\\\n', '\n',	$v);
diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index 4f5470c..c091edf 100644
--- a/system/database/drivers/oci8/oci8_driver.php
+++ b/system/database/drivers/oci8/oci8_driver.php
@@ -4,12 +4,12 @@
  *
  * An open source application development framework for PHP 4.3.2 or newer
  *
- * @package     CodeIgniter
- * @author      Rick Ellis
+ * @package	 CodeIgniter
+ * @author	  Rick Ellis
  * @copyright   Copyright (c) 2006, pMachine, Inc.
- * @license     http://www.codeignitor.com/user_guide/license.html 
- * @link        http://www.codeigniter.com
- * @since       Version 1.0
+ * @license	 http://www.codeignitor.com/user_guide/license.html
+ * @link		http://www.codeigniter.com
+ * @since	   Version 1.0
  * @filesource
  */
 
@@ -22,182 +22,182 @@
  * creates dynamically based on whether the active record
  * class is being used or not.
  *
- * @package     CodeIgniter
+ * @package	 CodeIgniter
  * @subpackage  Drivers
- * @category    Database
- * @author      Rick Ellis
- * @link        http://www.codeigniter.com/user_guide/database/
+ * @category	Database
+ * @author	  Rick Ellis
+ * @link		http://www.codeigniter.com/user_guide/database/
  */
 
 /**
  * oci8 Database Adapter Class
  *
- * This is a modification of the DB_driver class to 
+ * This is a modification of the DB_driver class to
  * permit access to oracle databases
  *
  * NOTE: this uses the PHP 4 oci methods
  *
- * @author      Kelly McArdle
+ * @author	  Kelly McArdle
  *
  */
 
 class CI_DB_oci8_driver extends CI_DB {
 
 	// Set "auto commit" by default
-    var $_commit = OCI_COMMIT_ON_SUCCESS;
+	var $_commit = OCI_COMMIT_ON_SUCCESS;
 
-    // need to track statement id and cursor id
-    var $stmt_id;
-    var $curs_id;
+	// need to track statement id and cursor id
+	var $stmt_id;
+	var $curs_id;
 
-    // if we use a limit, we will add a field that will
-    // throw off num_fields later
-    var $limit_used;
-    
-    /**
-     * Non-persistent database connection
-     *
-     * @access  private called by the base class
-     * @return  resource
-     */
-    function db_connect()
-    {
-        return ocilogon($this->username, $this->password, $this->hostname);
-    }
+	// if we use a limit, we will add a field that will
+	// throw off num_fields later
+	var $limit_used;
 
-    // --------------------------------------------------------------------
-
-    /**
-     * Persistent database connection
-     *
-     * @access  private called by the base class
-     * @return  resource
-     */
-    function db_pconnect()
-    {
-        return ociplogon($this->username, $this->password, $this->hostname);
-    }
-
-    // --------------------------------------------------------------------
-
-    /**
-     * Select the database
-     *
-     * @access  private called by the base class
-     * @return  resource
-     */
-    function db_select()
-    {
-        return TRUE;
-    }
+	/**
+	 * Non-persistent database connection
+	 *
+	 * @access  private called by the base class
+	 * @return  resource
+	 */
+	function db_connect()
+	{
+		return ocilogon($this->username, $this->password, $this->hostname);
+	}
 
 	// --------------------------------------------------------------------
 
-    /**
-     * Version number query string
-     *
-     * @access  public
-     * @return  string
-     */
-    function _version()
-    {
-        return ociserverversion($this->conn_id);
-    }
+	/**
+	 * Persistent database connection
+	 *
+	 * @access  private called by the base class
+	 * @return  resource
+	 */
+	function db_pconnect()
+	{
+		return ociplogon($this->username, $this->password, $this->hostname);
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Execute the query
-     *
-     * @access  private called by the base class
-     * @param   string  an SQL query
-     * @return  resource
-     */
-    function _execute($sql)
-    {
-        // oracle must parse the query before it is run. All of the actions with
-        // the query are based on the statement id returned by ociparse        
-        $this->_set_stmt_id($sql);
-        ocisetprefetch($this->stmt_id, 1000);
-        return @ociexecute($this->stmt_id, $this->_commit);
-    }
-    
-    /**
-     * Generate a statement ID
-     *
-     * @access  private
-     * @param   string  an SQL query
-     * @return  none
-     */
-    function _set_stmt_id($sql)
-    {
-        if ( ! is_resource($this->stmt_id))
-        {
+	/**
+	 * Select the database
+	 *
+	 * @access  private called by the base class
+	 * @return  resource
+	 */
+	function db_select()
+	{
+		return TRUE;
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Version number query string
+	 *
+	 * @access  public
+	 * @return  string
+	 */
+	function _version()
+	{
+		return ociserverversion($this->conn_id);
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Execute the query
+	 *
+	 * @access  private called by the base class
+	 * @param   string  an SQL query
+	 * @return  resource
+	 */
+	function _execute($sql)
+	{
+		// oracle must parse the query before it is run. All of the actions with
+		// the query are based on the statement id returned by ociparse
+		$this->_set_stmt_id($sql);
+		ocisetprefetch($this->stmt_id, 1000);
+		return @ociexecute($this->stmt_id, $this->_commit);
+	}
+
+	/**
+	 * Generate a statement ID
+	 *
+	 * @access  private
+	 * @param   string  an SQL query
+	 * @return  none
+	 */
+	function _set_stmt_id($sql)
+	{
+		if ( ! is_resource($this->stmt_id))
+		{
 			$this->stmt_id = ociparse($this->conn_id, $this->_prep_query($sql));
-        }
-    }
+		}
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Prep the query
-     *
-     * If needed, each database adapter can prep the query string
-     *
-     * @access  private called by execute()
-     * @param   string  an SQL query
-     * @return  string
-     */
-    function _prep_query($sql)
-    {
-        return $sql;
-    }
+	/**
+	 * Prep the query
+	 *
+	 * If needed, each database adapter can prep the query string
+	 *
+	 * @access  private called by execute()
+	 * @param   string  an SQL query
+	 * @return  string
+	 */
+	function _prep_query($sql)
+	{
+		return $sql;
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * getCursor.  Returns a cursor from the datbase
-     *
-     * @access  public
-     * @return  cursor id
-     */
-    function get_cursor()
-    {
+	/**
+	 * getCursor.  Returns a cursor from the datbase
+	 *
+	 * @access  public
+	 * @return  cursor id
+	 */
+	function get_cursor()
+	{
 		$this->curs_id = ocinewcursor($this->conn_id);
 		return $this->curs_id;
-    }
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Stored Procedure.  Executes a stored procedure
-     *
-     * @access  public
-     * @param   package     package stored procedure is in
-     * @param   procedure   stored procedure to execute
-     * @param   params      array of parameters
-     * @return  array
-     *
-     * params array keys
-     *
-     * KEY      OPTIONAL    NOTES
-     * name     no          the name of the parameter should be in :<param_name> format
-     * value    no          the value of the parameter.  If this is an OUT or IN OUT parameter,
-     *                      this should be a reference to a variable
-     * type     yes         the type of the parameter
-     * length   yes         the max size of the parameter
-     */
-    function stored_procedure($package, $procedure, $params)
-    {
-        if ($package == '' OR $procedure == '' OR ! is_array($params))
-        {
-            if ($this->db_debug)
-            {
-                log_message('error', 'Invalid query: '.$package.'.'.$procedure);
-                return $this->display_error('db_invalid_query');
-            }
-            return FALSE;
-        }
+	/**
+	 * Stored Procedure.  Executes a stored procedure
+	 *
+	 * @access  public
+	 * @param   package	 package stored procedure is in
+	 * @param   procedure   stored procedure to execute
+	 * @param   params	  array of parameters
+	 * @return  array
+	 *
+	 * params array keys
+	 *
+	 * KEY	  OPTIONAL	NOTES
+	 * name	 no		  the name of the parameter should be in :<param_name> format
+	 * value	no		  the value of the parameter.  If this is an OUT or IN OUT parameter,
+	 *					  this should be a reference to a variable
+	 * type	 yes		 the type of the parameter
+	 * length   yes		 the max size of the parameter
+	 */
+	function stored_procedure($package, $procedure, $params)
+	{
+		if ($package == '' OR $procedure == '' OR ! is_array($params))
+		{
+			if ($this->db_debug)
+			{
+				log_message('error', 'Invalid query: '.$package.'.'.$procedure);
+				return $this->display_error('db_invalid_query');
+			}
+			return FALSE;
+		}
 		
 		// build the query string
 		$sql = "begin $package.$procedure(";
@@ -216,18 +216,18 @@
 				
 		$this->stmt_id = FALSE;
 		$this->_set_stmt_id($sql);
-		$this->_bind_params($params); 
+		$this->_bind_params($params);
 		$this->query($sql, FALSE, $have_cursor);
 	}
 	
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Bind parameters
-     *
-     * @access  private
-     * @return  none
-     */
+	/**
+	 * Bind parameters
+	 *
+	 * @access  private
+	 * @return  none
+	 */
 	function _bind_params($params)
 	{
 		if ( ! is_array($params) OR ! is_resource($this->stmt_id))
@@ -235,27 +235,27 @@
 			return;
 		}
 		
-        foreach ($params as $param)
-        {
+		foreach ($params as $param)
+		{
  			foreach (array('name', 'value', 'type', 'length') as $val)
-        	{
-        		if ( ! isset($param[$val]))
-        		{
-        			$param[$val] = '';
-        		}
-        	}
- 
+			{
+				if ( ! isset($param[$val]))
+				{
+					$param[$val] = '';
+				}
+			}
+
 			ocibindbyname($this->stmt_id, $param['name'], $param['value'], $param['length'], $param['type']);
-        }
+		}
 	}
 
 	// --------------------------------------------------------------------
 
 	/**
 	 * Begin Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_begin($test_mode = FALSE)
 	{
@@ -271,8 +271,8 @@
 		}
 		
 		// Reset the transaction failure flag.
-		// If the $test_mode flag is set to TRUE transactions will be rolled back 
-		// even if the queries produce a successful result. 
+		// If the $test_mode flag is set to TRUE transactions will be rolled back
+		// even if the queries produce a successful result.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 		
 		$this->_commit = OCI_DEFAULT;
@@ -283,9 +283,9 @@
 
 	/**
 	 * Commit Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_commit()
 	{
@@ -309,9 +309,9 @@
 
 	/**
 	 * Rollback Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_rollback()
 	{
@@ -331,272 +331,272 @@
 		return $ret;
 	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Escape String
-     *
-     * @access  public
-     * @param   string
-     * @return  string
-     */
-    function escape_str($str)
-    {
-        return $str;
-    }
+	/**
+	 * Escape String
+	 *
+	 * @access  public
+	 * @param   string
+	 * @return  string
+	 */
+	function escape_str($str)
+	{
+		return $str;
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Affected Rows
-     *
-     * @access  public
-     * @return  integer
-     */
-    function affected_rows()
-    {
-        return @ocirowcount($this->stmt_id);
-    }
+	/**
+	 * Affected Rows
+	 *
+	 * @access  public
+	 * @return  integer
+	 */
+	function affected_rows()
+	{
+		return @ocirowcount($this->stmt_id);
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Insert ID
-     *
-     * @access  public
-     * @return  integer
-     */
-    function insert_id()
-    {
-        // not supported in oracle
-        return 0;
-    }
+	/**
+	 * Insert ID
+	 *
+	 * @access  public
+	 * @return  integer
+	 */
+	function insert_id()
+	{
+		// not supported in oracle
+		return 0;
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * "Count All" query
-     *
-     * Generates a platform-specific query string that counts all records in
-     * the specified database
-     *
-     * @access  public
-     * @param   string
-     * @return  string
-     */
-    function count_all($table = '')
-    {
-        if ($table == '')
-            return '0';
+	/**
+	 * "Count All" query
+	 *
+	 * Generates a platform-specific query string that counts all records in
+	 * the specified database
+	 *
+	 * @access  public
+	 * @param   string
+	 * @return  string
+	 */
+	function count_all($table = '')
+	{
+		if ($table == '')
+			return '0';
 
-        $query = $this->query("SELECT COUNT(1) AS numrows FROM ".$table);
+		$query = $this->query("SELECT COUNT(1) AS numrows FROM ".$table);
 
-        if ($query == FALSE)
-            {
-            return 0;
-            }
+		if ($query == FALSE)
+			{
+			return 0;
+			}
 
-        $row = $query->row();
-        return $row->NUMROWS;
-    }
+		$row = $query->row();
+		return $row->NUMROWS;
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Show table query
-     *
-     * Generates a platform-specific query string so that the table names can be fetched
-     *
-     * @access  private
-     * @return  string
-     */
-    function _list_tables()
-    {
-        return "SELECT TABLE_NAME FROM ALL_TABLES";
-    }
+	/**
+	 * Show table query
+	 *
+	 * Generates a platform-specific query string so that the table names can be fetched
+	 *
+	 * @access  private
+	 * @return  string
+	 */
+	function _list_tables()
+	{
+		return "SELECT TABLE_NAME FROM ALL_TABLES";
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Show column query
-     *
-     * Generates a platform-specific query string so that the column names can be fetched
-     *
-     * @access  public
-     * @param   string  the table name
-     * @return  string
-     */
-    function _list_columns($table = '')
-    {
-        return "SELECT COLUMN_NAME FROM all_tab_columns WHERE table_name = '$table'";
-    }
+	/**
+	 * Show column query
+	 *
+	 * Generates a platform-specific query string so that the column names can be fetched
+	 *
+	 * @access  public
+	 * @param   string  the table name
+	 * @return  string
+	 */
+	function _list_columns($table = '')
+	{
+		return "SELECT COLUMN_NAME FROM all_tab_columns WHERE table_name = '$table'";
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Field data query
-     *
-     * Generates a platform-specific query so that the column data can be retrieved
-     *
-     * @access  public
-     * @param   string  the table name
-     * @return  object
-     */
-    function _field_data($table)
-    {
+	/**
+	 * Field data query
+	 *
+	 * Generates a platform-specific query so that the column data can be retrieved
+	 *
+	 * @access  public
+	 * @param   string  the table name
+	 * @return  object
+	 */
+	function _field_data($table)
+	{
 		return "SELECT * FROM ".$this->_escape_table($table)." where rownum = 1";
-    }
-    
-    // --------------------------------------------------------------------
+	}
 
-    /**
-     * The error message string
-     *
-     * @access  private
-     * @return  string
-     */
-    function _error_message()
-    {
-        $error = ocierror($this->conn_id);
-        return $error['message'];
-    }
+	// --------------------------------------------------------------------
 
-    // --------------------------------------------------------------------
+	/**
+	 * The error message string
+	 *
+	 * @access  private
+	 * @return  string
+	 */
+	function _error_message()
+	{
+		$error = ocierror($this->conn_id);
+		return $error['message'];
+	}
 
-    /**
-     * The error message number
-     *
-     * @access  private
-     * @return  integer
-     */
-    function _error_number()
-    {
-        $error = ocierror($this->conn_id);
-        return $error['code'];
-    }
+	// --------------------------------------------------------------------
 
-    // --------------------------------------------------------------------
+	/**
+	 * The error message number
+	 *
+	 * @access  private
+	 * @return  integer
+	 */
+	function _error_number()
+	{
+		$error = ocierror($this->conn_id);
+		return $error['code'];
+	}
 
-    /**
-     * Escape Table Name
-     *
-     * This function adds backticks if the table name has a period
-     * in it. Some DBs will get cranky unless periods are escaped
-     *
-     * @access  private
-     * @param   string  the table name
-     * @return  string
-     */
-    function _escape_table($table)
-    {
-        if (stristr($table, '.'))
-        {
-            $table = preg_replace("/\./", "`.`", $table);
-        }
+	// --------------------------------------------------------------------
 
-        return $table;
-    }
+	/**
+	 * Escape Table Name
+	 *
+	 * This function adds backticks if the table name has a period
+	 * in it. Some DBs will get cranky unless periods are escaped
+	 *
+	 * @access  private
+	 * @param   string  the table name
+	 * @return  string
+	 */
+	function _escape_table($table)
+	{
+		if (stristr($table, '.'))
+		{
+			$table = preg_replace("/\./", "`.`", $table);
+		}
 
-    // --------------------------------------------------------------------
+		return $table;
+	}
 
-    /**
-     * Insert statement
-     *
-     * Generates a platform-specific insert string from the supplied data
-     *
-     * @access  public
-     * @param   string  the table name
-     * @param   array   the insert keys
-     * @param   array   the insert values
-     * @return  string
-     */
-    function _insert($table, $keys, $values)
-    {
-    return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
-    }
+	// --------------------------------------------------------------------
 
-    // --------------------------------------------------------------------
+	/**
+	 * Insert statement
+	 *
+	 * Generates a platform-specific insert string from the supplied data
+	 *
+	 * @access  public
+	 * @param   string  the table name
+	 * @param   array   the insert keys
+	 * @param   array   the insert values
+	 * @return  string
+	 */
+	function _insert($table, $keys, $values)
+	{
+	return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
+	}
 
-    /**
-     * Update statement
-     *
-     * Generates a platform-specific update string from the supplied data
-     *
-     * @access  public
-     * @param   string  the table name
-     * @param   array   the update data
-     * @param   array   the where clause
-     * @return  string
-     */
-    function _update($table, $values, $where)
-    {
-        foreach($values as $key => $val)
-        {
-            $valstr[] = $key." = ".$val;
-        }
+	// --------------------------------------------------------------------
 
-        return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
-    }
+	/**
+	 * Update statement
+	 *
+	 * Generates a platform-specific update string from the supplied data
+	 *
+	 * @access  public
+	 * @param   string  the table name
+	 * @param   array   the update data
+	 * @param   array   the where clause
+	 * @return  string
+	 */
+	function _update($table, $values, $where)
+	{
+		foreach($values as $key => $val)
+		{
+			$valstr[] = $key." = ".$val;
+		}
 
-    // --------------------------------------------------------------------
+		return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where);
+	}
 
-    /**
-     * Delete statement
-     *
-     * Generates a platform-specific delete string from the supplied data
-     *
-     * @access  public
-     * @param   string  the table name
-     * @param   array   the where clause
-     * @return  string
-     */
-    function _delete($table, $where)
-    {
-        return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
-    }
+	// --------------------------------------------------------------------
 
-    // --------------------------------------------------------------------
+	/**
+	 * Delete statement
+	 *
+	 * Generates a platform-specific delete string from the supplied data
+	 *
+	 * @access  public
+	 * @param   string  the table name
+	 * @param   array   the where clause
+	 * @return  string
+	 */
+	function _delete($table, $where)
+	{
+		return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where);
+	}
 
-    /**
-     * Limit string
-     *
-     * Generates a platform-specific LIMIT clause
-     *
-     * @access  public
-     * @param   string  the sql query string
-     * @param   integer the number of rows to limit the query to
-     * @param   integer the offset value
-     * @return  string
-     */
-    function _limit($sql, $limit, $offset)
-    {
-        $limit = $offset + $limit;
-        $newsql = "SELECT * FROM (select inner_query.*, rownum rnum FROM ($sql) inner_query WHERE rownum < $limit)";
+	// --------------------------------------------------------------------
 
-        if ($offset != 0)
-        {
-            $newsql .= " WHERE rnum >= $offset";
-        }
+	/**
+	 * Limit string
+	 *
+	 * Generates a platform-specific LIMIT clause
+	 *
+	 * @access  public
+	 * @param   string  the sql query string
+	 * @param   integer the number of rows to limit the query to
+	 * @param   integer the offset value
+	 * @return  string
+	 */
+	function _limit($sql, $limit, $offset)
+	{
+		$limit = $offset + $limit;
+		$newsql = "SELECT * FROM (select inner_query.*, rownum rnum FROM ($sql) inner_query WHERE rownum < $limit)";
 
-        // remember that we used limits
-        $this->limit_used = TRUE;
+		if ($offset != 0)
+		{
+			$newsql .= " WHERE rnum >= $offset";
+		}
 
-        return $newsql;
-    }	
+		// remember that we used limits
+		$this->limit_used = TRUE;
 
-    // --------------------------------------------------------------------
+		return $newsql;
+	}	
 
-    /**
-     * Close DB Connection
-     *
-     * @access  public
-     * @param   resource
-     * @return  void
-     */
-    function _close($conn_id)
-    {
-        ocilogoff($conn_id);
-    }
+	// --------------------------------------------------------------------
+
+	/**
+	 * Close DB Connection
+	 *
+	 * @access  public
+	 * @param   resource
+	 * @return  void
+	 */
+	function _close($conn_id)
+	{
+		ocilogoff($conn_id);
+	}
 
 
 }
diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php
index ab13a39..947a761 100644
--- a/system/database/drivers/oci8/oci8_result.php
+++ b/system/database/drivers/oci8/oci8_result.php
@@ -4,12 +4,12 @@
  *
  * An open source application development framework for PHP 4.3.2 or newer
  *
- * @package     CodeIgniter
- * @author      Rick Ellis
+ * @package	 CodeIgniter
+ * @author	  Rick Ellis
  * @copyright   Copyright (c) 2006, pMachine, Inc.
- * @license     http://www.codeignitor.com/user_guide/license.html 
- * @link        http://www.codeigniter.com
- * @since       Version 1.0
+ * @license	 http://www.codeignitor.com/user_guide/license.html
+ * @link		http://www.codeigniter.com
+ * @since	   Version 1.0
  * @filesource
  */
 
@@ -20,59 +20,59 @@
  *
  * This class extends the parent result class: CI_DB_result
  *
- * @category    Database
- * @author      Rick Ellis
- * @link        http://www.codeigniter.com/user_guide/database/
+ * @category	Database
+ * @author	  Rick Ellis
+ * @link		http://www.codeigniter.com/user_guide/database/
  */
 class CI_DB_oci8_result extends CI_DB_result {
 
-    var $stmt_id;
-    var $curs_id;
-    var $limit_used;
+	var $stmt_id;
+	var $curs_id;
+	var $limit_used;
 
-    /**
-     * Number of rows in the result set
-     *
-     * @access  public
-     * @return  integer
-     */
-    function num_rows()
-    {
-        // get the results, count them,
-        // rerun query - otherwise we
-        // won't have data after calling 
-        // num_rows()
-        $this->result_array();
-        $rowcount = count($this->result_array);
-        @ociexecute($this->stmt_id);
-        if ($this->curs_id)
+	/**
+	 * Number of rows in the result set
+	 *
+	 * @access  public
+	 * @return  integer
+	 */
+	function num_rows()
+	{
+		// get the results, count them,
+		// rerun query - otherwise we
+		// won't have data after calling
+		// num_rows()
+		$this->result_array();
+		$rowcount = count($this->result_array);
+		@ociexecute($this->stmt_id);
+		if ($this->curs_id)
 		{
 			@ociexecute($this->curs_id);
 		}
-        return $rowcount;
-    }
+		return $rowcount;
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Number of fields in the result set
-     *
-     * @access  public
-     * @return  integer
-     */
-    function num_fields()
-    {
-        $count = @ocinumcols($this->stmt_id);
+	/**
+	 * Number of fields in the result set
+	 *
+	 * @access  public
+	 * @return  integer
+	 */
+	function num_fields()
+	{
+		$count = @ocinumcols($this->stmt_id);
 
-        // if we used a limit, we added a field,
-        // subtract it out
-        if ($this->limit_used)
-        {
-            $count = $count - 1;
-        }
+		// if we used a limit, we added a field,
+		// subtract it out
+		if ($this->limit_used)
+		{
+			$count = $count - 1;
+		}
 
-        return $count;
-    }
+		return $count;
+	}
 
 	// --------------------------------------------------------------------
 
@@ -87,11 +87,11 @@
 	function list_fields()
 	{
 		$field_names = array();
-        $fieldCount = $this->num_fields();
-        for ($c = 1; $c <= $fieldCount; $c++)
-        {
-            $field_names[] = ocicolumnname($this->stmt_id, $c);
-        }
+		$fieldCount = $this->num_fields();
+		for ($c = 1; $c <= $fieldCount; $c++)
+		{
+			$field_names[] = ocicolumnname($this->stmt_id, $c);
+		}
 		return $field_names;
 	}
 
@@ -101,32 +101,32 @@
 		return $this->list_fields();
 	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Field data
-     *
-     * Generates an array of objects containing field meta-data
-     *
-     * @access  public
-     * @return  array
-     */
-    function field_data()
-    {
-        $retval = array();
-        $fieldCount = $this->num_fields();
-        for ($c = 1; $c <= $fieldCount; $c++)
-        {
-            $F              = new stdClass();
-            $F->name        = ocicolumnname($this->stmt_id, $c);
-            $F->type        = ocicolumntype($this->stmt_id, $c);
-            $F->max_length  = ocicolumnsize($this->stmt_id, $c);
+	/**
+	 * Field data
+	 *
+	 * Generates an array of objects containing field meta-data
+	 *
+	 * @access  public
+	 * @return  array
+	 */
+	function field_data()
+	{
+		$retval = array();
+		$fieldCount = $this->num_fields();
+		for ($c = 1; $c <= $fieldCount; $c++)
+		{
+			$F			  = new stdClass();
+			$F->name		= ocicolumnname($this->stmt_id, $c);
+			$F->type		= ocicolumntype($this->stmt_id, $c);
+			$F->max_length  = ocicolumnsize($this->stmt_id, $c);
 
-            $retval[] = $F;
-        }
+			$retval[] = $F;
+		}
 
-        return $retval;
-    }
+		return $retval;
+	}
 
 	// --------------------------------------------------------------------
 
@@ -139,25 +139,25 @@
 	{
 		if (is_resource($this->result_id))
 		{
-        	OCIFreeStatement($this->result_id);
-        	$this->result_id = FALSE;
+			OCIFreeStatement($this->result_id);
+			$this->result_id = FALSE;
 		}
 	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Result - associative array
-     *
-     * Returns the result set as an array
-     *
-     * @access  private
-     * @return  array
-     */
-    function _fetch_assoc(&$row)
-    {
-        // if pulling from a cursor, use curs_id
-        if ($this->curs_id)
+	/**
+	 * Result - associative array
+	 *
+	 * Returns the result set as an array
+	 *
+	 * @access  private
+	 * @return  array
+	 */
+	function _fetch_assoc(&$row)
+	{
+		// if pulling from a cursor, use curs_id
+		if ($this->curs_id)
 		{
 			return ocifetchinto($this->curs_id, $row, OCI_ASSOC + OCI_RETURN_NULLS);
 		}
@@ -165,7 +165,7 @@
 		{
 			return ocifetchinto($this->stmt_id, $row, OCI_ASSOC + OCI_RETURN_NULLS);
 		}
-    }
+	}
 
 	// --------------------------------------------------------------------
 
@@ -184,25 +184,25 @@
 		return FALSE;
 	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Result - object
-     *
-     * Returns the result set as an object
-     *
-     * @access  private
-     * @return  object
-     */
-    function _fetch_object()
-    {
-        // the PHP 4 version of the oracle functions do not
-        // have a fetch method so we call the array version
-        // and build an object from that
+	/**
+	 * Result - object
+	 *
+	 * Returns the result set as an object
+	 *
+	 * @access  private
+	 * @return  object
+	 */
+	function _fetch_object()
+	{
+		// the PHP 4 version of the oracle functions do not
+		// have a fetch method so we call the array version
+		// and build an object from that
 
-        $row = array();
-        $res = $this->_fetch_assoc($row);
-        if ($res != FALSE)
+		$row = array();
+		$res = $this->_fetch_assoc($row);
+		if ($res != FALSE)
 		{
 			$obj = new stdClass();
 			foreach ($row as $key => $value)
@@ -212,41 +212,41 @@
 			
 			$res = $obj;
 		}
-        return $res;
-    }
+		return $res;
+	}
 
-    // --------------------------------------------------------------------
+	// --------------------------------------------------------------------
 
-    /**
-     * Query result.  "array" version.
-     *
-     * @access  public
-     * @return  array
-     */
-    function result_array()
-    {
-        if (count($this->result_array) > 0)
-        {
-            return $this->result_array;
-        }
+	/**
+	 * Query result.  "array" version.
+	 *
+	 * @access  public
+	 * @return  array
+	 */
+	function result_array()
+	{
+		if (count($this->result_array) > 0)
+		{
+			return $this->result_array;
+		}
 
-        // oracle's fetch functions do not
-        // return arrays, the information
-        // is returned in reference parameters
-        //
-        $row = NULL;
-        while ($this->_fetch_assoc($row))
-        {
-            $this->result_array[] = $row;
-        }
+		// oracle's fetch functions do not
+		// return arrays, the information
+		// is returned in reference parameters
+		//
+		$row = NULL;
+		while ($this->_fetch_assoc($row))
+		{
+			$this->result_array[] = $row;
+		}
 
-        if (count($this->result_array) == 0)
-        {
-            return FALSE;
-        }
+		if (count($this->result_array) == 0)
+		{
+			return FALSE;
+		}
 
-        return $this->result_array;
-    }
+		return $this->result_array;
+	}
 
 }
 
diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php
index f4e9121..1d83af1 100644
--- a/system/database/drivers/oci8/oci8_utility.php
+++ b/system/database/drivers/oci8/oci8_utility.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index 17a6dfb..09ca07e 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -21,7 +21,7 @@
  * Note: _DB is an extender class that the app controller
  * creates dynamically based on whether the active record
  * class is being used or not.
- * 
+ *
  * @package		CodeIgniter
  * @subpackage	Drivers
  * @category	Database
@@ -107,18 +107,18 @@
 	 * @param	string	an SQL query
 	 * @return	string
 	 */	
-    function _prep_query($sql)
-    {
+	function _prep_query($sql)
+	{
 		return $sql;
-    }
+	}
 
 	// --------------------------------------------------------------------
 
 	/**
 	 * Begin Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_begin($test_mode = FALSE)
 	{
@@ -134,8 +134,8 @@
 		}
 
 		// Reset the transaction failure flag.
-		// If the $test_mode flag is set to TRUE transactions will be rolled back 
-		// even if the queries produce a successful result. 
+		// If the $test_mode flag is set to TRUE transactions will be rolled back
+		// even if the queries produce a successful result.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 
 		return odbc_autocommit($this->conn_id, FALSE);
@@ -145,9 +145,9 @@
 
 	/**
 	 * Commit Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_commit()
 	{
@@ -171,9 +171,9 @@
 
 	/**
 	 * Rollback Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_rollback()
 	{
diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php
index ea834f9..47fb103 100644
--- a/system/database/drivers/odbc/odbc_result.php
+++ b/system/database/drivers/odbc/odbc_result.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -116,8 +116,8 @@
 	{
 		if (is_resource($this->result_id))
 		{
-        	odbc_free_result($this->result_id);
-        	$this->result_id = FALSE;
+			odbc_free_result($this->result_id);
+			$this->result_id = FALSE;
 		}
 	}
 
diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php
index dc62df9..8af463b 100644
--- a/system/database/drivers/odbc/odbc_utility.php
+++ b/system/database/drivers/odbc/odbc_utility.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -34,7 +34,7 @@
 	 */
 	function _create_database()
 	{
-		// ODBC has no "create database" command since it's 
+		// ODBC has no "create database" command since it's
 		// designed to connect to an existing database
 		if ($this->db->db_debug)
 		{
@@ -54,7 +54,7 @@
 	 */
 	function _drop_database($name)
 	{
-		// ODBC has no "drop database" command since it's 
+		// ODBC has no "drop database" command since it's
 		// designed to connect to an existing database		
 		if ($this->db->db_debug)
 		{
diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php
index f74e652..81aaafe 100644
--- a/system/database/drivers/postgre/postgre_driver.php
+++ b/system/database/drivers/postgre/postgre_driver.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -111,18 +111,18 @@
 	 * @param	string	an SQL query
 	 * @return	string
 	 */	
-    function _prep_query($sql)
-    {
+	function _prep_query($sql)
+	{
 		return $sql;
-    }
+	}
 
 	// --------------------------------------------------------------------
 
 	/**
 	 * Begin Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_begin($test_mode = FALSE)
 	{
@@ -138,8 +138,8 @@
 		}
 
 		// Reset the transaction failure flag.
-		// If the $test_mode flag is set to TRUE transactions will be rolled back 
-		// even if the queries produce a successful result. 
+		// If the $test_mode flag is set to TRUE transactions will be rolled back
+		// even if the queries produce a successful result.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 
 		return @pg_exec($this->conn_id, "begin");
@@ -149,9 +149,9 @@
 
 	/**
 	 * Commit Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_commit()
 	{
@@ -173,9 +173,9 @@
 
 	/**
 	 * Rollback Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_rollback()
 	{
@@ -298,7 +298,7 @@
 	 * @return	string
 	 */
 	function _list_tables()
-	{	  
+	{	
 		return "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'";	
 	}
 	
diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php
index e792544..76bd601 100644
--- a/system/database/drivers/postgre/postgre_result.php
+++ b/system/database/drivers/postgre/postgre_result.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -116,8 +116,8 @@
 	{
 		if (is_resource($this->result_id))
 		{
-        	pg_free_result($this->result_id);
-        	$this->result_id = FALSE;
+			pg_free_result($this->result_id);
+			$this->result_id = FALSE;
 		}
 	}
 
diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php
index b08b879..478e742 100644
--- a/system/database/drivers/postgre/postgre_utility.php
+++ b/system/database/drivers/postgre/postgre_utility.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -90,7 +90,7 @@
 	 */
 	function _optimize_table($table)
 	{
-		return FALSE; 
+		return FALSE;
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index fd9fd2c..ce3c579 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 
@@ -44,10 +44,10 @@
 		{
 			log_message('error', $error);
 			
-            if ($this->db_debug)
-            {
+			if ($this->db_debug)
+			{
 				$this->display_error($error, '', TRUE);
-            }		
+			}		
 		}
 		
 		return $conn_id;
@@ -67,10 +67,10 @@
 		{
 			log_message('error', $error);
 			
-            if ($this->db_debug)
-            {
+			if ($this->db_debug)
+			{
 				$this->display_error($error, '', TRUE);
-            }		
+			}		
 		}
 		
 		return $conn_id;
@@ -128,18 +128,18 @@
 	 * @param	string	an SQL query
 	 * @return	string
 	 */	
-    function _prep_query($sql)
-    {
+	function _prep_query($sql)
+	{
 		return $sql;
-    }
+	}
 
 	// --------------------------------------------------------------------
 
 	/**
 	 * Begin Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_begin($test_mode = FALSE)
 	{
@@ -155,8 +155,8 @@
 		}
 
 		// Reset the transaction failure flag.
-		// If the $test_mode flag is set to TRUE transactions will be rolled back 
-		// even if the queries produce a successful result. 
+		// If the $test_mode flag is set to TRUE transactions will be rolled back
+		// even if the queries produce a successful result.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
 
 		$this->simple_query('BEGIN TRANSACTION');
@@ -167,9 +167,9 @@
 
 	/**
 	 * Commit Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_commit()
 	{
@@ -192,9 +192,9 @@
 
 	/**
 	 * Rollback Transaction
-	 * 
+	 *
 	 * @access	public
-	 * @return	bool		 
+	 * @return	bool		
 	 */	
 	function trans_rollback()
 	{
diff --git a/system/database/drivers/sqlite/sqlite_result.php b/system/database/drivers/sqlite/sqlite_result.php
index 55364bb..00045d0 100644
--- a/system/database/drivers/sqlite/sqlite_result.php
+++ b/system/database/drivers/sqlite/sqlite_result.php
@@ -7,19 +7,19 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
  * SQLite Result Class
  *
  * This class extends the parent result class: CI_DB_result
- * 
+ *
  * @category	Database
  * @author		Rick Ellis
  * @link		http://www.codeigniter.com/user_guide/database/
diff --git a/system/database/drivers/sqlite/sqlite_utility.php b/system/database/drivers/sqlite/sqlite_utility.php
index ecce5be..91649c7 100644
--- a/system/database/drivers/sqlite/sqlite_utility.php
+++ b/system/database/drivers/sqlite/sqlite_utility.php
@@ -7,12 +7,12 @@
  * @package		CodeIgniter
  * @author		Rick Ellis
  * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html 
+ * @license		http://www.codeignitor.com/user_guide/license.html
  * @link		http://www.codeigniter.com
  * @since		Version 1.0
  * @filesource
  */
- 
+
 // ------------------------------------------------------------------------
 
 /**
@@ -68,7 +68,7 @@
 	 *
 	 * I don't believe you can do a database listing with SQLite
 	 * since each database is its own file.  I suppose we could
-	 * try reading a directory looking for SQLite files, but 
+	 * try reading a directory looking for SQLite files, but
 	 * that doesn't seem like a terribly good idea
 	 *
 	 * @access	private