Cleanup of stray spaces and tabs
diff --git a/system/database/DB.php b/system/database/DB.php
index a91ca08..1b4eb8b 100644
--- a/system/database/DB.php
+++ b/system/database/DB.php
@@ -28,39 +28,39 @@
 	if (is_string($params) AND strpos($params, '://') === FALSE)
 	{
 		include(APPPATH.'config/database'.EXT);
-		
+
 		if ( ! isset($db) OR count($db) == 0)
 		{
 			show_error('No database connection settings were found in the database config file.');
 		}
-		
+
 		if ($params != '')
 		{
 			$active_group = $params;
 		}
-		
+
 		if ( ! isset($active_group) OR ! isset($db[$active_group]))
 		{
 			show_error('You have specified an invalid database connection group.');
 		}
-		
+
 		$params = $db[$active_group];
 	}
 	elseif (is_string($params))
 	{
-		
+
 		/* parse the URL from the DSN string
-		*  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';
-		*/
-	
+		 *  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';
+		 */
+
 		if (($dns = @parse_url($params)) === FALSE)
 		{
 			show_error('Invalid DB Connection String');
 		}
-		
+
 		$params = array(
 							'dbdriver'	=> $dns['scheme'],
 							'hostname'	=> (isset($dns['host'])) ? rawurldecode($dns['host']) : '',
@@ -68,7 +68,7 @@
 							'password'	=> (isset($dns['pass'])) ? rawurldecode($dns['pass']) : '',
 							'database'	=> (isset($dns['path'])) ? rawurldecode(substr($dns['path'], 1)) : ''
 						);
-		
+
 		// were additional config items set?
 		if (isset($dns['query']))
 		{
@@ -90,7 +90,7 @@
 			}
 		}
 	}
-	
+
 	// No DB specified yet?  Beat them senseless...
 	if ( ! isset($params['dbdriver']) OR $params['dbdriver'] == '')
 	{
@@ -101,18 +101,18 @@
 	// 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()
-	
+
 	if ($active_record_override !== NULL)
 	{
 		$active_record = $active_record_override;
 	}
-	
+
 	require_once(BASEPATH.'database/DB_driver'.EXT);
 
 	if ( ! isset($active_record) OR $active_record == TRUE)
 	{
 		require_once(BASEPATH.'database/DB_active_rec'.EXT);
-		
+
 		if ( ! class_exists('CI_DB'))
 		{
 			eval('class CI_DB extends CI_DB_active_record { }');
@@ -125,25 +125,25 @@
 			eval('class CI_DB extends CI_DB_driver { }');
 		}
 	}
-			
+
 	require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver'.EXT);
 
 	// Instantiate the DB adapter
 	$driver = 'CI_DB_'.$params['dbdriver'].'_driver';
 	$DB =& instantiate_class(new $driver($params));
-	
+
 	if ($DB->autoinit == TRUE)
 	{
 		$DB->initialize();
 	}
-	
+
 	if (isset($params['stricton']) && $params['stricton'] == TRUE)
 	{
-		$DB->query('SET SESSION sql_mode="STRICT_ALL_TABLES"');		
+		$DB->query('SET SESSION sql_mode="STRICT_ALL_TABLES"');
 	}
-	
+
 	return $DB;
-}	
+}
 
 
 
diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php
index 25645a0..ce50479 100644
--- a/system/database/DB_active_rec.php
+++ b/system/database/DB_active_rec.php
@@ -41,13 +41,13 @@
 	var $ar_offset				= FALSE;
 	var $ar_order				= FALSE;
 	var $ar_orderby				= array();
-	var $ar_set					= array();	
+	var $ar_set					= array();
 	var $ar_wherein				= array();
 	var $ar_aliased_tables		= array();
 	var $ar_store_array			= array();
-	
+
 	// Active Record Caching variables
-	var $ar_caching 			= FALSE;
+	var $ar_caching				= FALSE;
 	var $ar_cache_exists		= array();
 	var $ar_cache_select		= array();
 	var $ar_cache_from			= array();
@@ -57,7 +57,7 @@
 	var $ar_cache_groupby		= array();
 	var $ar_cache_having		= array();
 	var $ar_cache_orderby		= array();
-	var $ar_cache_set			= array();	
+	var $ar_cache_set			= array();
 
 
 	// --------------------------------------------------------------------
@@ -73,12 +73,12 @@
 	 */
 	function select($select = '*', $escape = NULL)
 	{
-		// Set the global value if this was sepecified	
+		// Set the global value if this was sepecified
 		if (is_bool($escape))
 		{
 			$this->_protect_identifiers = $escape;
 		}
-		
+
 		if (is_string($select))
 		{
 			$select = explode(',', $select);
@@ -118,7 +118,7 @@
 	{
 		return $this->_max_min_avg_sum($select, $alias, 'MAX');
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -179,7 +179,7 @@
 	 *	select_min()
 	 *	select_avg()
 	 *  select_sum()
-	 *	
+	 *
 	 * @access	public
 	 * @param	string	the field
 	 * @param	string	an alias
@@ -191,29 +191,29 @@
 		{
 			$this->display_error('db_invalid_query');
 		}
-	
+
 		$type = strtoupper($type);
-	
+
 		if ( ! in_array($type, array('MAX', 'MIN', 'AVG', 'SUM')))
 		{
 			show_error('Invalid function type: '.$type);
 		}
-	
+
 		if ($alias == '')
 		{
 			$alias = $this->_create_alias_from_table(trim($select));
 		}
-	
+
 		$sql = $type.'('.$this->_protect_identifiers(trim($select)).') AS '.$alias;
 
 		$this->ar_select[] = $sql;
-		
+
 		if ($this->ar_caching === TRUE)
 		{
 			$this->ar_cache_select[] = $sql;
 			$this->ar_cache_exists[] = 'select';
 		}
-		
+
 		return $this;
 	}
 
@@ -232,7 +232,7 @@
 		{
 			return end(explode('.', $item));
 		}
-		
+
 		return $item;
 	}
 
@@ -252,7 +252,7 @@
 		$this->ar_distinct = (is_bool($val)) ? $val : TRUE;
 		return $this;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -276,12 +276,12 @@
 					$this->_track_aliases($v);
 
 					$this->ar_from[] = $this->_protect_identifiers($v, TRUE, NULL, FALSE);
-					
+
 					if ($this->ar_caching === TRUE)
 					{
 						$this->ar_cache_from[] = $this->_protect_identifiers($v, TRUE, NULL, FALSE);
 						$this->ar_cache_exists[] = 'from';
-					}				
+					}
 				}
 
 			}
@@ -290,11 +290,11 @@
 				$val = trim($val);
 
 				// Extract any aliases that might exist.  We use this information
-				// in the _protect_identifiers to know whether to add a table prefix 
+				// in the _protect_identifiers to know whether to add a table prefix
 				$this->_track_aliases($val);
-	
+
 				$this->ar_from[] = $this->_protect_identifiers($val, TRUE, NULL, FALSE);
-				
+
 				if ($this->ar_caching === TRUE)
 				{
 					$this->ar_cache_from[] = $this->_protect_identifiers($val, TRUE, NULL, FALSE);
@@ -320,7 +320,7 @@
 	 * @return	object
 	 */
 	function join($table, $cond, $type = '')
-	{		
+	{
 		if ($type != '')
 		{
 			$type = strtoupper(trim($type));
@@ -336,7 +336,7 @@
 		}
 
 		// Extract any aliases that might exist.  We use this information
-		// in the _protect_identifiers to know whether to add a table prefix 
+		// in the _protect_identifiers to know whether to add a table prefix
 		$this->_track_aliases($table);
 
 		// Strip apart the condition and protect the identifiers
@@ -344,10 +344,10 @@
 		{
 			$match[1] = $this->_protect_identifiers($match[1]);
 			$match[3] = $this->_protect_identifiers($match[3]);
-		
-			$cond = $match[1].$match[2].$match[3];		
+
+			$cond = $match[1].$match[2].$match[3];
 		}
-		
+
 		// Assemble the JOIN statement
 		$join = $type.'JOIN '.$this->_protect_identifiers($table, TRUE, NULL, FALSE).' ON '.$cond;
 
@@ -378,7 +378,7 @@
 	{
 		return $this->_where($key, $value, 'AND ', $escape);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -416,7 +416,7 @@
 		{
 			$key = array($key => $value);
 		}
-		
+
 		// If the escape value was not set will will base it on the global setting
 		if ( ! is_bool($escape))
 		{
@@ -432,13 +432,13 @@
 				// value appears not to have been set, assign the test to IS NULL
 				$k .= ' IS NULL';
 			}
-			
+
 			if ( ! is_null($v))
 			{
 				if ($escape === TRUE)
 				{
 					$k = $this->_protect_identifiers($k, FALSE, $escape);
-					
+
 					$v = ' '.$this->escape($v);
 				}
 
@@ -449,19 +449,19 @@
 			}
 			else
 			{
-				$k = $this->_protect_identifiers($k, FALSE, $escape);			
+				$k = $this->_protect_identifiers($k, FALSE, $escape);
 			}
 
 			$this->ar_where[] = $prefix.$k.$v;
-			
+
 			if ($this->ar_caching === TRUE)
 			{
 				$this->ar_cache_where[] = $prefix.$k.$v;
 				$this->ar_cache_exists[] = 'where';
 			}
-			
+
 		}
-		
+
 		return $this;
 	}
 
@@ -482,7 +482,7 @@
 	{
 		return $this->_where_in($key, $values);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -518,7 +518,7 @@
 	{
 		return $this->_where_in($key, $values, TRUE);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -548,7 +548,7 @@
 	 * @param	string	The field to search
 	 * @param	array	The values searched on
 	 * @param	boolean	If the statement would be IN or NOT IN
-	 * @param	string	
+	 * @param	string
 	 * @return	object
 	 */
 	function _where_in($key = NULL, $values = NULL, $not = FALSE, $type = 'AND ')
@@ -557,12 +557,12 @@
 		{
 			return;
 		}
-		
+
 		if ( ! is_array($values))
 		{
 			$values = array($values);
 		}
-		
+
 		$not = ($not) ? ' NOT' : '';
 
 		foreach ($values as $value)
@@ -571,7 +571,7 @@
 		}
 
 		$prefix = (count($this->ar_where) == 0) ? '' : $type;
- 
+
 		$where_in = $prefix . $this->_protect_identifiers($key) . $not . " IN (" . implode(", ", $this->ar_wherein) . ") ";
 
 		$this->ar_where[] = $where_in;
@@ -585,7 +585,7 @@
 		$this->ar_wherein = array();
 		return $this;
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -621,7 +621,7 @@
 	{
 		return $this->_like($field, $match, 'AND ', $side, 'NOT');
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -657,7 +657,7 @@
 	{
 		return $this->_like($field, $match, 'OR ', $side, 'NOT');
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -677,7 +677,7 @@
 		{
 			$field = array($field => $match);
 		}
- 	
+
 		foreach ($field as $k => $v)
 		{
 			$k = $this->_protect_identifiers($k);
@@ -711,11 +711,11 @@
 				$this->ar_cache_like[] = $like_statement;
 				$this->ar_cache_exists[] = 'like';
 			}
-			
+
 		}
 		return $this;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -731,15 +731,15 @@
 		{
 			$by = explode(',', $by);
 		}
-	
+
 		foreach ($by as $val)
 		{
 			$val = trim($val);
-		
+
 			if ($val != '')
 			{
 				$this->ar_groupby[] = $this->_protect_identifiers($val);
-				
+
 				if ($this->ar_caching === TRUE)
 				{
 					$this->ar_cache_groupby[] = $this->_protect_identifiers($val);
@@ -766,7 +766,7 @@
 	{
 		return $this->_having($key, $value, 'AND ', $escape);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -783,7 +783,7 @@
 	{
 		return $this->_having($key, $value, 'OR ', $escape);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -802,7 +802,7 @@
 		{
 			$key = array($key => $value);
 		}
-	
+
 		foreach ($key as $k => $v)
 		{
 			$prefix = (count($this->ar_having) == 0) ? '' : $type;
@@ -821,7 +821,7 @@
 			{
 				$v = ' '.$this->escape_str($v);
 			}
-			
+
 			$this->ar_having[] = $prefix.$k.$v;
 			if ($this->ar_caching === TRUE)
 			{
@@ -829,10 +829,10 @@
 				$this->ar_cache_exists[] = 'having';
 			}
 		}
-		
+
 		return $this;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -854,8 +854,8 @@
 		{
 			$direction = (in_array(strtoupper(trim($direction)), array('ASC', 'DESC'), TRUE)) ? ' '.$direction : ' ASC';
 		}
-	
-	
+
+
 		if (strpos($orderby, ',') !== FALSE)
 		{
 			$temp = array();
@@ -866,19 +866,19 @@
 				{
 					$part = $this->_protect_identifiers(trim($part));
 				}
-				
+
 				$temp[] = $part;
 			}
-			
-			$orderby = implode(', ', $temp);			
+
+			$orderby = implode(', ', $temp);
 		}
 		else if ($direction != $this->_random_keyword)
 		{
 			$orderby = $this->_protect_identifiers($orderby);
 		}
-	
+
 		$orderby_statement = $orderby.$direction;
-		
+
 		$this->ar_orderby[] = $orderby_statement;
 		if ($this->ar_caching === TRUE)
 		{
@@ -888,7 +888,7 @@
 
 		return $this;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -907,10 +907,10 @@
 		{
 			$this->ar_offset = $offset;
 		}
-		
+
 		return $this;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -925,7 +925,7 @@
 		$this->ar_offset = $offset;
 		return $this;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -940,11 +940,11 @@
 	function set($key, $value = '', $escape = TRUE)
 	{
 		$key = $this->_object_to_array($key);
-	
+
 		if ( ! is_array($key))
 		{
 			$key = array($key => $value);
-		}	
+		}
 
 		foreach ($key as $k => $v)
 		{
@@ -957,10 +957,10 @@
 				$this->ar_set[$this->_protect_identifiers($k)] = $this->escape($v);
 			}
 		}
-		
+
 		return $this;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -982,12 +982,12 @@
 			$this->_track_aliases($table);
 			$this->from($table);
 		}
-		
+
 		if ( ! is_null($limit))
 		{
 			$this->limit($limit, $offset);
 		}
-			
+
 		$sql = $this->_compile_select();
 
 		$result = $this->query($sql);
@@ -998,7 +998,7 @@
 	/**
 	 * "Count All Results" query
 	 *
-	 * Generates a platform-specific query string that counts all records 
+	 * Generates a platform-specific query string that counts all records
 	 * returned by an Active Record query.
 	 *
 	 * @access	public
@@ -1012,12 +1012,12 @@
 			$this->_track_aliases($table);
 			$this->from($table);
 		}
-		
+
 		$sql = $this->_compile_select($this->_count_string . $this->_protect_identifiers('numrows'));
 
 		$query = $this->query($sql);
 		$this->_reset_select();
-	
+
 		if ($query->num_rows() == 0)
 		{
 			return '0';
@@ -1051,12 +1051,12 @@
 		{
 			$this->where($where);
 		}
-		
+
 		if ( ! is_null($limit))
 		{
 			$this->limit($limit, $offset);
 		}
-			
+
 		$sql = $this->_compile_select();
 
 		$result = $this->query($sql);
@@ -1077,17 +1077,17 @@
 	 * @return	object
 	 */
 	function insert_batch($table = '', $set = NULL)
-	{	
+	{
 		if ( ! is_null($set))
 		{
 			$this->set_insert_batch($set);
 		}
-	
+
 		if (count($this->ar_set) == 0)
 		{
 			if ($this->db_debug)
 			{
-				//No valid data array.  Folds in cases where keys and values did not match up 
+				//No valid data array.  Folds in cases where keys and values did not match up
 				return $this->display_error('db_must_use_set');
 			}
 			return FALSE;
@@ -1103,25 +1103,25 @@
 				}
 				return FALSE;
 			}
-			
+
 			$table = $this->ar_from[0];
 		}
 
 		// Batch this baby
 		for ($i = 0, $total = count($this->ar_set); $i < $total; $i = $i + 100)
 		{
-		
+
 			$sql = $this->_insert_batch($this->_protect_identifiers($table, TRUE, NULL, FALSE), $this->ar_keys, array_slice($this->ar_set, $i, 100));
 
 			//echo $sql;
 
 			$this->query($sql);
 		}
-		
+
 		$this->_reset_write();
 
 
-		return TRUE;		
+		return TRUE;
 	}
 
 	// --------------------------------------------------------------------
@@ -1139,26 +1139,26 @@
 	function set_insert_batch($key, $value = '', $escape = TRUE)
 	{
 		$key = $this->_object_to_array_batch($key);
-		
+
 		if ( ! is_array($key))
 		{
 			$key = array($key => $value);
-		}	
+		}
 
 		$keys = array_keys(current($key));
 		sort($keys);
 
 		foreach ($key as $row)
 		{
-		    if (count(array_diff($keys, array_keys($row))) > 0 OR count(array_diff(array_keys($row), $keys)) > 0)
-		    {
-		        // batch function above returns an error on an empty array 
-		        $this->ar_set[] = array();
-		        return;
-		    }
-		    
-		    ksort($row); // puts $row in the same order as our keys
+			if (count(array_diff($keys, array_keys($row))) > 0 OR count(array_diff(array_keys($row), $keys)) > 0)
+			{
+				// batch function above returns an error on an empty array
+				$this->ar_set[] = array();
+				return;
+			}
 		
+			ksort($row); // puts $row in the same order as our keys
+
 			if ($escape === FALSE)
 			{
 				$this->ar_set[] =  '('.implode(',', $row).')';
@@ -1169,18 +1169,18 @@
 
 				foreach($row as $value)
 				{
-				 	$clean[] = $this->escape($value);					
+					$clean[] = $this->escape($value);
 				}
 
-				$this->ar_set[] =  '('.implode(',', $clean).')';		
-			} 
+				$this->ar_set[] =  '('.implode(',', $clean).')';
+			}
 		}
 
 		foreach ($keys as $k)
 		{
 			$this->ar_keys[] = $this->_protect_identifiers($k);
 		}
-		
+
 		return $this;
 	}
 
@@ -1197,12 +1197,12 @@
 	 * @return	object
 	 */
 	function insert($table = '', $set = NULL)
-	{	
+	{
 		if ( ! is_null($set))
 		{
 			$this->set($set);
 		}
-	
+
 		if (count($this->ar_set) == 0)
 		{
 			if ($this->db_debug)
@@ -1222,23 +1222,23 @@
 				}
 				return FALSE;
 			}
-			
+
 			$table = $this->ar_from[0];
 		}
 
 		$sql = $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->ar_set), array_values($this->ar_set));
-		
+
 		$this->_reset_write();
-		return $this->query($sql);		
+		return $this->query($sql);
 	}
-	
+
 	function replace($table = '', $set = NULL)
 	{
 		if ( ! is_null($set))
 		{
 			$this->set($set);
 		}
-	
+
 		if (count($this->ar_set) == 0)
 		{
 			if ($this->db_debug)
@@ -1258,14 +1258,14 @@
 				}
 				return FALSE;
 			}
-			
+
 			$table = $this->ar_from[0];
 		}
 
 		$sql = $this->_replace($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->ar_set), array_values($this->ar_set));
-		
+
 		$this->_reset_write();
-		return $this->query($sql);		
+		return $this->query($sql);
 	}
 
 	// --------------------------------------------------------------------
@@ -1290,7 +1290,7 @@
 		{
 			$this->set($set);
 		}
-	
+
 		if (count($this->ar_set) == 0)
 		{
 			if ($this->db_debug)
@@ -1310,10 +1310,10 @@
 				}
 				return FALSE;
 			}
-			
+
 			$table = $this->ar_from[0];
 		}
-		
+
 		if ($where != NULL)
 		{
 			$this->where($where);
@@ -1323,9 +1323,9 @@
 		{
 			$this->limit($limit);
 		}
-		
+
 		$sql = $this->_update($this->_protect_identifiers($table, TRUE, NULL, FALSE), $this->ar_set, $this->ar_where, $this->ar_orderby, $this->ar_limit);
-		
+
 		$this->_reset_write();
 		return $this->query($sql);
 	}
@@ -1348,7 +1348,7 @@
 	{
 		// Combine any cached components with the current statements
 		$this->_merge_cache();
-		
+
 		if (is_null($index))
 		{
 			if ($this->db_debug)
@@ -1384,10 +1384,10 @@
 				}
 				return FALSE;
 			}
-			
+
 			$table = $this->ar_from[0];
 		}
-		
+
 		// Batch this baby
 		for ($i = 0, $total = count($this->ar_set); $i < $total; $i = $i + 100)
 		{
@@ -1395,7 +1395,7 @@
 
 			$this->query($sql);
 		}
-		
+
 		$this->_reset_write();
 	}
 
@@ -1414,11 +1414,11 @@
 	function set_update_batch($key, $index = '', $escape = TRUE)
 	{
 		$key = $this->_object_to_array_batch($key);
-	
+
 		if ( ! is_array($key))
 		{
 			// @todo error
-		}	
+		}
 
 		foreach ($key as $k => $v)
 		{
@@ -1442,7 +1442,7 @@
 				}
 				else
 				{
-				 	$clean[$this->_protect_identifiers($k2)] = $this->escape($v2);					
+					$clean[$this->_protect_identifiers($k2)] = $this->escape($v2);
 				}
 			}
 
@@ -1453,7 +1453,7 @@
 
 			$this->ar_set[] = $clean;
 		}
-		
+
 		return $this;
 	}
 
@@ -1491,7 +1491,7 @@
 		$sql = $this->_delete($table);
 
 		$this->_reset_write();
-		
+
 		return $this->query($sql);
 	}
 
@@ -1531,10 +1531,10 @@
 		$sql = $this->_truncate($table);
 
 		$this->_reset_write();
-		
+
 		return $this->query($sql);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -1600,7 +1600,7 @@
 			}
 
 			return FALSE;
-		}		
+		}
 
 		$sql = $this->_delete($table, $this->ar_where, $this->ar_like, $this->ar_limit);
 
@@ -1608,7 +1608,7 @@
 		{
 			$this->_reset_write();
 		}
-		
+
 		return $this->query($sql);
 	}
 
@@ -1643,7 +1643,7 @@
 	 * @access	private
 	 * @param	string	The table to inspect
 	 * @return	string
-	 */	
+	 */
 	function _track_aliases($table)
 	{
 		if (is_array($table))
@@ -1654,23 +1654,23 @@
 			}
 			return;
 		}
-		
+
 		// Does the string contain a comma?  If so, we need to separate
 		// the string into discreet statements
 		if (strpos($table, ',') !== FALSE)
 		{
 			return $this->_track_aliases(explode(',', $table));
 		}
-	
+
 		// if a table alias is used we can recognize it by a space
 		if (strpos($table, " ") !== FALSE)
 		{
 			// if the alias is written with the AS keyword, remove it
 			$table = preg_replace('/ AS /i', ' ', $table);
-			
+
 			// Grab the alias
 			$table = trim(strrchr($table, " "));
-			
+
 			// Store the alias, if it doesn't already exist
 			if ( ! in_array($table, $this->ar_aliased_tables))
 			{
@@ -1696,7 +1696,7 @@
 		$this->_merge_cache();
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "select" portion of the query
 
 		if ($select_override !== FALSE)
@@ -1706,13 +1706,13 @@
 		else
 		{
 			$sql = ( ! $this->ar_distinct) ? 'SELECT ' : 'SELECT DISTINCT ';
-		
+
 			if (count($this->ar_select) == 0)
 			{
-				$sql .= '*';		
+				$sql .= '*';
 			}
 			else
-			{				
+			{
 				// Cycle through the "select" portion of the query and prep each column name.
 				// The reason we protect identifiers here rather then in the select() function
 				// is because until the user calls the from() function we don't know if there are aliases
@@ -1720,13 +1720,13 @@
 				{
 					$this->ar_select[$key] = $this->_protect_identifiers($val);
 				}
-				
+
 				$sql .= implode(', ', $this->ar_select);
 			}
 		}
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "FROM" portion of the query
 
 		if (count($this->ar_from) > 0)
@@ -1737,7 +1737,7 @@
 		}
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "JOIN" portion of the query
 
 		if (count($this->ar_join) > 0)
@@ -1748,7 +1748,7 @@
 		}
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "WHERE" portion of the query
 
 		if (count($this->ar_where) > 0 OR count($this->ar_like) > 0)
@@ -1761,9 +1761,9 @@
 		$sql .= implode("\n", $this->ar_where);
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "LIKE" portion of the query
-	
+
 		if (count($this->ar_like) > 0)
 		{
 			if (count($this->ar_where) > 0)
@@ -1775,20 +1775,20 @@
 		}
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "GROUP BY" portion of the query
-	
+
 		if (count($this->ar_groupby) > 0)
 		{
 			$sql .= "\nGROUP BY ";
-			
+
 			$sql .= implode(', ', $this->ar_groupby);
 		}
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "HAVING" portion of the query
-		
+
 		if (count($this->ar_having) > 0)
 		{
 			$sql .= "\nHAVING ";
@@ -1796,24 +1796,24 @@
 		}
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "ORDER BY" portion of the query
 
 		if (count($this->ar_orderby) > 0)
 		{
 			$sql .= "\nORDER BY ";
 			$sql .= implode(', ', $this->ar_orderby);
-			
+
 			if ($this->ar_order !== FALSE)
 			{
 				$sql .= ($this->ar_order == 'desc') ? ' DESC' : ' ASC';
-			}		
+			}
 		}
 
 		// ----------------------------------------------------------------
-		
+
 		// Write the "LIMIT" portion of the query
-		
+
 		if (is_numeric($this->ar_limit))
 		{
 			$sql .= "\n";
@@ -1840,7 +1840,7 @@
 		{
 			return $object;
 		}
-		
+
 		$array = array();
 		foreach (get_object_vars($object) as $key => $val)
 		{
@@ -1853,7 +1853,7 @@
 
 		return $array;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -1871,7 +1871,7 @@
 		{
 			return $object;
 		}
-		
+
 		$array = array();
 		$out = get_object_vars($object);
 		$fields = array_keys($out);
@@ -1893,7 +1893,7 @@
 
 		return $array;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -1903,7 +1903,7 @@
 	 *
 	 * @access	public
 	 * @return	void
-	 */		
+	 */
 	function start_cache()
 	{
 		$this->ar_caching = TRUE;
@@ -1918,7 +1918,7 @@
 	 *
 	 * @access	public
 	 * @return	void
-	 */		
+	 */
 	function stop_cache()
 	{
 		$this->ar_caching = FALSE;
@@ -1933,23 +1933,23 @@
 	 *
 	 * @access	public
 	 * @return	void
-	 */	
+	 */
 	function flush_cache()
-	{	
+	{
 		$this->_reset_run(
 							array(
-									'ar_cache_select'	=> array(), 
-									'ar_cache_from'		=> array(), 
+									'ar_cache_select'	=> array(),
+									'ar_cache_from'		=> array(),
 									'ar_cache_join'		=> array(),
-									'ar_cache_where'	=> array(), 
-									'ar_cache_like'		=> array(), 
-									'ar_cache_groupby'	=> array(), 
-									'ar_cache_having'	=> array(), 
-									'ar_cache_orderby'	=> array(), 
+									'ar_cache_where'	=> array(),
+									'ar_cache_like'		=> array(),
+									'ar_cache_groupby'	=> array(),
+									'ar_cache_having'	=> array(),
+									'ar_cache_orderby'	=> array(),
 									'ar_cache_set'		=> array(),
 									'ar_cache_exists'	=> array()
 								)
-							);	
+							);
 	}
 
 	// --------------------------------------------------------------------
@@ -1957,7 +1957,7 @@
 	/**
 	 * Merge Cache
 	 *
-	 * When called, this function merges any cached AR arrays with 
+	 * When called, this function merges any cached AR arrays with
 	 * locally called ones.
 	 *
 	 * @access	private
@@ -2022,25 +2022,25 @@
 	function _reset_select()
 	{
 		$ar_reset_items = array(
-								'ar_select'			=> array(), 
-								'ar_from'			=> array(), 
-								'ar_join'			=> array(), 
-								'ar_where'			=> array(), 
-								'ar_like'			=> array(), 
-								'ar_groupby'		=> array(), 
-								'ar_having'			=> array(), 
-								'ar_orderby'		=> array(), 
-								'ar_wherein'		=> array(), 
+								'ar_select'			=> array(),
+								'ar_from'			=> array(),
+								'ar_join'			=> array(),
+								'ar_where'			=> array(),
+								'ar_like'			=> array(),
+								'ar_groupby'		=> array(),
+								'ar_having'			=> array(),
+								'ar_orderby'		=> array(),
+								'ar_wherein'		=> array(),
 								'ar_aliased_tables'	=> array(),
-								'ar_distinct'		=> FALSE, 
-								'ar_limit'			=> FALSE, 
-								'ar_offset'			=> FALSE, 
+								'ar_distinct'		=> FALSE,
+								'ar_limit'			=> FALSE,
+								'ar_offset'			=> FALSE,
 								'ar_order'			=> FALSE,
 							);
-		
+
 		$this->_reset_run($ar_reset_items);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -2052,21 +2052,21 @@
 	 * @return	void
 	 */
 	function _reset_write()
-	{	
+	{
 		$ar_reset_items = array(
-								'ar_set'		=> array(), 
-								'ar_from'		=> array(), 
-								'ar_where'		=> array(), 
+								'ar_set'		=> array(),
+								'ar_from'		=> array(),
+								'ar_where'		=> array(),
 								'ar_like'		=> array(),
 								'ar_orderby'	=> array(),
-								'ar_keys'		=> array(), 
-								'ar_limit'		=> FALSE, 
+								'ar_keys'		=> array(),
+								'ar_limit'		=> FALSE,
 								'ar_order'		=> FALSE
 								);
 
 		$this->_reset_run($ar_reset_items);
 	}
-	
+
 }
 
 /* End of file DB_active_rec.php */
diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php
index 2606df8..6eff594 100644
--- a/system/database/DB_cache.php
+++ b/system/database/DB_cache.php
@@ -32,14 +32,14 @@
 	 *
 	 * Grabs the CI super object instance so we can access it.
 	 *
-	 */	
+	 */
 	function CI_DB_Cache(&$db)
 	{
 		// Assign the main CI object to $this->CI
 		// and load the file helper since we use it a lot
 		$this->CI =& get_instance();
 		$this->db =& $db;
-		$this->CI->load->helper('file');	
+		$this->CI->load->helper('file');
 	}
 
 	// --------------------------------------------------------------------
@@ -50,7 +50,7 @@
 	 * @access	public
 	 * @param	string	the path to the cache directory
 	 * @return	bool
-	 */		
+	 */
 	function check_path($path = '')
 	{
 		if ($path == '')
@@ -59,10 +59,10 @@
 			{
 				return $this->db->cache_off();
 			}
-		
+
 			$path = $this->db->cachedir;
 		}
-	
+
 		// Add a trailing slash to the path if needed
 		$path = preg_replace("/(.+?)\/*$/", "\\1/",  $path);
 
@@ -71,11 +71,11 @@
 			// If the path is wrong we'll turn off caching
 			return $this->db->cache_off();
 		}
-		
+
 		$this->db->cachedir = $path;
 		return TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -95,18 +95,18 @@
 		}
 
 		$segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1);
-		
+
 		$segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2);
-	
-		$filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql);		
-		
+
+		$filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql);
+
 		if (FALSE === ($cachedata = read_file($filepath)))
-		{	
+		{
 			return FALSE;
 		}
-		
-		return unserialize($cachedata);			
-	}	
+
+		return unserialize($cachedata);
+	}
 
 	// --------------------------------------------------------------------
 
@@ -124,28 +124,28 @@
 		}
 
 		$segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1);
-		
+
 		$segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2);
-	
+
 		$dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/';
-		
+
 		$filename = md5($sql);
-	
+
 		if ( ! @is_dir($dir_path))
 		{
 			if ( ! @mkdir($dir_path, DIR_WRITE_MODE))
 			{
 				return FALSE;
 			}
-			
-			@chmod($dir_path, DIR_WRITE_MODE);			
+
+			@chmod($dir_path, DIR_WRITE_MODE);
 		}
-		
+
 		if (write_file($dir_path.$filename, serialize($object)) === FALSE)
 		{
 			return FALSE;
 		}
-		
+
 		@chmod($dir_path.$filename, FILE_WRITE_MODE);
 		return TRUE;
 	}
@@ -159,19 +159,19 @@
 	 * @return	bool
 	 */
 	function delete($segment_one = '', $segment_two = '')
-	{	
+	{
 		if ($segment_one == '')
 		{
 			$segment_one  = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1);
 		}
-		
+
 		if ($segment_two == '')
 		{
 			$segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2);
 		}
-		
+
 		$dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/';
-		
+
 		delete_files($dir_path, TRUE);
 	}
 
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 8e6f888..cbfa33e 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -71,13 +71,13 @@
 	var $limit_used;
 
 
-	
+
 	/**
 	 * Constructor.  Accepts one parameter containing the database
 	 * connection settings.
 	 *
 	 * @param array
-	 */	
+	 */
 	function CI_DB_driver($params)
 	{
 		if (is_array($params))
@@ -90,7 +90,7 @@
 
 		log_message('debug', 'Database Driver Class Initialized');
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -99,7 +99,7 @@
 	 * @access	private Called by the constructor
 	 * @param	mixed
 	 * @return	void
-	 */	
+	 */
 	function initialize()
 	{
 		// If an existing connection resource is available
@@ -108,9 +108,9 @@
 		{
 			return TRUE;
 		}
-	
+
 		// ----------------------------------------------------------------
-		
+
 		// Connect to the database and set the connection ID
 		$this->conn_id = ($this->pconnect == FALSE) ? $this->db_connect() : $this->db_pconnect();
 
@@ -118,7 +118,7 @@
 		if ( ! $this->conn_id)
 		{
 			log_message('error', 'Unable to connect to the database');
-			
+
 			if ($this->db_debug)
 			{
 				$this->display_error('db_unable_to_connect');
@@ -134,12 +134,12 @@
 			if ( ! $this->db_select())
 			{
 				log_message('error', 'Unable to select database: '.$this->database);
-			
+
 				if ($this->db_debug)
 				{
 					$this->display_error('db_unable_to_select', $this->database);
 				}
-				return FALSE;			
+				return FALSE;
 			}
 			else
 			{
@@ -148,14 +148,14 @@
 				{
 					return FALSE;
 				}
-		
+
 				return TRUE;
 			}
 		}
 
 		return TRUE;
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -171,26 +171,26 @@
 		if ( ! $this->_db_set_charset($this->char_set, $this->dbcollat))
 		{
 			log_message('error', 'Unable to set database connection charset: '.$this->char_set);
-		
+
 			if ($this->db_debug)
 			{
 				$this->display_error('db_unable_to_set_charset', $this->char_set);
 			}
-			
+
 			return FALSE;
 		}
-		
+
 		return TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
 	 * The name of the platform in use (mysql, mssql, etc...)
 	 *
 	 * @access	public
-	 * @return	string		
-	 */	
+	 * @return	string
+	 */
 	function platform()
 	{
 		return $this->dbdriver;
@@ -203,8 +203,8 @@
 	 * version of the database being used
 	 *
 	 * @access	public
-	 * @return	string	
-	 */	
+	 * @return	string
+	 */
 	function version()
 	{
 		if (FALSE === ($sql = $this->_version()))
@@ -230,7 +230,7 @@
 			return $query->row('ver');
 		}
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -245,8 +245,8 @@
 	 * @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)
 	{
 		if ($sql == '')
@@ -279,7 +279,7 @@
 				}
 			}
 		}
-		
+
 		// Compile binds if needed
 		if ($binds !== FALSE)
 		{
@@ -291,10 +291,10 @@
 		{
 			$this->queries[] = $sql;
 		}
-		
+
 		// Start the Query Timer
 		$time_start = list($sm, $ss) = explode(' ', microtime());
-	
+
 		// Run the Query
 		if (FALSE === ($this->result_id = $this->simple_query($sql)))
 		{
@@ -302,7 +302,7 @@
 			{
 				$this->query_times[] = 0;
 			}
-		
+
 			// This will trigger a rollback if transactions are being used
 			$this->_trans_status = FALSE;
 
@@ -312,10 +312,10 @@
 				// additional queries before displaying the error
 				$error_no = $this->_error_number();
 				$error_msg = $this->_error_message();
-				
+
 				// We call this function in order to roll-back queries
 				// if transactions are enabled.  If we don't call this here
-				// the error message will trigger an exit, causing the 
+				// the error message will trigger an exit, causing the
 				// transactions to remain in limbo.
 				$this->trans_complete();
 
@@ -329,10 +329,10 @@
 											)
 										);
 			}
-		
+
 			return FALSE;
 		}
-		
+
 		// Stop and aggregate the query time results
 		$time_end = list($em, $es) = explode(' ', microtime());
 		$this->benchmark += ($em + $es) - ($sm + $ss);
@@ -341,10 +341,10 @@
 		{
 			$this->query_times[] = ($em + $es) - ($sm + $ss);
 		}
-		
+
 		// Increment the query counter
 		$this->query_count++;
-		
+
 		// Was the query a "write" type?
 		// If so we'll simply return true
 		if ($this->is_write_type($sql) === TRUE)
@@ -355,10 +355,10 @@
 			{
 				$this->CACHE->delete();
 			}
-		
+
 			return TRUE;
 		}
-		
+
 		// Return TRUE if we don't need to create a result object
 		// Currently only the Oracle driver uses this when stored
 		// procedures are used
@@ -366,11 +366,11 @@
 		{
 			return TRUE;
 		}
-	
-		// Load and instantiate the result driver	
-		
-		$driver 		= $this->load_rdriver();
-		$RES 			= new $driver();
+
+		// Load and instantiate the result driver
+
+		$driver			= $this->load_rdriver();
+		$RES			= new $driver();
 		$RES->conn_id	= $this->conn_id;
 		$RES->result_id	= $this->result_id;
 
@@ -381,10 +381,10 @@
 			$RES->limit_used	= $this->limit_used;
 			$this->stmt_id		= FALSE;
 		}
-		
+
 		// oci8 vars must be set before calling this
 		$RES->num_rows	= $RES->num_rows();
-				
+
 		// 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())
@@ -396,17 +396,17 @@
 			// result object, so we'll have to compile the data
 			// and save it)
 			$CR = new CI_DB_result();
-			$CR->num_rows 		= $RES->num_rows();
+			$CR->num_rows		= $RES->num_rows();
 			$CR->result_object	= $RES->result_object();
 			$CR->result_array	= $RES->result_array();
-			
+
 			// Reset these since cached objects can not utilize resource IDs.
 			$CR->conn_id		= NULL;
 			$CR->result_id		= NULL;
 
 			$this->CACHE->write($sql, $CR);
 		}
-		
+
 		return $RES;
 	}
 
@@ -416,8 +416,8 @@
 	 * 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()
 	{
 		$driver = 'CI_DB_'.$this->dbdriver.'_result';
@@ -427,10 +427,10 @@
 			include_once(BASEPATH.'database/DB_result'.EXT);
 			include_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_result'.EXT);
 		}
-		
+
 		return $driver;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -441,8 +441,8 @@
 	 *
 	 * @access	public
 	 * @param	string	the sql query
-	 * @return	mixed		
-	 */	
+	 * @return	mixed
+	 */
 	function simple_query($sql)
 	{
 		if ( ! $this->conn_id)
@@ -452,7 +452,7 @@
 
 		return $this->_execute($sql);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -460,8 +460,8 @@
 	 * This permits transactions to be disabled at run-time.
 	 *
 	 * @access	public
-	 * @return	void		
-	 */	
+	 * @return	void
+	 */
 	function trans_off()
 	{
 		$this->trans_enabled = FALSE;
@@ -477,23 +477,23 @@
 	 * a failure of one group will not affect any others
 	 *
 	 * @access	public
-	 * @return	void		
-	 */	
+	 * @return	void
+	 */
 	function trans_strict($mode = TRUE)
 	{
 		$this->trans_strict = is_bool($mode) ? $mode : TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
 	 * Start Transaction
 	 *
 	 * @access	public
-	 * @return	void		
-	 */	
+	 * @return	void
+	 */
 	function trans_start($test_mode = FALSE)
-	{	
+	{
 		if ( ! $this->trans_enabled)
 		{
 			return FALSE;
@@ -505,7 +505,7 @@
 			$this->_trans_depth += 1;
 			return;
 		}
-		
+
 		$this->trans_begin($test_mode);
 	}
 
@@ -515,27 +515,27 @@
 	 * Complete Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_complete()
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return FALSE;
 		}
-	
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 1)
 		{
 			$this->_trans_depth -= 1;
 			return TRUE;
 		}
-	
+
 		// The query() function will set this flag to FALSE in the event that a query failed
 		if ($this->_trans_status === FALSE)
 		{
 			$this->trans_rollback();
-			
+
 			// If we are NOT running in strict mode, we will reset
 			// the _trans_status flag so that subsequent groups of transactions
 			// will be permitted.
@@ -547,7 +547,7 @@
 			log_message('debug', 'DB Transaction Failure');
 			return FALSE;
 		}
-		
+
 		$this->trans_commit();
 		return TRUE;
 	}
@@ -558,8 +558,8 @@
 	 * Lets you retrieve the transaction flag to determine if it has failed
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_status()
 	{
 		return $this->_trans_status;
@@ -573,20 +573,20 @@
 	 * @access	public
 	 * @param	string	the sql statement
 	 * @param	array	an array of bind data
-	 * @return	string		
-	 */	
+	 * @return	string
+	 */
 	function compile_binds($sql, $binds)
 	{
 		if (strpos($sql, $this->bind_marker) === FALSE)
 		{
 			return $sql;
 		}
-		
+
 		if ( ! is_array($binds))
 		{
 			$binds = array($binds);
 		}
-		
+
 		// Get the sql segments around the bind markers
 		$segments = explode($this->bind_marker, $sql);
 
@@ -607,7 +607,7 @@
 
 		return $result;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -615,8 +615,8 @@
 	 *
 	 * @access	public
 	 * @param	string	An SQL query string
-	 * @return	boolean		
-	 */	
+	 * @return	boolean
+	 */
 	function is_write_type($sql)
 	{
 		if ( ! preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql))
@@ -625,7 +625,7 @@
 		}
 		return TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -633,34 +633,34 @@
 	 *
 	 * @access	public
 	 * @param	integer	The number of decimal places
-	 * @return	integer		
-	 */	
+	 * @return	integer
+	 */
 	function elapsed_time($decimals = 6)
 	{
 		return number_format($this->benchmark, $decimals);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
 	 * Returns the total number of queries
 	 *
 	 * @access	public
-	 * @return	integer		
-	 */	
+	 * @return	integer
+	 */
 	function total_queries()
 	{
 		return $this->query_count;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
 	 * Returns the last query that was executed
 	 *
 	 * @access	public
-	 * @return	void		
-	 */	
+	 * @return	void
+	 */
 	function last_query()
 	{
 		return end($this->queries);
@@ -676,10 +676,10 @@
 	 *
 	 * @access	public
 	 * @param	string
-	 * @return	mixed		
-	 */	
+	 * @return	mixed
+	 */
 	function escape($str)
-	{	
+	{
 		if (is_string($str))
 		{
 			$str = "'".$this->escape_str($str)."'";
@@ -703,14 +703,14 @@
 	 *
 	 * Calls the individual driver for platform
 	 * specific escaping for LIKE conditions
-	 * 
+	 *
 	 * @access	public
 	 * @param	string
 	 * @return	mixed
 	 */
-    function escape_like_str($str)    
-    {    
-    	return $this->escape_str($str, TRUE);
+	function escape_like_str($str)
+	{
+		return $this->escape_str($str, TRUE);
 	}
 
 	// --------------------------------------------------------------------
@@ -723,12 +723,12 @@
 	 *
 	 * @access	public
 	 * @param	string	the table name
-	 * @return	string		
-	 */	
+	 * @return	string
+	 */
 	function primary($table = '')
-	{	
+	{
 		$fields = $this->list_fields($table);
-		
+
 		if ( ! is_array($fields))
 		{
 			return FALSE;
@@ -743,8 +743,8 @@
 	 * Returns an array of table names
 	 *
 	 * @access	public
-	 * @return	array		
-	 */	
+	 * @return	array
+	 */
 	function list_tables($constrain_by_prefix = FALSE)
 	{
 		// Is there a cached result?
@@ -752,7 +752,7 @@
 		{
 			return $this->data_cache['table_names'];
 		}
-	
+
 		if (FALSE === ($sql = $this->_list_tables($constrain_by_prefix)))
 		{
 			if ($this->db_debug)
@@ -764,7 +764,7 @@
 
 		$retval = array();
 		$query = $this->query($sql);
-		
+
 		if ($query->num_rows() > 0)
 		{
 			foreach($query->result_array() as $row)
@@ -783,7 +783,7 @@
 		$this->data_cache['table_names'] = $retval;
 		return $this->data_cache['table_names'];
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -792,10 +792,10 @@
 	 * @return	boolean
 	 */
 	function table_exists($table_name)
-	{	
+	{
 		return ( ! in_array($this->_protect_identifiers($table_name, TRUE, FALSE, FALSE), $this->list_tables())) ? FALSE : TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -803,7 +803,7 @@
 	 *
 	 * @access	public
 	 * @param	string	the table name
-	 * @return	array		
+	 * @return	array
 	 */
 	function list_fields($table = '')
 	{
@@ -812,7 +812,7 @@
 		{
 			return $this->data_cache['field_names'][$table];
 		}
-	
+
 		if ($table == '')
 		{
 			if ($this->db_debug)
@@ -821,7 +821,7 @@
 			}
 			return FALSE;
 		}
-		
+
 		if (FALSE === ($sql = $this->_list_columns($table)))
 		{
 			if ($this->db_debug)
@@ -830,9 +830,9 @@
 			}
 			return FALSE;
 		}
-		
+
 		$query = $this->query($sql);
-		
+
 		$retval = array();
 		foreach($query->result_array() as $row)
 		{
@@ -843,9 +843,9 @@
 			else
 			{
 				$retval[] = current($row);
-			}		
+			}
 		}
-		
+
 		$this->data_cache['field_names'][$table] = $retval;
 		return $this->data_cache['field_names'][$table];
 	}
@@ -860,10 +860,10 @@
 	 * @return	boolean
 	 */
 	function field_exists($field_name, $table_name)
-	{	
+	{
 		return ( ! in_array($field_name, $this->list_fields($table_name))) ? FALSE : TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -871,8 +871,8 @@
 	 *
 	 * @access	public
 	 * @param	string	the table name
-	 * @return	object		
-	 */	
+	 * @return	object
+	 */
 	function field_data($table = '')
 	{
 		if ($table == '')
@@ -883,36 +883,36 @@
 			}
 			return FALSE;
 		}
-		
+
 		$query = $this->query($this->_field_data($this->_protect_identifiers($table, TRUE, NULL, FALSE)));
 
 		return $query->field_data();
-	}	
+	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * 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();
 		$values = array();
-		
+
 		foreach($data as $key => $val)
 		{
 			$fields[] = $this->_escape_identifiers($key);
 			$values[] = $this->escape($val);
 		}
-				
+
 		return $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $values);
-	}	
-	
+	}
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -922,15 +922,15 @@
 	 * @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)
 	{
 		if ($where == '')
 		{
 			return false;
 		}
-					
+
 		$fields = array();
 		foreach($data as $key => $val)
 		{
@@ -947,23 +947,23 @@
 			foreach ($where as $key => $val)
 			{
 				$prefix = (count($dest) == 0) ? '' : ' AND ';
-	
+
 				if ($val !== '')
 				{
 					if ( ! $this->_has_operator($key))
 					{
 						$key .= ' =';
 					}
-				
+
 					$val = ' '.$this->escape($val);
 				}
-							
+
 				$dest[] = $prefix.$key.$val;
 			}
-		}		
+		}
 
 		return $this->_update($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $dest);
-	}	
+	}
 
 	// --------------------------------------------------------------------
 
@@ -993,17 +993,17 @@
 	 * @access	public
 	 * @param	string	the function name
 	 * @param	mixed	any parameters needed by the function
-	 * @return	mixed		
-	 */	
+	 * @return	mixed
+	 */
 	function call_function($function)
 	{
 		$driver = ($this->dbdriver == 'postgre') ? 'pg_' : $this->dbdriver.'_';
-	
+
 		if (FALSE === strpos($driver, $function))
 		{
 			$function = $driver.$function;
 		}
-		
+
 		if ( ! function_exists($function))
 		{
 			if ($this->db_debug)
@@ -1028,7 +1028,7 @@
 	 * @access	public
 	 * @param	string	the path to the cache directory
 	 * @return	void
-	 */		
+	 */
 	function cache_set_path($path = '')
 	{
 		$this->cachedir = $path;
@@ -1041,7 +1041,7 @@
 	 *
 	 * @access	public
 	 * @return	void
-	 */		
+	 */
 	function cache_on()
 	{
 		$this->cache_on = TRUE;
@@ -1055,13 +1055,13 @@
 	 *
 	 * @access	public
 	 * @return	void
-	 */	
+	 */
 	function cache_off()
 	{
 		$this->cache_on = FALSE;
 		return FALSE;
 	}
-	
+
 
 	// --------------------------------------------------------------------
 
@@ -1070,7 +1070,7 @@
 	 *
 	 * @access	public
 	 * @return	void
-	 */		
+	 */
 	function cache_delete($segment_one = '', $segment_two = '')
 	{
 		if ( ! $this->_cache_init())
@@ -1087,7 +1087,7 @@
 	 *
 	 * @access	public
 	 * @return	void
-	 */		
+	 */
 	function cache_delete_all()
 	{
 		if ( ! $this->_cache_init())
@@ -1105,7 +1105,7 @@
 	 *
 	 * @access	private
 	 * @return	void
-	 */	
+	 */
 	function _cache_init()
 	{
 		if (is_object($this->CACHE) AND class_exists('CI_DB_Cache'))
@@ -1131,8 +1131,8 @@
 	 * Close DB Connection
 	 *
 	 * @access	public
-	 * @return	void		
-	 */	
+	 * @return	void
+	 */
 	function close()
 	{
 		if (is_resource($this->conn_id) OR is_object($this->conn_id))
@@ -1141,7 +1141,7 @@
 		}
 		$this->conn_id = FALSE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -1151,8 +1151,8 @@
 	 * @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)
 	{
 		$LANG =& load_class('Lang', 'core');
@@ -1168,11 +1168,11 @@
 		{
 			$message = ( ! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error;
 		}
-		
+
 		// Find the most likely culprit of the error by going through
 		// the backtrace until the source file is no longer in the
 		// database folder.
-		
+
 		$trace = debug_backtrace();
 
 		foreach($trace as $call)
@@ -1182,11 +1182,11 @@
 				// Found it - use a relative path for safety
 				$message[] = 'Filename: '.str_replace(array(BASEPATH, APPPATH), '', $call['file']);
 				$message[] = 'Line Number: '.$call['line'];
-				
+
 				break;
 			}
 		}
-		
+
 		$error =& load_class('Exceptions', 'core');
 		echo $error->show_error($heading, $message, 'error_db');
 		exit;
@@ -1214,7 +1214,7 @@
 	 * Protect Identifiers
 	 *
 	 * This function is used extensively by the Active Record class, and by
-	 * a couple functions in this class. 
+	 * a couple functions in this class.
 	 * It takes a column or table name (optionally with an alias) and inserts
 	 * the table prefix onto it.  Some logic is necessary in order to deal with
 	 * column names that include the path.  Consider a query like this:
@@ -1236,7 +1236,7 @@
 	 * @param	mixed
 	 * @param	bool
 	 * @return	string
-	 */	
+	 */
 	function _protect_identifiers($item, $prefix_single = FALSE, $protect_identifiers = NULL, $field_exists = TRUE)
 	{
 		if ( ! is_bool($protect_identifiers))
@@ -1258,7 +1258,7 @@
 
 		// Convert tabs or multiple spaces into single spaces
 		$item = preg_replace('/[\t ]+/', ' ', $item);
-	
+
 		// If the item has an alias declaration we remove it and set it aside.
 		// Basically we remove everything to the right of the first space
 		$alias = '';
@@ -1269,7 +1269,7 @@
 		}
 
 		// This is basically a bug fix for queries that use MAX, MIN, etc.
-		// If a parenthesis is found we know that we do not need to 
+		// If a parenthesis is found we know that we do not need to
 		// escape the data or add a prefix.  There's probably a more graceful
 		// way to deal with this, but I'm not thinking of it -- Rick
 		if (strpos($item, '(') !== FALSE)
@@ -1283,7 +1283,7 @@
 		if (strpos($item, '.') !== FALSE)
 		{
 			$parts	= explode('.', $item);
-			
+
 			// Does the first segment of the exploded item match
 			// one of the aliases previously identified?  If so,
 			// we have nothing more to do other than escape the item
@@ -1298,12 +1298,12 @@
 							$parts[$key] = $this->_escape_identifiers($val);
 						}
 					}
-				
+
 					$item = implode('.', $parts);
-				}			
+				}
 				return $item.$alias;
 			}
-			
+
 			// Is there a table prefix defined in the config file?  If not, no need to do anything
 			if ($this->dbprefix != '')
 			{
@@ -1326,35 +1326,35 @@
 				{
 					$i = 0;
 				}
-				
+
 				// This flag is set when the supplied $item does not contain a field name.
 				// This can happen when this function is being called from a JOIN.
 				if ($field_exists == FALSE)
 				{
 					$i++;
 				}
-				
+
 				// Verify table prefix and replace if necessary
 				if ($this->swap_pre != '' && strncmp($parts[$i], $this->swap_pre, strlen($this->swap_pre)) === 0)
 				{
 					$parts[$i] = preg_replace("/^".$this->swap_pre."(\S+?)/", $this->dbprefix."\\1", $parts[$i]);
 				}
-				
+
 				// We only add the table prefix if it does not already exist
 				if (substr($parts[$i], 0, strlen($this->dbprefix)) != $this->dbprefix)
 				{
 					$parts[$i] = $this->dbprefix.$parts[$i];
 				}
-				
+
 				// Put the parts back together
 				$item = implode('.', $parts);
 			}
-			
+
 			if ($protect_identifiers === TRUE)
 			{
 				$item = $this->_escape_identifiers($item);
 			}
-			
+
 			return $item.$alias;
 		}
 
@@ -1371,14 +1371,14 @@
 			if ($prefix_single == TRUE AND substr($item, 0, strlen($this->dbprefix)) != $this->dbprefix)
 			{
 				$item = $this->dbprefix.$item;
-			}		
+			}
 		}
 
 		if ($protect_identifiers === TRUE AND ! in_array($item, $this->_reserved_identifiers))
 		{
 			$item = $this->_escape_identifiers($item);
 		}
-		
+
 		return $item.$alias;
 	}
 
diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php
index 8be65e0..74aed86 100644
--- a/system/database/DB_forge.php
+++ b/system/database/DB_forge.php
@@ -24,9 +24,9 @@
  */
 class CI_DB_forge {
 
-	var $fields		 	= array();
+	var $fields			= array();
 	var $keys			= array();
-	var $primary_keys 	= array();
+	var $primary_keys	= array();
 	var $db_char_set	=	'';
 
 	/**
@@ -34,7 +34,7 @@
 	 *
 	 * Grabs the CI super object instance so we can access it.
 	 *
-	 */	
+	 */
 	function CI_DB_forge()
 	{
 		// Assign the main database object to $this->db
@@ -55,12 +55,12 @@
 	function create_database($db_name)
 	{
 		$sql = $this->_create_database($db_name);
-		
+
 		if (is_bool($sql))
 		{
 			return $sql;
 		}
-	
+
 		return $this->db->query($sql);
 	}
 
@@ -76,12 +76,12 @@
 	function drop_database($db_name)
 	{
 		$sql = $this->_drop_database($db_name);
-		
+
 		if (is_bool($sql))
 		{
 			return $sql;
 		}
-	
+
 		return $this->db->query($sql);
 	}
 
@@ -103,15 +103,15 @@
 			{
 				$this->add_key($one, $primary);
 			}
-			
+
 			return;
 		}
-	
+
 		if ($key == '')
 		{
 			show_error('Key information is required for that operation.');
 		}
-		
+
 		if ($primary === TRUE)
 		{
 			$this->primary_keys[] = $key;
@@ -137,7 +137,7 @@
 		{
 			show_error('Field information is required.');
 		}
-		
+
 		if (is_string($field))
 		{
 			if ($field == 'id')
@@ -157,16 +157,16 @@
 				{
 					show_error('Field information is required for that operation.');
 				}
-				
+
 				$this->fields[] = $field;
 			}
 		}
-		
+
 		if (is_array($field))
 		{
 			$this->fields = array_merge($this->fields, $field);
 		}
-		
+
 	}
 
 	// --------------------------------------------------------------------
@@ -179,19 +179,19 @@
 	 * @return	bool
 	 */
 	function create_table($table = '', $if_not_exists = FALSE)
-	{	
+	{
 		if ($table == '')
 		{
 			show_error('A table name is required for that operation.');
 		}
-			
+
 		if (count($this->fields) == 0)
-		{	
+		{
 			show_error('Field information is required.');
 		}
 
 		$sql = $this->_create_table($this->db->dbprefix.$table, $this->fields, $this->primary_keys, $this->keys, $if_not_exists);
-		
+
 		$this->_reset();
 		return $this->db->query($sql);
 	}
@@ -208,12 +208,12 @@
 	function drop_table($table_name)
 	{
 		$sql = $this->_drop_table($this->db->dbprefix.$table_name);
-		
+
 		if (is_bool($sql))
 		{
 			return $sql;
 		}
-	
+
 		return $this->db->query($sql);
 	}
 
@@ -233,7 +233,7 @@
 		{
 			show_error('A table name is required for that operation.');
 		}
-			
+
 		$sql = $this->_rename_table($table_name, $new_table_name);
 		return $this->db->query($sql);
 	}
@@ -259,25 +259,25 @@
 		// add field info into field array, but we can only do one at a time
 		// so we cycle through
 
-       foreach ($field as $k => $v)
-       {
-			$this->add_field(array($k => $field[$k]));		
+		foreach ($field as $k => $v)
+		{
+			$this->add_field(array($k => $field[$k]));
 
 			if (count($this->fields) == 0)
-			{	
+			{
 				show_error('Field information is required.');
 			}
-			
+
 			$sql = $this->_alter_table('ADD', $this->db->dbprefix.$table, $this->fields, $after_field);
 
 			$this->_reset();
-	
+
 			if ($this->db->query($sql) === FALSE)
 			{
 				return FALSE;
 			}
 		}
-		
+
 		return TRUE;
 
 	}
@@ -294,7 +294,7 @@
 	 */
 	function drop_column($table = '', $column_name = '')
 	{
-	
+
 		if ($table == '')
 		{
 			show_error('A table name is required for that operation.');
@@ -306,7 +306,7 @@
 		}
 
 		$sql = $this->_alter_table('DROP', $this->db->dbprefix.$table, $column_name);
-	
+
 		return $this->db->query($sql);
 	}
 
@@ -336,20 +336,20 @@
 			$this->add_field(array($k => $field[$k]));
 
 			if (count($this->fields) == 0)
-			{	
+			{
 				show_error('Field information is required.');
 			}
-		
+
 			$sql = $this->_alter_table('CHANGE', $this->db->dbprefix.$table, $this->fields);
 
 			$this->_reset();
-	
+
 			if ($this->db->query($sql) === FALSE)
 			{
 				return FALSE;
 			}
 		}
-		
+
 		return TRUE;
 	}
 
@@ -365,9 +365,9 @@
 	 */
 	function _reset()
 	{
-		$this->fields 		= array();
+		$this->fields		= array();
 		$this->keys			= array();
-		$this->primary_keys 	= array();
+		$this->primary_keys	= array();
 	}
 
 }
diff --git a/system/database/DB_result.php b/system/database/DB_result.php
index b9e64fe..406afb1 100644
--- a/system/database/DB_result.php
+++ b/system/database/DB_result.php
@@ -32,7 +32,7 @@
 	var $result_id		= NULL;
 	var $result_array	= array();
 	var $result_object	= array();
-	var $current_row 	= 0;
+	var $current_row	= 0;
 	var $num_rows		= 0;
 	var $row_data		= NULL;
 
@@ -42,10 +42,10 @@
 	 *
 	 * @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')
-	{	
+	{
 		return ($type == 'object') ? $this->result_object() : $this->result_array();
 	}
 
@@ -56,16 +56,16 @@
 	 *
 	 * @access	public
 	 * @return	object
-	 */	
+	 */
 	function result_object()
 	{
 		if (count($this->result_object) > 0)
 		{
 			return $this->result_object;
 		}
-		
-		// In the event that query caching is on the result_id variable 
-		// will return FALSE since there isn't a valid SQL resource so 
+
+		// In the event that query caching is on the result_id variable
+		// will return FALSE since there isn't a valid SQL resource so
 		// we'll simply return an empty array.
 		if ($this->result_id === FALSE OR $this->num_rows() == 0)
 		{
@@ -77,10 +77,10 @@
 		{
 			$this->result_object[] = $row;
 		}
-		
+
 		return $this->result_object;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -88,7 +88,7 @@
 	 *
 	 * @access	public
 	 * @return	array
-	 */	
+	 */
 	function result_array()
 	{
 		if (count($this->result_array) > 0)
@@ -96,8 +96,8 @@
 			return $this->result_array;
 		}
 
-		// In the event that query caching is on the result_id variable 
-		// will return FALSE since there isn't a valid SQL resource so 
+		// In the event that query caching is on the result_id variable
+		// will return FALSE since there isn't a valid SQL resource so
 		// we'll simply return an empty array.
 		if ($this->result_id === FALSE OR $this->num_rows() == 0)
 		{
@@ -109,7 +109,7 @@
 		{
 			$this->result_array[] = $row;
 		}
-		
+
 		return $this->result_array;
 	}
 
@@ -121,8 +121,8 @@
 	 * @access	public
 	 * @param	string
 	 * @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')
 	{
 		if ( ! is_numeric($n))
@@ -132,16 +132,16 @@
 			{
 				$this->row_data = $this->row_array(0);
 			}
-		
+
 			// array_key_exists() instead of isset() to allow for MySQL NULL values
 			if (array_key_exists($n, $this->row_data))
 			{
 				return $this->row_data[$n];
 			}
-			// reset the $n variable if the result was not achieved			
+			// reset the $n variable if the result was not achieved
 			$n = 0;
 		}
-		
+
 		return ($type == 'object') ? $this->row_object($n) : $this->row_array($n);
 	}
 
@@ -152,7 +152,7 @@
 	 *
 	 * @access	public
 	 * @return	object
-	 */	
+	 */
 	function set_row($key, $value = NULL)
 	{
 		// We cache the row data for subsequent uses
@@ -160,17 +160,17 @@
 		{
 			$this->row_data = $this->row_array(0);
 		}
-	
+
 		if (is_array($key))
 		{
 			foreach ($key as $k => $v)
 			{
 				$this->row_data[$k] = $v;
 			}
-			
+
 			return;
 		}
-	
+
 		if ($key != '' AND ! is_null($value))
 		{
 			$this->row_data[$key] = $value;
@@ -184,11 +184,11 @@
 	 *
 	 * @access	public
 	 * @return	object
-	 */	
+	 */
 	function row_object($n = 0)
 	{
 		$result = $this->result_object();
-		
+
 		if (count($result) == 0)
 		{
 			return $result;
@@ -209,7 +209,7 @@
 	 *
 	 * @access	public
 	 * @return	array
-	 */	
+	 */
 	function row_array($n = 0)
 	{
 		$result = $this->result_array();
@@ -218,16 +218,16 @@
 		{
 			return $result;
 		}
-			
+
 		if ($n != $this->current_row AND isset($result[$n]))
 		{
 			$this->current_row = $n;
 		}
-		
+
 		return $result[$this->current_row];
 	}
 
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -235,7 +235,7 @@
 	 *
 	 * @access	public
 	 * @return	object
-	 */	
+	 */
 	function first_row($type = 'object')
 	{
 		$result = $this->result($type);
@@ -246,7 +246,7 @@
 		}
 		return $result[0];
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -254,7 +254,7 @@
 	 *
 	 * @access	public
 	 * @return	object
-	 */	
+	 */
 	function last_row($type = 'object')
 	{
 		$result = $this->result($type);
@@ -264,7 +264,7 @@
 			return $result;
 		}
 		return $result[count($result) -1];
-	}	
+	}
 
 	// --------------------------------------------------------------------
 
@@ -273,7 +273,7 @@
 	 *
 	 * @access	public
 	 * @return	object
-	 */	
+	 */
 	function next_row($type = 'object')
 	{
 		$result = $this->result($type);
@@ -287,10 +287,10 @@
 		{
 			++$this->current_row;
 		}
-				
+
 		return $result[$this->current_row];
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -298,7 +298,7 @@
 	 *
 	 * @access	public
 	 * @return	object
-	 */	
+	 */
 	function previous_row($type = 'object')
 	{
 		$result = $this->result($type);
@@ -329,12 +329,12 @@
 	function num_rows() { return $this->num_rows; }
 	function num_fields() { return 0; }
 	function list_fields() { return array(); }
-	function field_data() { return array(); }	
+	function field_data() { return array(); }
 	function free_result() { return TRUE; }
 	function _data_seek() { return TRUE; }
-	function _fetch_assoc() { return array(); }	
+	function _fetch_assoc() { return array(); }
 	function _fetch_object() { return array(); }
-	
+
 }
 // END DB_result class
 
diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index 124967a..2811d88 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -25,20 +25,20 @@
 class CI_DB_utility extends CI_DB_forge {
 
 	var $db;
-	var $data_cache 	= array();
+	var $data_cache		= array();
 
 	/**
 	 * Constructor
 	 *
 	 * Grabs the CI super object instance so we can access it.
 	 *
-	 */	
+	 */
 	function CI_DB_utility()
 	{
 		// Assign the main database object to $this->db
 		$CI =& get_instance();
 		$this->db =& $CI->db;
-		
+
 		log_message('debug', "Database Utility Class Initialized");
 	}
 
@@ -51,13 +51,13 @@
 	 * @return	bool
 	 */
 	function list_databases()
-	{	
+	{
 		// Is there a cached result?
 		if (isset($this->data_cache['db_names']))
 		{
 			return $this->data_cache['db_names'];
 		}
-	
+
 		$query = $this->db->query($this->_list_databases());
 		$dbs = array();
 		if ($query->num_rows() > 0)
@@ -67,7 +67,7 @@
 				$dbs[] = current($row);
 			}
 		}
-			
+
 		$this->data_cache['db_names'] = $dbs;
 		return $this->data_cache['db_names'];
 	}
@@ -109,15 +109,15 @@
 	function optimize_table($table_name)
 	{
 		$sql = $this->_optimize_table($table_name);
-		
+
 		if (is_bool($sql))
 		{
 				show_error('db_must_use_set');
 		}
-	
+
 		$query = $this->db->query($sql);
 		$res = $query->result_array();
-		
+
 		// Note: Due to a bug in current() that affects some versions
 		// of PHP we can not pass function call directly into it
 		return current($res);
@@ -137,14 +137,14 @@
 		foreach ($this->db->list_tables() as $table_name)
 		{
 			$sql = $this->_optimize_table($table_name);
-			
+
 			if (is_bool($sql))
 			{
 				return $sql;
 			}
-			
+
 			$query = $this->db->query($sql);
-			
+
 			// Build the result array...
 			// Note: Due to a bug in current() that affects some versions
 			// of PHP we can not pass function call directly into it
@@ -153,7 +153,7 @@
 			$key = str_replace($this->db->database.'.', '', current($res));
 			$keys = array_keys($res);
 			unset($res[$keys[0]]);
-			
+
 			$result[$key] = $res;
 		}
 
@@ -172,20 +172,20 @@
 	function repair_table($table_name)
 	{
 		$sql = $this->_repair_table($table_name);
-		
+
 		if (is_bool($sql))
 		{
 			return $sql;
 		}
-	
+
 		$query = $this->db->query($sql);
-		
+
 		// Note: Due to a bug in current() that affects some versions
 		// of PHP we can not pass function call directly into it
 		$res = $query->result_array();
 		return current($res);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -203,25 +203,25 @@
 		if ( ! is_object($query) OR ! method_exists($query, 'list_fields'))
 		{
 			show_error('You must submit a valid result object');
-		}	
-	
+		}
+
 		$out = '';
-		
+
 		// First generate the headings from the table column names
 		foreach ($query->list_fields() as $name)
 		{
 			$out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $name).$enclosure.$delim;
 		}
-		
+
 		$out = rtrim($out);
 		$out .= $newline;
-		
+
 		// Next blast through the result array and build out the rows
 		foreach ($query->result_array() as $row)
 		{
 			foreach ($row as $item)
 			{
-				$out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $item).$enclosure.$delim;			
+				$out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $item).$enclosure.$delim;
 			}
 			$out = rtrim($out);
 			$out .= $newline;
@@ -229,7 +229,7 @@
 
 		return $out;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -246,7 +246,7 @@
 		{
 			show_error('You must submit a valid result object');
 		}
-		
+
 		// Set our default values
 		foreach (array('root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t") as $key => $val)
 		{
@@ -255,10 +255,10 @@
 				$params[$key] = $val;
 			}
 		}
-		
+
 		// Create variables for convenience
 		extract($params);
-			
+
 		// Load the xml helper
 		$CI =& get_instance();
 		$CI->load->helper('xml');
@@ -268,7 +268,7 @@
 		foreach ($query->result_array() as $row)
 		{
 			$xml .= $tab."<{$element}>".$newline;
-			
+
 			foreach ($row as $key => $val)
 			{
 				$xml .= $tab.$tab."<{$key}>".xml_convert($val)."</{$key}>".$newline;
@@ -276,7 +276,7 @@
 			$xml .= $tab."</{$element}>".$newline;
 		}
 		$xml .= "</$root>".$newline;
-		
+
 		return $xml;
 	}
 
@@ -297,9 +297,9 @@
 		{
 			$params = array('tables' => $params);
 		}
-		
+
 		// ------------------------------------------------------
-	
+
 		// Set up our default preferences
 		$prefs = array(
 							'tables'		=> array(),
@@ -325,13 +325,13 @@
 
 		// ------------------------------------------------------
 
-		// Are we backing up a complete database or individual tables?	
+		// Are we backing up a complete database or individual tables?
 		// If no table names were submitted we'll fetch the entire table list
 		if (count($prefs['tables']) == 0)
 		{
 			$prefs['tables'] = $this->db->list_tables();
 		}
-		
+
 		// ------------------------------------------------------
 
 		// Validate the format
@@ -345,13 +345,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')))
+		OR ($prefs['format'] == 'zip'  AND ! @function_exists('gzcompress')))
 		{
 			if ($this->db->db_debug)
 			{
 				return $this->db->display_error('db_unsuported_compression');
 			}
-		
+
 			$prefs['format'] = 'txt';
 		}
 
@@ -365,7 +365,7 @@
 		}
 
 		// ------------------------------------------------------
-				
+
 		// Was a Gzip file requested?
 		if ($prefs['format'] == 'gzip')
 		{
@@ -373,7 +373,7 @@
 		}
 
 		// ------------------------------------------------------
-		
+
 		// Was a text file requested?
 		if ($prefs['format'] == 'txt')
 		{
@@ -382,7 +382,7 @@
 
 		// ------------------------------------------------------
 
-		// Was a Zip file requested?		
+		// Was a Zip file requested?
 		if ($prefs['format'] == 'zip')
 		{
 			// If they included the .zip file extension we'll remove it
@@ -390,7 +390,7 @@
 			{
 				$prefs['filename'] = str_replace('.zip', '', $prefs['filename']);
 			}
-			
+
 			// Tack on the ".sql" file extension if needed
 			if ( ! preg_match("|.+?\.sql$|", $prefs['filename']))
 			{
@@ -398,13 +398,13 @@
 			}
 
 			// Load the Zip class and output it
-			
+
 			$CI =& get_instance();
 			$CI->load->library('zip');
-			$CI->zip->add_data($prefs['filename'], $this->_backup($prefs));							
+			$CI->zip->add_data($prefs['filename'], $this->_backup($prefs));
 			return $CI->zip->get_zip();
 		}
-		
+
 	}
 
 }
diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php
index 40900e8..63f9e9c 100644
--- a/system/database/drivers/mssql/mssql_driver.php
+++ b/system/database/drivers/mssql/mssql_driver.php
@@ -31,14 +31,14 @@
 class CI_DB_mssql_driver extends CI_DB {
 
 	var $dbdriver = 'mssql';
-	
+
 	// The character used for escaping
 	var $_escape_char = '';
 
 	// clause and character used for LIKE escape sequences
 	var $_like_escape_str = " ESCAPE '%s' ";
 	var $_like_escape_chr = '!';
-	
+
 	/**
 	 * The syntax to count rows is slightly different across different
 	 * database engines, so this string appears in each driver and is
@@ -52,7 +52,7 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_connect()
 	{
 		if ($this->port != '')
@@ -62,7 +62,7 @@
 
 		return @mssql_connect($this->hostname, $this->username, $this->password);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -70,7 +70,7 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_pconnect()
 	{
 		if ($this->port != '')
@@ -80,9 +80,9 @@
 
 		return @mssql_pconnect($this->hostname, $this->username, $this->password);
 	}
-	
+
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Reconnect
 	 *
@@ -98,13 +98,13 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Select the database
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_select()
 	{
 		// Note: The brackets are required in the event that the DB name
@@ -113,7 +113,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Set client character set
 	 *
@@ -129,20 +129,20 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Execute the query
 	 *
 	 * @access	private called by the base class
 	 * @param	string	an SQL query
 	 * @return	resource
-	 */	
+	 */
 	function _execute($sql)
 	{
 		$sql = $this->_prep_query($sql);
 		return @mssql_query($sql, $this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -153,7 +153,7 @@
 	 * @access	private called by execute()
 	 * @param	string	an SQL query
 	 * @return	string
-	 */	
+	 */
 	function _prep_query($sql)
 	{
 		return $sql;
@@ -165,15 +165,15 @@
 	 * Begin Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_begin($test_mode = FALSE)
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return TRUE;
 		}
-		
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 0)
 		{
@@ -195,8 +195,8 @@
 	 * Commit Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_commit()
 	{
 		if ( ! $this->trans_enabled)
@@ -220,8 +220,8 @@
 	 * Rollback Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_rollback()
 	{
 		if ( ! $this->trans_enabled)
@@ -238,7 +238,7 @@
 		$this->simple_query('ROLLBACK TRAN');
 		return TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -254,16 +254,16 @@
 		if (is_array($str))
 		{
 			foreach($str as $key => $val)
-	   		{
+			{
 				$str[$key] = $this->escape_str($val, $like);
-	   		}
-   		
-	   		return $str;
-	   	}
-		
+			}
+
+			return $str;
+		}
+
 		// Escape single quotes
 		$str = str_replace("'", "''", remove_invisible_characters($str));
-		
+
 		// escape LIKE condition wildcards
 		if ($like === TRUE)
 		{
@@ -271,10 +271,10 @@
 								array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr),
 								$str);
 		}
-		
+
 		return $str;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -287,7 +287,7 @@
 	{
 		return @mssql_rows_affected($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -312,7 +312,7 @@
 	/**
 	* Parse major version
 	*
-	* Grabs the major version number from the 
+	* Grabs the major version number from the
 	* database server version string passed in.
 	*
 	* @access private
@@ -382,14 +382,14 @@
 	function _list_tables($prefix_limit = FALSE)
 	{
 		$sql = "SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name";
-		
+
 		// for future compatibility
 		if ($prefix_limit !== FALSE AND $this->dbprefix != '')
 		{
 			//$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr);
 			return FALSE; // not currently supported
 		}
-		
+
 		return $sql;
 	}
 
@@ -406,7 +406,7 @@
 	 */
 	function _list_columns($table = '')
 	{
-		return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$table."'";	
+		return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$table."'";
 	}
 
 	// --------------------------------------------------------------------
@@ -422,7 +422,7 @@
 	 */
 	function _field_data($table)
 	{
-		return "SELECT TOP 1 * FROM ".$table;	
+		return "SELECT TOP 1 * FROM ".$table;
 	}
 
 	// --------------------------------------------------------------------
@@ -437,7 +437,7 @@
 	{
 		return mssql_get_last_message();
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -474,26 +474,26 @@
 		{
 			if (strpos($item, '.'.$id) !== FALSE)
 			{
-				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);  
-				
+				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
 				// remove duplicates if the user already included the escape
 				return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
-			}		
+			}
 		}
 
 		if (strpos($item, '.') !== FALSE)
 		{
-			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;			
+			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
 		}
 		else
 		{
 			$str = $this->_escape_char.$item.$this->_escape_char;
 		}
-		
+
 		// remove duplicates if the user already included the escape
 		return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -512,12 +512,12 @@
 		{
 			$tables = array($tables);
 		}
-		
+
 		return implode(', ', $tables);
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Insert statement
 	 *
@@ -530,10 +530,10 @@
 	 * @return	string
 	 */
 	function _insert($table, $keys, $values)
-	{	
+	{
 		return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -555,21 +555,21 @@
 		{
 			$valstr[] = $key." = ".$val;
 		}
-		
+
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-		
+
 		$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-	
+
 		$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
 
 		$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
 
 		$sql .= $orderby.$limit;
-		
+
 		return $sql;
 	}
 
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -582,12 +582,12 @@
 	 * @access	public
 	 * @param	string	the table name
 	 * @return	string
-	 */	
+	 */
 	function _truncate($table)
 	{
 		return "TRUNCATE ".$table;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -600,7 +600,7 @@
 	 * @param	array	the where clause
 	 * @param	string	the limit clause
 	 * @return	string
-	 */	
+	 */
 	function _delete($table, $where = array(), $like = array(), $limit = FALSE)
 	{
 		$conditions = '';
@@ -618,7 +618,7 @@
 		}
 
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-	
+
 		return "DELETE FROM ".$table.$conditions.$limit;
 	}
 
@@ -638,8 +638,8 @@
 	function _limit($sql, $limit, $offset)
 	{
 		$i = $limit + $offset;
-	
-		return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql);		
+
+		return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql);
 	}
 
 	// --------------------------------------------------------------------
@@ -654,7 +654,7 @@
 	function _close($conn_id)
 	{
 		@mssql_close($conn_id);
-	}	
+	}
 
 }
 
diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php
index f6a1781..5aa4406 100644
--- a/system/database/drivers/mssql/mssql_forge.php
+++ b/system/database/drivers/mssql/mssql_forge.php
@@ -79,12 +79,12 @@
 	function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
 		$sql = 'CREATE TABLE ';
-		
+
 		if ($if_not_exists === TRUE)
 		{
 			$sql .= 'IF NOT EXISTS ';
 		}
-		
+
 		$sql .= $this->db->_escape_identifiers($table)." (";
 		$current_field_count = 0;
 
@@ -100,41 +100,41 @@
 			else
 			{
 				$attributes = array_change_key_case($attributes, CASE_UPPER);
-				
+
 				$sql .= "\n\t".$this->db->_protect_identifiers($field);
-				
+
 				$sql .=  ' '.$attributes['TYPE'];
-	
+
 				if (array_key_exists('CONSTRAINT', $attributes))
 				{
 					$sql .= '('.$attributes['CONSTRAINT'].')';
 				}
-	
+
 				if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE)
 				{
 					$sql .= ' UNSIGNED';
 				}
-	
+
 				if (array_key_exists('DEFAULT', $attributes))
 				{
 					$sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\'';
 				}
-	
+
 				if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE)
 				{
 					$sql .= ' NULL';
 				}
 				else
 				{
-					$sql .= ' NOT NULL';			
+					$sql .= ' NOT NULL';
 				}
-	
+
 				if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE)
 				{
 					$sql .= ' AUTO_INCREMENT';
 				}
 			}
-			
+
 			// don't add a comma on the end of the last field
 			if (++$current_field_count < count($fields))
 			{
@@ -147,24 +147,24 @@
 			$primary_keys = $this->db->_protect_identifiers($primary_keys);
 			$sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")";
 		}
-		
+
 		if (is_array($keys) && count($keys) > 0)
 		{
 			foreach ($keys as $key)
 			{
 				if (is_array($key))
 				{
-					$key = $this->db->_protect_identifiers($key);	
+					$key = $this->db->_protect_identifiers($key);
 				}
 				else
 				{
 					$key = array($this->db->_protect_identifiers($key));
 				}
-				
+
 				$sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")";
 			}
 		}
-		
+
 		$sql .= "\n)";
 
 		return $sql;
@@ -218,9 +218,9 @@
 		{
 			$sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field);
 		}
-		
+
 		return $sql;
-		
+
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php
index e7b3380..09b1ec8 100644
--- a/system/database/drivers/mssql/mssql_result.php
+++ b/system/database/drivers/mssql/mssql_result.php
@@ -25,7 +25,7 @@
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_mssql_result extends CI_DB_result {
-	
+
 	/**
 	 * Number of rows in the result set
 	 *
@@ -36,7 +36,7 @@
 	{
 		return @mssql_num_rows($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -67,7 +67,7 @@
 		{
 			$field_names[] = $field->name;
 		}
-		
+
 		return $field_names;
 	}
 
@@ -85,17 +85,17 @@
 	{
 		$retval = array();
 		while ($field = mssql_fetch_field($this->result_id))
-		{	
-			$F 				= new stdClass();
-			$F->name 		= $field->name;
-			$F->type 		= $field->type;
+		{
+			$F				= new stdClass();
+			$F->name		= $field->name;
+			$F->type		= $field->type;
 			$F->max_length	= $field->max_length;
 			$F->primary_key = 0;
 			$F->default		= '';
-			
+
 			$retval[] = $F;
 		}
-		
+
 		return $retval;
 	}
 
@@ -105,7 +105,7 @@
 	 * Free the result
 	 *
 	 * @return	null
-	 */		
+	 */
 	function free_result()
 	{
 		if (is_resource($this->result_id))
@@ -131,7 +131,7 @@
 	{
 		return mssql_data_seek($this->result_id, $n);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -146,7 +146,7 @@
 	{
 		return mssql_fetch_assoc($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php
index 751be14..e58c7e0 100644
--- a/system/database/drivers/mssql/mssql_utility.php
+++ b/system/database/drivers/mssql/mssql_utility.php
@@ -52,7 +52,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Repair table query
 	 *
diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index d684c8a..cb985a7 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -43,9 +43,9 @@
 	 * Whether to use the MySQL "delete hack" which allows the number
 	 * of affected rows to be shown. Uses a preg_replace when enabled,
 	 * adding a bit more processing to all queries.
-	 */	
+	 */
 	var $delete_hack = TRUE;
-	
+
 	/**
 	 * The syntax to count rows is slightly different across different
 	 * database engines, so this string appears in each driver and is
@@ -59,17 +59,17 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_connect()
 	{
 		if ($this->port != '')
 		{
 			$this->hostname .= ':'.$this->port;
 		}
-		
+
 		return @mysql_connect($this->hostname, $this->username, $this->password, TRUE);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -77,7 +77,7 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_pconnect()
 	{
 		if ($this->port != '')
@@ -87,7 +87,7 @@
 
 		return @mysql_pconnect($this->hostname, $this->username, $this->password);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -108,13 +108,13 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Select the database
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_select()
 	{
 		return @mysql_select_db($this->database, $this->conn_id);
@@ -136,7 +136,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Version number query string
 	 *
@@ -156,13 +156,13 @@
 	 * @access	private called by the base class
 	 * @param	string	an SQL query
 	 * @return	resource
-	 */	
+	 */
 	function _execute($sql)
 	{
 		$sql = $this->_prep_query($sql);
 		return @mysql_query($sql, $this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -173,7 +173,7 @@
 	 * @access	private called by execute()
 	 * @param	string	an SQL query
 	 * @return	string
-	 */	
+	 */
 	function _prep_query($sql)
 	{
 		// "DELETE FROM TABLE" returns 0 affected rows This hack modifies
@@ -185,7 +185,7 @@
 				$sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql);
 			}
 		}
-		
+
 		return $sql;
 	}
 
@@ -195,15 +195,15 @@
 	 * Begin Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_begin($test_mode = FALSE)
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return TRUE;
 		}
-		
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 0)
 		{
@@ -214,7 +214,7 @@
 		// 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');
 		$this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK
 		return TRUE;
@@ -226,8 +226,8 @@
 	 * Commit Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_commit()
 	{
 		if ( ! $this->trans_enabled)
@@ -252,8 +252,8 @@
 	 * Rollback Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_rollback()
 	{
 		if ( ! $this->trans_enabled)
@@ -271,7 +271,7 @@
 		$this->simple_query('SET AUTOCOMMIT=1');
 		return TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -282,17 +282,17 @@
 	 * @param	bool	whether or not the string will be used in a LIKE condition
 	 * @return	string
 	 */
-	function escape_str($str, $like = FALSE)	
-	{	
+	function escape_str($str, $like = FALSE)
+	{
 		if (is_array($str))
 		{
 			foreach($str as $key => $val)
-	   		{
+			{
 				$str[$key] = $this->escape_str($val, $like);
-	   		}
-   		
-	   		return $str;
-	   	}
+			}
+
+			return $str;
+		}
 
 		if (function_exists('mysql_real_escape_string') AND is_resource($this->conn_id))
 		{
@@ -306,16 +306,16 @@
 		{
 			$str = addslashes($str);
 		}
-		
+
 		// escape LIKE condition wildcards
 		if ($like === TRUE)
 		{
 			$str = str_replace(array('%', '_'), array('\\%', '\\_'), $str);
 		}
-		
+
 		return $str;
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -328,7 +328,7 @@
 	{
 		return @mysql_affected_rows($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -360,7 +360,7 @@
 		{
 			return 0;
 		}
-	
+
 		$query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE));
 
 		if ($query->num_rows() == 0)
@@ -385,7 +385,7 @@
 	 */
 	function _list_tables($prefix_limit = FALSE)
 	{
-		$sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char;	
+		$sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char;
 
 		if ($prefix_limit !== FALSE AND $this->dbprefix != '')
 		{
@@ -394,7 +394,7 @@
 
 		return $sql;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -439,7 +439,7 @@
 	{
 		return mysql_error($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -475,26 +475,26 @@
 		{
 			if (strpos($item, '.'.$id) !== FALSE)
 			{
-				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);  
-				
+				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
 				// remove duplicates if the user already included the escape
 				return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
-			}		
+			}
 		}
-		
+
 		if (strpos($item, '.') !== FALSE)
 		{
-			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;			
+			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
 		}
 		else
 		{
 			$str = $this->_escape_char.$item.$this->_escape_char;
 		}
-	
+
 		// remove duplicates if the user already included the escape
 		return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
 	}
-			
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -513,12 +513,12 @@
 		{
 			$tables = array($tables);
 		}
-		
+
 		return '('.implode(', ', $tables).')';
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Insert statement
 	 *
@@ -531,13 +531,13 @@
 	 * @return	string
 	 */
 	function _insert($table, $keys, $values)
-	{	
+	{
 		return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
 	}
-	
+
 	// --------------------------------------------------------------------
 
-	
+
 	/**
 	 * Replace statement
 	 *
@@ -550,10 +550,10 @@
 	 * @return	string
 	 */
 	function _replace($table, $keys, $values)
-	{	
+	{
 		return "REPLACE INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -568,10 +568,10 @@
 	 * @return	string
 	 */
 	function _insert_batch($table, $keys, $values)
-	{	
+	{
 		return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 
@@ -594,17 +594,17 @@
 		{
 			$valstr[] = $key." = ".$val;
 		}
-		
+
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-		
+
 		$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-	
+
 		$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
 
 		$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
 
 		$sql .= $orderby.$limit;
-		
+
 		return $sql;
 	}
 
@@ -630,16 +630,16 @@
 		foreach($values as $key => $val)
 		{
 			$ids[] = $val[$index];
-			
+
 			foreach(array_keys($val) as $field)
-			{	
+			{
 				if ($field != $index)
 				{
 					$final[$field][] =  'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field];
 				}
 			}
 		}
-		
+
 		$sql = "UPDATE ".$table." SET ";
 		$cases = '';
 
@@ -650,14 +650,14 @@
 			{
 				$cases .= $row."\n";
 			}
-			
+
 			$cases .= 'ELSE '.$k.' END, ';
 		}
-		
+
 		$sql .= substr($cases, 0, -2);
-		
+
 		$sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')';
-		
+
 		return $sql;
 	}
 
@@ -674,12 +674,12 @@
 	 * @access	public
 	 * @param	string	the table name
 	 * @return	string
-	 */	
+	 */
 	function _truncate($table)
 	{
 		return "TRUNCATE ".$table;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -692,7 +692,7 @@
 	 * @param	array	the where clause
 	 * @param	string	the limit clause
 	 * @return	string
-	 */	
+	 */
 	function _delete($table, $where = array(), $like = array(), $limit = FALSE)
 	{
 		$conditions = '';
@@ -710,7 +710,7 @@
 		}
 
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-	
+
 		return "DELETE FROM ".$table.$conditions.$limit;
 	}
 
@@ -728,7 +728,7 @@
 	 * @return	string
 	 */
 	function _limit($sql, $limit, $offset)
-	{	
+	{
 		if ($offset == 0)
 		{
 			$offset = '';
@@ -737,7 +737,7 @@
 		{
 			$offset .= ", ";
 		}
-		
+
 		return $sql."LIMIT ".$offset.$limit;
 	}
 
@@ -754,7 +754,7 @@
 	{
 		@mysql_close($conn_id);
 	}
-	
+
 }
 
 
diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php
index ccacf99..973f32d 100644
--- a/system/database/drivers/mysql/mysql_forge.php
+++ b/system/database/drivers/mysql/mysql_forge.php
@@ -23,7 +23,7 @@
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_mysql_forge extends CI_DB_forge {
-	
+
 	/**
 	 * Create database
 	 *
@@ -76,52 +76,52 @@
 			else
 			{
 				$attributes = array_change_key_case($attributes, CASE_UPPER);
-				
+
 				$sql .= "\n\t".$this->db->_protect_identifiers($field);
 
 				if (array_key_exists('NAME', $attributes))
 				{
 					$sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' ';
 				}
-				
+
 				if (array_key_exists('TYPE', $attributes))
 				{
 					$sql .=  ' '.$attributes['TYPE'];
 				}
-	
+
 				if (array_key_exists('CONSTRAINT', $attributes))
 				{
 					$sql .= '('.$attributes['CONSTRAINT'].')';
 				}
-	
+
 				if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE)
 				{
 					$sql .= ' UNSIGNED';
 				}
-	
+
 				if (array_key_exists('DEFAULT', $attributes))
 				{
 					$sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\'';
 				}
-	
+
 				if (array_key_exists('NULL', $attributes))
 				{
 					$sql .= ($attributes['NULL'] === TRUE) ? ' NULL' : ' NOT NULL';
 				}
-	
+
 				if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE)
 				{
 					$sql .= ' AUTO_INCREMENT';
 				}
 			}
-			
+
 			// don't add a comma on the end of the last field
 			if (++$current_field_count < count($fields))
 			{
 				$sql .= ',';
 			}
 		}
-		
+
 		return $sql;
 	}
 
@@ -141,12 +141,12 @@
 	function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
 		$sql = 'CREATE TABLE ';
-		
+
 		if ($if_not_exists === TRUE)
 		{
 			$sql .= 'IF NOT EXISTS ';
 		}
-		
+
 		$sql .= $this->db->_escape_identifiers($table)." (";
 
 		$sql .= $this->_process_fields($fields);
@@ -165,14 +165,14 @@
 				if (is_array($key))
 				{
 					$key_name = $this->db->_protect_identifiers(implode('_', $key));
-					$key = $this->db->_protect_identifiers($key);	
+					$key = $this->db->_protect_identifiers($key);
 				}
 				else
 				{
 					$key_name = $this->db->_protect_identifiers($key);
 					$key = array($key_name);
 				}
-				
+
 				$sql .= ",\n\tKEY {$key_name} (" . implode(', ', $key) . ")";
 			}
 		}
@@ -226,7 +226,7 @@
 		{
 			$sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field);
 		}
-		
+
 		return $sql;
 	}
 
diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php
index acc5866..0140ec6 100644
--- a/system/database/drivers/mysql/mysql_result.php
+++ b/system/database/drivers/mysql/mysql_result.php
@@ -36,7 +36,7 @@
 	{
 		return @mysql_num_rows($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -49,7 +49,7 @@
 	{
 		return @mysql_num_fields($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -67,7 +67,7 @@
 		{
 			$field_names[] = $field->name;
 		}
-		
+
 		return $field_names;
 	}
 
@@ -85,27 +85,27 @@
 	{
 		$retval = array();
 		while ($field = mysql_fetch_field($this->result_id))
-		{	
+		{
 			$F				= new stdClass();
-			$F->name 		= $field->name;
-			$F->type 		= $field->type;
+			$F->name		= $field->name;
+			$F->type		= $field->type;
 			$F->default		= $field->def;
 			$F->max_length	= $field->max_length;
 			$F->primary_key = $field->primary_key;
-			
+
 			$retval[] = $F;
 		}
-		
+
 		return $retval;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
 	 * Free the result
 	 *
 	 * @return	null
-	 */		
+	 */
 	function free_result()
 	{
 		if (is_resource($this->result_id))
@@ -146,7 +146,7 @@
 	{
 		return mysql_fetch_assoc($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -161,7 +161,7 @@
 	{
 		return mysql_fetch_object($this->result_id);
 	}
-	
+
 }
 
 
diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php
index c4a970c..3b574c6 100644
--- a/system/database/drivers/mysql/mysql_utility.php
+++ b/system/database/drivers/mysql/mysql_utility.php
@@ -84,7 +84,7 @@
 
 		// Extract the prefs for simplicity
 		extract($params);
-	
+
 		// Build the output
 		$output = '';
 		foreach ((array)$tables as $table)
@@ -97,31 +97,31 @@
 
 			// 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 ($add_drop == TRUE)
- 			{
+			if ($add_drop == TRUE)
+			{
 				$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 inserts are not needed we're done...
 			if ($add_insert == FALSE)
 			{
@@ -130,16 +130,16 @@
 
 			// Grab all the data from the current table
 			$query = $this->db->query("SELECT * FROM $table");
-			
+
 			if ($query->num_rows() == 0)
 			{
 				continue;
 			}
-		
+
 			// Fetch the field names and determine if the field is an
 			// integer type.  We use this info to decide whether to
 			// surround the data with quotes or not
-			
+
 			$i = 0;
 			$field_str = '';
 			$is_int = array();
@@ -148,24 +148,24 @@
 				// Most versions of MySQL store timestamp as a string
 				$is_int[$i] = (in_array(
 										strtolower(mysql_field_type($query->result_id, $i)),
-										array('tinyint', 'smallint', 'mediumint', 'int', 'bigint'), //, 'timestamp'), 
+										array('tinyint', 'smallint', 'mediumint', 'int', 'bigint'), //, 'timestamp'),
 										TRUE)
 										) ? TRUE : FALSE;
-										
+
 				// Create a string of field names
 				$field_str .= '`'.$field->name.'`, ';
 				$i++;
 			}
-			
+
 			// Trim off the end comma
 			$field_str = preg_replace( "/, $/" , "" , $field_str);
-			
-			
+
+
 			// Build the insert string
 			foreach ($query->result_array() as $row)
 			{
 				$val_str = '';
-			
+
 				$i = 0;
 				foreach ($row as $v)
 				{
@@ -184,21 +184,21 @@
 						else
 						{
 							$val_str .= $v;
-						}					
-					}					
-					
+						}
+					}
+
 					// Append a comma
 					$val_str .= ', ';
 					$i++;
 				}
-				
+
 				// Remove the comma at the end of the string
 				$val_str = preg_replace( "/, $/" , "" , $val_str);
-								
+
 				// Build the INSERT string
 				$output .= 'INSERT INTO '.$table.' ('.$field_str.') VALUES ('.$val_str.');'.$newline;
 			}
-			
+
 			$output .= $newline.$newline;
 		}
 
diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php
index d0e2def..69e0928 100644
--- a/system/database/drivers/mysqli/mysqli_driver.php
+++ b/system/database/drivers/mysqli/mysqli_driver.php
@@ -31,7 +31,7 @@
 class CI_DB_mysqli_driver extends CI_DB {
 
 	var $dbdriver = 'mysqli';
-	
+
 	// The character used for escaping
 	var $_escape_char = '`';
 
@@ -51,7 +51,7 @@
 	 * Whether to use the MySQL "delete hack" which allows the number
 	 * of affected rows to be shown. Uses a preg_replace when enabled,
 	 * adding a bit more processing to all queries.
-	 */	
+	 */
 	var $delete_hack = TRUE;
 
 	// --------------------------------------------------------------------
@@ -61,12 +61,12 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_connect()
 	{
 		if ($this->port != '')
 		{
-			return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database, $this->port);			
+			return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database, $this->port);
 		}
 		else
 		{
@@ -82,12 +82,12 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_pconnect()
 	{
 		return $this->db_connect();
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -114,7 +114,7 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_select()
 	{
 		return @mysqli_select_db($this->conn_id, $this->database);
@@ -136,7 +136,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Version number query string
 	 *
@@ -156,14 +156,14 @@
 	 * @access	private called by the base class
 	 * @param	string	an SQL query
 	 * @return	resource
-	 */	
+	 */
 	function _execute($sql)
 	{
-		$sql = $this->_prep_query($sql);	
+		$sql = $this->_prep_query($sql);
 		$result = @mysqli_query($this->conn_id, $sql);
 		return $result;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -174,7 +174,7 @@
 	 * @access	private called by execute()
 	 * @param	string	an SQL query
 	 * @return	string
-	 */	
+	 */
 	function _prep_query($sql)
 	{
 		// "DELETE FROM TABLE" returns 0 affected rows This hack modifies
@@ -186,7 +186,7 @@
 				$sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql);
 			}
 		}
-		
+
 		return $sql;
 	}
 
@@ -196,15 +196,15 @@
 	 * Begin Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_begin($test_mode = FALSE)
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return TRUE;
 		}
-		
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 0)
 		{
@@ -227,8 +227,8 @@
 	 * Commit Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_commit()
 	{
 		if ( ! $this->trans_enabled)
@@ -253,8 +253,8 @@
 	 * Rollback Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_rollback()
 	{
 		if ( ! $this->trans_enabled)
@@ -283,17 +283,17 @@
 	 * @param	bool	whether or not the string will be used in a LIKE condition
 	 * @return	string
 	 */
-	function escape_str($str, $like = FALSE)	
+	function escape_str($str, $like = FALSE)
 	{
 		if (is_array($str))
 		{
 			foreach($str as $key => $val)
-	   		{
+			{
 				$str[$key] = $this->escape_str($val, $like);
-	   		}
-   		
-	   		return $str;
-	   	}
+			}
+
+			return $str;
+		}
 
 		if (function_exists('mysqli_real_escape_string') AND is_object($this->conn_id))
 		{
@@ -307,16 +307,16 @@
 		{
 			$str = addslashes($str);
 		}
-		
+
 		// escape LIKE condition wildcards
 		if ($like === TRUE)
 		{
 			$str = str_replace(array('%', '_'), array('\\%', '\\_'), $str);
 		}
-		
+
 		return $str;
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -329,7 +329,7 @@
 	{
 		return @mysqli_affected_rows($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -386,13 +386,13 @@
 	 */
 	function _list_tables($prefix_limit = FALSE)
 	{
-		$sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char;	
-		
+		$sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char;
+
 		if ($prefix_limit !== FALSE AND $this->dbprefix != '')
 		{
 			$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%'";
 		}
-		
+
 		return $sql;
 	}
 
@@ -440,7 +440,7 @@
 	{
 		return mysqli_error($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -471,31 +471,31 @@
 		{
 			return $item;
 		}
-		
+
 		foreach ($this->_reserved_identifiers as $id)
 		{
 			if (strpos($item, '.'.$id) !== FALSE)
 			{
-				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);  
-				
+				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
 				// remove duplicates if the user already included the escape
 				return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
-			}		
+			}
 		}
-		
+
 		if (strpos($item, '.') !== FALSE)
 		{
-			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;			
+			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
 		}
 		else
 		{
 			$str = $this->_escape_char.$item.$this->_escape_char;
 		}
-		
+
 		// remove duplicates if the user already included the escape
 		return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
 	}
-			
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -514,12 +514,12 @@
 		{
 			$tables = array($tables);
 		}
-		
+
 		return '('.implode(', ', $tables).')';
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Insert statement
 	 *
@@ -532,10 +532,10 @@
 	 * @return	string
 	 */
 	function _insert($table, $keys, $values)
-	{	
+	{
 		return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -557,21 +557,21 @@
 		{
 			$valstr[] = $key." = ".$val;
 		}
-		
+
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-		
+
 		$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-	
+
 		$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
-		
+
 		$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
-		
+
 		$sql .= $orderby.$limit;
-		
+
 		return $sql;
 	}
 
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -584,12 +584,12 @@
 	 * @access	public
 	 * @param	string	the table name
 	 * @return	string
-	 */	
+	 */
 	function _truncate($table)
 	{
 		return "TRUNCATE ".$table;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -602,7 +602,7 @@
 	 * @param	array	the where clause
 	 * @param	string	the limit clause
 	 * @return	string
-	 */	
+	 */
 	function _delete($table, $where = array(), $like = array(), $limit = FALSE)
 	{
 		$conditions = '';
@@ -620,7 +620,7 @@
 		}
 
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-	
+
 		return "DELETE FROM ".$table.$conditions.$limit;
 	}
 
@@ -638,14 +638,14 @@
 	 * @return	string
 	 */
 	function _limit($sql, $limit, $offset)
-	{	
+	{
 		$sql .= "LIMIT ".$limit;
-	
+
 		if ($offset > 0)
 		{
 			$sql .= " OFFSET ".$offset;
 		}
-		
+
 		return $sql;
 	}
 
diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php
index 262d491..85491a8 100644
--- a/system/database/drivers/mysqli/mysqli_forge.php
+++ b/system/database/drivers/mysqli/mysqli_forge.php
@@ -23,7 +23,7 @@
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_mysqli_forge extends CI_DB_forge {
-	
+
 	/**
 	 * Create database
 	 *
@@ -76,52 +76,52 @@
 			else
 			{
 				$attributes = array_change_key_case($attributes, CASE_UPPER);
-				
+
 				$sql .= "\n\t".$this->db->_protect_identifiers($field);
 
 				if (array_key_exists('NAME', $attributes))
 				{
 					$sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' ';
 				}
-				
+
 				if (array_key_exists('TYPE', $attributes))
 				{
 					$sql .=  ' '.$attributes['TYPE'];
 				}
-	
+
 				if (array_key_exists('CONSTRAINT', $attributes))
 				{
 					$sql .= '('.$attributes['CONSTRAINT'].')';
 				}
-	
+
 				if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE)
 				{
 					$sql .= ' UNSIGNED';
 				}
-	
+
 				if (array_key_exists('DEFAULT', $attributes))
 				{
 					$sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\'';
 				}
-	
+
 				if (array_key_exists('NULL', $attributes))
 				{
 					$sql .= ($attributes['NULL'] === TRUE) ? ' NULL' : ' NOT NULL';
 				}
-	
+
 				if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE)
 				{
 					$sql .= ' AUTO_INCREMENT';
 				}
 			}
-			
+
 			// don't add a comma on the end of the last field
 			if (++$current_field_count < count($fields))
 			{
 				$sql .= ',';
 			}
 		}
-		
+
 		return $sql;
 	}
 
@@ -141,12 +141,12 @@
 	function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
 		$sql = 'CREATE TABLE ';
-		
+
 		if ($if_not_exists === TRUE)
 		{
 			$sql .= 'IF NOT EXISTS ';
 		}
-		
+
 		$sql .= $this->db->_escape_identifiers($table)." (";
 
 		$sql .= $this->_process_fields($fields);
@@ -165,14 +165,14 @@
 				if (is_array($key))
 				{
 					$key_name = $this->db->_protect_identifiers(implode('_', $key));
-					$key = $this->db->_protect_identifiers($key);	
+					$key = $this->db->_protect_identifiers($key);
 				}
 				else
 				{
 					$key_name = $this->db->_protect_identifiers($key);
 					$key = array($key_name);
 				}
-				
+
 				$sql .= ",\n\tKEY {$key_name} (" . implode(', ', $key) . ")";
 			}
 		}
@@ -226,7 +226,7 @@
 		{
 			$sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field);
 		}
-		
+
 		return $sql;
 	}
 
diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php
index 81d22cc..dd58ed8 100644
--- a/system/database/drivers/mysqli/mysqli_result.php
+++ b/system/database/drivers/mysqli/mysqli_result.php
@@ -25,7 +25,7 @@
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_mysqli_result extends CI_DB_result {
-	
+
 	/**
 	 * Number of rows in the result set
 	 *
@@ -36,7 +36,7 @@
 	{
 		return @mysqli_num_rows($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -67,7 +67,7 @@
 		{
 			$field_names[] = $field->name;
 		}
-		
+
 		return $field_names;
 	}
 
@@ -85,17 +85,17 @@
 	{
 		$retval = array();
 		while ($field = mysqli_fetch_field($this->result_id))
-		{	
-			$F 				= new stdClass();
-			$F->name 		= $field->name;
-			$F->type 		= $field->type;
+		{
+			$F				= new stdClass();
+			$F->name		= $field->name;
+			$F->type		= $field->type;
 			$F->default		= $field->def;
 			$F->max_length	= $field->max_length;
 			$F->primary_key = ($field->flags & MYSQLI_PRI_KEY_FLAG) ? 1 : 0;
-			
+
 			$retval[] = $F;
 		}
-		
+
 		return $retval;
 	}
 
@@ -105,7 +105,7 @@
 	 * Free the result
 	 *
 	 * @return	null
-	 */		
+	 */
 	function free_result()
 	{
 		if (is_object($this->result_id))
@@ -146,7 +146,7 @@
 	{
 		return mysqli_fetch_assoc($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -161,7 +161,7 @@
 	{
 		return mysqli_fetch_object($this->result_id);
 	}
-	
+
 }
 
 
diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php
index 3ba14d2..e0dbca7 100644
--- a/system/database/drivers/mysqli/mysqli_utility.php
+++ b/system/database/drivers/mysqli/mysqli_utility.php
@@ -23,7 +23,7 @@
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_mysqli_utility extends CI_DB_utility {
-	
+
 	/**
 	 * List databases
 	 *
@@ -34,7 +34,7 @@
 	{
 		return "SHOW DATABASES";
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index 6f317d2..fb65ad8 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	  	ExpressionEngine Dev Team
+ * @package		CodeIgniter
+ * @author		ExpressionEngine Dev Team
  * @copyright   Copyright (c) 2008 - 2010, EllisLab, Inc.
- * @license	 	http://codeigniter.com/user_guide/license.html
+ * @license		http://codeigniter.com/user_guide/license.html
  * @link		http://codeigniter.com
- * @since	   	Version 1.0
+ * @since		Version 1.0
  * @filesource
  */
 
@@ -22,10 +22,10 @@
  * creates dynamically based on whether the active record
  * class is being used or not.
  *
- * @package	 	CodeIgniter
+ * @package		CodeIgniter
  * @subpackage  Drivers
  * @category	Database
- * @author	  	ExpressionEngine Dev Team
+ * @author		ExpressionEngine Dev Team
  * @link		http://codeigniter.com/user_guide/database/
  */
 
@@ -44,14 +44,14 @@
 class CI_DB_oci8_driver extends CI_DB {
 
 	var $dbdriver = 'oci8';
-	
+
 	// The character used for excaping
 	var $_escape_char = '"';
-	
+
 	// clause and character used for LIKE escape sequences
 	var $_like_escape_str = " escape '%s' ";
 	var $_like_escape_chr = '!';
-	
+
 	/**
 	 * The syntax to count rows is slightly different across different
 	 * database engines, so this string appears in each driver and is
@@ -141,7 +141,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Version number query string
 	 *
@@ -248,7 +248,7 @@
 			}
 			return FALSE;
 		}
-		
+
 		// build the query string
 		$sql = "begin $package.$procedure(";
 
@@ -256,20 +256,20 @@
 		foreach($params as $param)
 		{
 			$sql .= $param['name'] . ",";
-			
+
 			if (array_key_exists('type', $param) && ($param['type'] == OCI_B_CURSOR))
 			{
 				$have_cursor = TRUE;
 			}
 		}
 		$sql = trim($sql, ",") . "); end;";
-				
+
 		$this->stmt_id = FALSE;
 		$this->_set_stmt_id($sql);
 		$this->_bind_params($params);
 		$this->query($sql, FALSE, $have_cursor);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -284,10 +284,10 @@
 		{
 			return;
 		}
-		
+
 		foreach ($params as $param)
 		{
- 			foreach (array('name', 'value', 'type', 'length') as $val)
+			foreach (array('name', 'value', 'type', 'length') as $val)
 			{
 				if ( ! isset($param[$val]))
 				{
@@ -305,26 +305,26 @@
 	 * Begin Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_begin($test_mode = FALSE)
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return TRUE;
 		}
-		
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 0)
 		{
 			return TRUE;
 		}
-		
+
 		// 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.
 		$this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE;
-		
+
 		$this->_commit = OCI_DEFAULT;
 		return TRUE;
 	}
@@ -335,8 +335,8 @@
 	 * Commit Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_commit()
 	{
 		if ( ! $this->trans_enabled)
@@ -361,8 +361,8 @@
 	 * Rollback Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_rollback()
 	{
 		if ( ! $this->trans_enabled)
@@ -396,15 +396,15 @@
 		if (is_array($str))
 		{
 			foreach($str as $key => $val)
-	   		{
+			{
 				$str[$key] = $this->escape_str($val, $like);
-	   		}
-   		
-	   		return $str;
-	   	}
+			}
+
+			return $str;
+		}
 
 		$str = remove_invisible_characters($str);
-		
+
 		// escape LIKE condition wildcards
 		if ($like === TRUE)
 		{
@@ -412,7 +412,7 @@
 								array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr),
 								$str);
 		}
-		
+
 		return $str;
 	}
 
@@ -492,7 +492,7 @@
 		{
 			$sql .= " WHERE TABLE_NAME LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr);
 		}
-		
+
 		return $sql;
 	}
 
@@ -555,7 +555,7 @@
 		$error = ocierror($this->conn_id);
 		return $error['code'];
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -578,26 +578,26 @@
 		{
 			if (strpos($item, '.'.$id) !== FALSE)
 			{
-				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);  
-				
+				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
 				// remove duplicates if the user already included the escape
 				return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
-			}		
+			}
 		}
-	
+
 		if (strpos($item, '.') !== FALSE)
 		{
-			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;			
+			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
 		}
 		else
 		{
 			$str = $this->_escape_char.$item.$this->_escape_char;
 		}
-		
+
 		// remove duplicates if the user already included the escape
 		return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -616,12 +616,12 @@
 		{
 			$tables = array($tables);
 		}
-		
+
 		return implode(', ', $tables);
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Insert statement
 	 *
@@ -659,17 +659,17 @@
 		{
 			$valstr[] = $key." = ".$val;
 		}
-		
+
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-		
+
 		$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-	
+
 		$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
 
 		$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
 
 		$sql .= $orderby.$limit;
-		
+
 		return $sql;
 	}
 
@@ -685,12 +685,12 @@
 	 * @access	public
 	 * @param	string	the table name
 	 * @return	string
-	 */	
+	 */
 	function _truncate($table)
 	{
 		return "TRUNCATE TABLE ".$table;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -703,7 +703,7 @@
 	 * @param	array	the where clause
 	 * @param	string	the limit clause
 	 * @return	string
-	 */	
+	 */
 	function _delete($table, $where = array(), $like = array(), $limit = FALSE)
 	{
 		$conditions = '';
@@ -721,7 +721,7 @@
 		}
 
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-	
+
 		return "DELETE FROM ".$table.$conditions.$limit;
 	}
 
@@ -752,7 +752,7 @@
 		$this->limit_used = TRUE;
 
 		return $newsql;
-	}	
+	}
 
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php
index d77ed8d..1d369ae 100644
--- a/system/database/drivers/oci8/oci8_forge.php
+++ b/system/database/drivers/oci8/oci8_forge.php
@@ -66,12 +66,12 @@
 	function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
 		$sql = 'CREATE TABLE ';
-		
+
 		if ($if_not_exists === TRUE)
 		{
 			$sql .= 'IF NOT EXISTS ';
 		}
-		
+
 		$sql .= $this->db->_escape_identifiers($table)." (";
 		$current_field_count = 0;
 
@@ -87,41 +87,41 @@
 			else
 			{
 				$attributes = array_change_key_case($attributes, CASE_UPPER);
-				
+
 				$sql .= "\n\t".$this->db->_protect_identifiers($field);
-				
+
 				$sql .=  ' '.$attributes['TYPE'];
-	
+
 				if (array_key_exists('CONSTRAINT', $attributes))
 				{
 					$sql .= '('.$attributes['CONSTRAINT'].')';
 				}
-	
+
 				if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE)
 				{
 					$sql .= ' UNSIGNED';
 				}
-	
+
 				if (array_key_exists('DEFAULT', $attributes))
 				{
 					$sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\'';
 				}
-	
+
 				if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE)
 				{
 					$sql .= ' NULL';
 				}
 				else
 				{
-					$sql .= ' NOT NULL';			
+					$sql .= ' NOT NULL';
 				}
-	
+
 				if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE)
 				{
 					$sql .= ' AUTO_INCREMENT';
 				}
 			}
-			
+
 			// don't add a comma on the end of the last field
 			if (++$current_field_count < count($fields))
 			{
@@ -141,17 +141,17 @@
 			{
 				if (is_array($key))
 				{
-					$key = $this->db->_protect_identifiers($key);	
+					$key = $this->db->_protect_identifiers($key);
 				}
 				else
 				{
 					$key = array($this->db->_protect_identifiers($key));
 				}
-				
+
 				$sql .= ",\n\tUNIQUE COLUMNS (" . implode(', ', $key) . ")";
 			}
 		}
-		
+
 		$sql .= "\n)";
 
 		return $sql;
@@ -218,9 +218,9 @@
 		{
 			$sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field);
 		}
-		
+
 		return $sql;
-		
+
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php
index cab538e..647ec6e 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	 	ExpressionEngine Dev Team
+ * @package		CodeIgniter
+ * @author		ExpressionEngine Dev Team
  * @copyright   Copyright (c) 2008 - 2010, EllisLab, Inc.
- * @license	 	http://codeigniter.com/user_guide/license.html
+ * @license		http://codeigniter.com/user_guide/license.html
  * @link		http://codeigniter.com
- * @since	   	Version 1.0
+ * @since		Version 1.0
  * @filesource
  */
 
@@ -21,7 +21,7 @@
  * This class extends the parent result class: CI_DB_result
  *
  * @category	Database
- * @author	 	ExpressionEngine Dev Team
+ * @author		ExpressionEngine Dev Team
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_oci8_result extends CI_DB_result {
@@ -35,7 +35,7 @@
 	 *
 	 * Oracle doesn't have a graceful way to retun the number of rows
 	 * so we have to use what amounts to a hack.
-	 * 
+	 *
 	 *
 	 * @access  public
 	 * @return  integer
@@ -111,7 +111,7 @@
 		$fieldCount = $this->num_fields();
 		for ($c = 1; $c <= $fieldCount; $c++)
 		{
-			$F			  = new stdClass();
+			$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);
@@ -128,12 +128,12 @@
 	 * Free the result
 	 *
 	 * @return	null
-	 */		
+	 */
 	function free_result()
 	{
 		if (is_resource($this->result_id))
 		{
-			ocifreestatement($this->result_id);			
+			ocifreestatement($this->result_id);
 			$this->result_id = FALSE;
 		}
 	}
@@ -151,8 +151,8 @@
 	function _fetch_assoc(&$row)
 	{
 		$id = ($this->curs_id) ? $this->curs_id : $this->stmt_id;
-	
-		return ocifetchinto($id, $row, OCI_ASSOC + OCI_RETURN_NULLS);	
+
+		return ocifetchinto($id, $row, OCI_ASSOC + OCI_RETURN_NULLS);
 	}
 
 	// --------------------------------------------------------------------
@@ -166,17 +166,17 @@
 	 * @return  object
 	 */
 	function _fetch_object()
-	{	
+	{
 		$result = array();
 
 		// If PHP 5 is being used we can fetch an result object
 		if (function_exists('oci_fetch_object'))
 		{
 			$id = ($this->curs_id) ? $this->curs_id : $this->stmt_id;
-			
+
 			return @oci_fetch_object($id);
 		}
-		
+
 		// If PHP 4 is being used we have to build our own result
 		foreach ($this->result_array() as $key => $val)
 		{
@@ -192,7 +192,7 @@
 			{
 				$obj->$key = $val;
 			}
-			
+
 			$result[] = $obj;
 		}
 
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index 6e68231..0e2c7de 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -31,14 +31,14 @@
 class CI_DB_odbc_driver extends CI_DB {
 
 	var $dbdriver = 'odbc';
-	
+
 	// the character used to excape - not necessary for ODBC
 	var $_escape_char = '';
-	
+
 	// clause and character used for LIKE escape sequences
 	var $_like_escape_str = " {escape '%s'} ";
 	var $_like_escape_chr = '!';
-	
+
 	/**
 	 * The syntax to count rows is slightly different across different
 	 * database engines, so this string appears in each driver and is
@@ -51,7 +51,7 @@
 	function CI_DB_odbc_driver($params)
 	{
 		parent::CI_DB($params);
-		
+
 		$this->_random_keyword = ' RND('.time().')'; // database specific random keyword
 	}
 
@@ -60,12 +60,12 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_connect()
 	{
 		return @odbc_connect($this->hostname, $this->username, $this->password);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -73,12 +73,12 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_pconnect()
 	{
 		return @odbc_pconnect($this->hostname, $this->username, $this->password);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -102,7 +102,7 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_select()
 	{
 		// Not needed for ODBC
@@ -126,7 +126,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Version number query string
 	 *
@@ -146,13 +146,13 @@
 	 * @access	private called by the base class
 	 * @param	string	an SQL query
 	 * @return	resource
-	 */	
+	 */
 	function _execute($sql)
 	{
 		$sql = $this->_prep_query($sql);
 		return @odbc_exec($this->conn_id, $sql);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -163,7 +163,7 @@
 	 * @access	private called by execute()
 	 * @param	string	an SQL query
 	 * @return	string
-	 */	
+	 */
 	function _prep_query($sql)
 	{
 		return $sql;
@@ -175,15 +175,15 @@
 	 * Begin Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_begin($test_mode = FALSE)
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return TRUE;
 		}
-		
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 0)
 		{
@@ -204,8 +204,8 @@
 	 * Commit Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_commit()
 	{
 		if ( ! $this->trans_enabled)
@@ -230,8 +230,8 @@
 	 * Rollback Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_rollback()
 	{
 		if ( ! $this->trans_enabled)
@@ -265,16 +265,16 @@
 		if (is_array($str))
 		{
 			foreach($str as $key => $val)
-	   		{
+			{
 				$str[$key] = $this->escape_str($val, $like);
-	   		}
-   		
-	   		return $str;
-	   	}
-		
+			}
+
+			return $str;
+		}
+
 		// ODBC doesn't require escaping
 		$str = remove_invisible_characters($str);
-		
+
 		// escape LIKE condition wildcards
 		if ($like === TRUE)
 		{
@@ -282,10 +282,10 @@
 								array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr),
 								$str);
 		}
-		
+
 		return $str;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -298,7 +298,7 @@
 	{
 		return @odbc_num_rows($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -362,10 +362,10 @@
 			//$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr);
 			return FALSE; // not currently supported
 		}
-		
+
 		return $sql;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -410,7 +410,7 @@
 	{
 		return odbc_errormsg($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -446,26 +446,26 @@
 		{
 			if (strpos($item, '.'.$id) !== FALSE)
 			{
-				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);  
-				
+				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
 				// remove duplicates if the user already included the escape
 				return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
-			}		
+			}
 		}
-	
+
 		if (strpos($item, '.') !== FALSE)
 		{
-			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;			
+			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
 		}
 		else
 		{
 			$str = $this->_escape_char.$item.$this->_escape_char;
 		}
-		
+
 		// remove duplicates if the user already included the escape
 		return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
 	}
-			
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -484,12 +484,12 @@
 		{
 			$tables = array($tables);
 		}
-		
+
 		return '('.implode(', ', $tables).')';
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Insert statement
 	 *
@@ -502,10 +502,10 @@
 	 * @return	string
 	 */
 	function _insert($table, $keys, $values)
-	{	
+	{
 		return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -527,21 +527,21 @@
 		{
 			$valstr[] = $key." = ".$val;
 		}
-		
+
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-		
+
 		$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-	
+
 		$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
 
 		$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
 
 		$sql .= $orderby.$limit;
-		
+
 		return $sql;
 	}
 
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -554,12 +554,12 @@
 	 * @access	public
 	 * @param	string	the table name
 	 * @return	string
-	 */	
+	 */
 	function _truncate($table)
 	{
 		return $this->_delete($table);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -572,7 +572,7 @@
 	 * @param	array	the where clause
 	 * @param	string	the limit clause
 	 * @return	string
-	 */	
+	 */
 	function _delete($table, $where = array(), $like = array(), $limit = FALSE)
 	{
 		$conditions = '';
@@ -590,7 +590,7 @@
 		}
 
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-	
+
 		return "DELETE FROM ".$table.$conditions.$limit;
 	}
 
@@ -627,7 +627,7 @@
 		@odbc_close($conn_id);
 	}
 
-	
+
 }
 
 
diff --git a/system/database/drivers/odbc/odbc_forge.php b/system/database/drivers/odbc/odbc_forge.php
index 1ae559b..49a2401 100644
--- a/system/database/drivers/odbc/odbc_forge.php
+++ b/system/database/drivers/odbc/odbc_forge.php
@@ -54,7 +54,7 @@
 	function _drop_database($name)
 	{
 		// ODBC has no "drop database" command since it's
-		// designed to connect to an existing database		
+		// designed to connect to an existing database
 		if ($this->db->db_debug)
 		{
 			return $this->db->display_error('db_unsuported_feature');
@@ -78,12 +78,12 @@
 	function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
 		$sql = 'CREATE TABLE ';
-		
+
 		if ($if_not_exists === TRUE)
 		{
 			$sql .= 'IF NOT EXISTS ';
 		}
-		
+
 		$sql .= $this->db->_escape_identifiers($table)." (";
 		$current_field_count = 0;
 
@@ -99,41 +99,41 @@
 			else
 			{
 				$attributes = array_change_key_case($attributes, CASE_UPPER);
-				
+
 				$sql .= "\n\t".$this->db->_protect_identifiers($field);
-				
+
 				$sql .=  ' '.$attributes['TYPE'];
-	
+
 				if (array_key_exists('CONSTRAINT', $attributes))
 				{
 					$sql .= '('.$attributes['CONSTRAINT'].')';
 				}
-	
+
 				if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE)
 				{
 					$sql .= ' UNSIGNED';
 				}
-	
+
 				if (array_key_exists('DEFAULT', $attributes))
 				{
 					$sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\'';
 				}
-	
+
 				if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE)
 				{
 					$sql .= ' NULL';
 				}
 				else
 				{
-					$sql .= ' NOT NULL';			
+					$sql .= ' NOT NULL';
 				}
-	
+
 				if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE)
 				{
 					$sql .= ' AUTO_INCREMENT';
 				}
 			}
-			
+
 			// don't add a comma on the end of the last field
 			if (++$current_field_count < count($fields))
 			{
@@ -146,24 +146,24 @@
 			$primary_keys = $this->db->_protect_identifiers($primary_keys);
 			$sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")";
 		}
-		
+
 		if (is_array($keys) && count($keys) > 0)
 		{
 			foreach ($keys as $key)
 			{
 				if (is_array($key))
 				{
-					$key = $this->db->_protect_identifiers($key);	
+					$key = $this->db->_protect_identifiers($key);
 				}
 				else
 				{
 					$key = array($this->db->_protect_identifiers($key));
 				}
-				
+
 				$sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")";
 			}
 		}
-		
+
 		$sql .= "\n)";
 
 		return $sql;
@@ -179,7 +179,7 @@
 	 */
 	function _drop_table($table)
 	{
-		// Not a supported ODBC feature	
+		// Not a supported ODBC feature
 		if ($this->db->db_debug)
 		{
 			return $this->db->display_error('db_unsuported_feature');
@@ -235,9 +235,9 @@
 		{
 			$sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field);
 		}
-		
+
 		return $sql;
-		
+
 	}
 
 
diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php
index 5ae46df..e2dc841 100644
--- a/system/database/drivers/odbc/odbc_result.php
+++ b/system/database/drivers/odbc/odbc_result.php
@@ -25,7 +25,7 @@
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_odbc_result extends CI_DB_result {
-	
+
 	/**
 	 * Number of rows in the result set
 	 *
@@ -36,7 +36,7 @@
 	{
 		return @odbc_num_rows($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -65,9 +65,9 @@
 		$field_names = array();
 		for ($i = 0; $i < $this->num_fields(); $i++)
 		{
-			$field_names[] 	= odbc_field_name($this->result_id, $i);
+			$field_names[]	= odbc_field_name($this->result_id, $i);
 		}
-		
+
 		return $field_names;
 	}
 
@@ -86,16 +86,16 @@
 		$retval = array();
 		for ($i = 0; $i < $this->num_fields(); $i++)
 		{
-			$F 				= new stdClass();
-			$F->name 		= odbc_field_name($this->result_id, $i);
-			$F->type 		= odbc_field_type($this->result_id, $i);
+			$F				= new stdClass();
+			$F->name		= odbc_field_name($this->result_id, $i);
+			$F->type		= odbc_field_type($this->result_id, $i);
 			$F->max_length	= odbc_field_len($this->result_id, $i);
 			$F->primary_key = 0;
 			$F->default		= '';
 
 			$retval[] = $F;
 		}
-		
+
 		return $retval;
 	}
 
@@ -105,7 +105,7 @@
 	 * Free the result
 	 *
 	 * @return	null
-	 */		
+	 */
 	function free_result()
 	{
 		if (is_resource($this->result_id))
diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php
index 5b874d8..deeb032 100644
--- a/system/database/drivers/odbc/odbc_utility.php
+++ b/system/database/drivers/odbc/odbc_utility.php
@@ -32,7 +32,7 @@
 	 */
 	function _list_databases()
 	{
-		// Not sure if ODBC lets you list all databases...	
+		// Not sure if ODBC lets you list all databases...
 		if ($this->db->db_debug)
 		{
 			return $this->db->display_error('db_unsuported_feature');
@@ -53,7 +53,7 @@
 	 */
 	function _optimize_table($table)
 	{
-		// Not a supported ODBC feature	
+		// Not a supported ODBC feature
 		if ($this->db->db_debug)
 		{
 			return $this->db->display_error('db_unsuported_feature');
@@ -74,7 +74,7 @@
 	 */
 	function _repair_table($table)
 	{
-		// Not a supported ODBC feature	
+		// Not a supported ODBC feature
 		if ($this->db->db_debug)
 		{
 			return $this->db->display_error('db_unsuported_feature');
diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php
index 9f991e4..cf86543 100644
--- a/system/database/drivers/postgre/postgre_driver.php
+++ b/system/database/drivers/postgre/postgre_driver.php
@@ -31,7 +31,7 @@
 class CI_DB_postgre_driver extends CI_DB {
 
 	var $dbdriver = 'postgre';
-	
+
 	var $_escape_char = '"';
 
 	// clause and character used for LIKE escape sequences
@@ -51,7 +51,7 @@
 	 *
 	 * @access	private
 	 * @return	string
-	 */	
+	 */
 	function _connect_string()
 	{
 		$components = array(
@@ -61,7 +61,7 @@
 								'username'	=> 'user',
 								'password'	=> 'password'
 							);
-		
+
 		$connect_string = "";
 		foreach ($components as $key => $val)
 		{
@@ -80,9 +80,9 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_connect()
-	{		
+	{
 		return @pg_connect($this->_connect_string());
 	}
 
@@ -93,12 +93,12 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_pconnect()
 	{
 		return @pg_pconnect($this->_connect_string());
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -125,7 +125,7 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_select()
 	{
 		// Not needed for Postgre so we'll return TRUE
@@ -149,7 +149,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Version number query string
 	 *
@@ -169,13 +169,13 @@
 	 * @access	private called by the base class
 	 * @param	string	an SQL query
 	 * @return	resource
-	 */	
+	 */
 	function _execute($sql)
 	{
 		$sql = $this->_prep_query($sql);
 		return @pg_query($this->conn_id, $sql);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -186,7 +186,7 @@
 	 * @access	private called by execute()
 	 * @param	string	an SQL query
 	 * @return	string
-	 */	
+	 */
 	function _prep_query($sql)
 	{
 		return $sql;
@@ -198,15 +198,15 @@
 	 * Begin Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_begin($test_mode = FALSE)
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return TRUE;
 		}
-		
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 0)
 		{
@@ -227,8 +227,8 @@
 	 * Commit Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_commit()
 	{
 		if ( ! $this->trans_enabled)
@@ -251,8 +251,8 @@
 	 * Rollback Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_rollback()
 	{
 		if ( ! $this->trans_enabled)
@@ -284,15 +284,15 @@
 		if (is_array($str))
 		{
 			foreach($str as $key => $val)
-	   		{
+			{
 				$str[$key] = $this->escape_str($val, $like);
-	   		}
-   		
-	   		return $str;
-	   	}
+			}
+
+			return $str;
+		}
 
 		$str = pg_escape_string($str);
-		
+
 		// escape LIKE condition wildcards
 		if ($like === TRUE)
 		{
@@ -300,10 +300,10 @@
 								array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr),
 								$str);
 		}
-		
+
 		return $str;
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -316,7 +316,7 @@
 	{
 		return @pg_affected_rows($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -329,10 +329,10 @@
 	{
 		$v = $this->_version();
 		$v = $v['server'];
-		
+
 		$table	= func_num_args() > 0 ? func_get_arg(0) : null;
 		$column	= func_num_args() > 1 ? func_get_arg(1) : null;
-		
+
 		if ($table == null && $v >= '8.1')
 		{
 			$sql='SELECT LASTVAL() as ins_id';
@@ -400,17 +400,17 @@
 	 * @return	string
 	 */
 	function _list_tables($prefix_limit = FALSE)
-	{	
-		$sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'";	
-		
+	{
+		$sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'";
+
 		if ($prefix_limit !== FALSE AND $this->dbprefix != '')
 		{
 			$sql .= " AND table_name LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr);
 		}
-		
+
 		return $sql;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -455,7 +455,7 @@
 	{
 		return pg_last_error($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -491,26 +491,26 @@
 		{
 			if (strpos($item, '.'.$id) !== FALSE)
 			{
-				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);  
-				
+				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
 				// remove duplicates if the user already included the escape
 				return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
-			}		
+			}
 		}
-	
+
 		if (strpos($item, '.') !== FALSE)
 		{
-			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;			
+			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
 		}
 		else
 		{
 			$str = $this->_escape_char.$item.$this->_escape_char;
 		}
-		
+
 		// remove duplicates if the user already included the escape
 		return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
 	}
-			
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -529,12 +529,12 @@
 		{
 			$tables = array($tables);
 		}
-		
+
 		return implode(', ', $tables);
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Insert statement
 	 *
@@ -547,10 +547,10 @@
 	 * @return	string
 	 */
 	function _insert($table, $keys, $values)
-	{	
+	{
 		return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -572,17 +572,17 @@
 		{
 			$valstr[] = $key." = ".$val;
 		}
-		
+
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-		
+
 		$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-	
+
 		$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
 
 		$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
 
 		$sql .= $orderby.$limit;
-		
+
 		return $sql;
 	}
 
@@ -598,12 +598,12 @@
 	 * @access	public
 	 * @param	string	the table name
 	 * @return	string
-	 */	
+	 */
 	function _truncate($table)
 	{
 		return "TRUNCATE ".$table;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -616,7 +616,7 @@
 	 * @param	array	the where clause
 	 * @param	string	the limit clause
 	 * @return	string
-	 */	
+	 */
 	function _delete($table, $where = array(), $like = array(), $limit = FALSE)
 	{
 		$conditions = '';
@@ -634,7 +634,7 @@
 		}
 
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-	
+
 		return "DELETE FROM ".$table.$conditions.$limit;
 	}
 
@@ -651,14 +651,14 @@
 	 * @return	string
 	 */
 	function _limit($sql, $limit, $offset)
-	{	
+	{
 		$sql .= "LIMIT ".$limit;
-	
+
 		if ($offset > 0)
 		{
 			$sql .= " OFFSET ".$offset;
 		}
-		
+
 		return $sql;
 	}
 
diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php
index c98ef42..12eef29 100644
--- a/system/database/drivers/postgre/postgre_forge.php
+++ b/system/database/drivers/postgre/postgre_forge.php
@@ -66,12 +66,12 @@
 	function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
 		$sql = 'CREATE TABLE ';
-		
+
 		if ($if_not_exists === TRUE)
 		{
 			$sql .= 'IF NOT EXISTS ';
 		}
-		
+
 		$sql .= $this->db->_escape_identifiers($table)." (";
 		$current_field_count = 0;
 
@@ -87,41 +87,41 @@
 			else
 			{
 				$attributes = array_change_key_case($attributes, CASE_UPPER);
-				
+
 				$sql .= "\n\t".$this->db->_protect_identifiers($field);
-				
+
 				$sql .=  ' '.$attributes['TYPE'];
-	
+
 				if (array_key_exists('CONSTRAINT', $attributes))
 				{
 					$sql .= '('.$attributes['CONSTRAINT'].')';
 				}
-	
+
 				if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE)
 				{
 					$sql .= ' UNSIGNED';
 				}
-	
+
 				if (array_key_exists('DEFAULT', $attributes))
 				{
 					$sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\'';
 				}
-	
+
 				if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE)
 				{
 					$sql .= ' NULL';
 				}
 				else
 				{
-					$sql .= ' NOT NULL';			
+					$sql .= ' NOT NULL';
 				}
-	
+
 				if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE)
 				{
 					$sql .= ' AUTO_INCREMENT';
 				}
 			}
-			
+
 			// don't add a comma on the end of the last field
 			if (++$current_field_count < count($fields))
 			{
@@ -134,20 +134,20 @@
 			$primary_keys = $this->db->_protect_identifiers($primary_keys);
 			$sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")";
 		}
-		
+
 		if (is_array($keys) && count($keys) > 0)
 		{
 			foreach ($keys as $key)
 			{
 				if (is_array($key))
 				{
-					$key = $this->db->_protect_identifiers($key);	
+					$key = $this->db->_protect_identifiers($key);
 				}
 				else
 				{
 					$key = array($this->db->_protect_identifiers($key));
 				}
-				
+
 				$sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")";
 			}
 		}
@@ -218,9 +218,9 @@
 		{
 			$sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field);
 		}
-		
+
 		return $sql;
-		
+
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php
index 545f413..b60ad7d 100644
--- a/system/database/drivers/postgre/postgre_result.php
+++ b/system/database/drivers/postgre/postgre_result.php
@@ -36,7 +36,7 @@
 	{
 		return @pg_num_rows($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -67,7 +67,7 @@
 		{
 			$field_names[] = pg_field_name($this->result_id, $i);
 		}
-		
+
 		return $field_names;
 	}
 
@@ -86,16 +86,16 @@
 		$retval = array();
 		for ($i = 0; $i < $this->num_fields(); $i++)
 		{
-			$F 				= new stdClass();
-			$F->name 		= pg_field_name($this->result_id, $i);
-			$F->type 		= pg_field_type($this->result_id, $i);
+			$F				= new stdClass();
+			$F->name		= pg_field_name($this->result_id, $i);
+			$F->type		= pg_field_type($this->result_id, $i);
 			$F->max_length	= pg_field_size($this->result_id, $i);
 			$F->primary_key = 0;
 			$F->default		= '';
 
 			$retval[] = $F;
 		}
-		
+
 		return $retval;
 	}
 
@@ -105,7 +105,7 @@
 	 * Free the result
 	 *
 	 * @return	null
-	 */		
+	 */
 	function free_result()
 	{
 		if (is_resource($this->result_id))
@@ -146,7 +146,7 @@
 	{
 		return pg_fetch_assoc($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -161,7 +161,7 @@
 	{
 		return pg_fetch_object($this->result_id);
 	}
-	
+
 }
 
 
diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index c08ed2a..ea0583e 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -33,14 +33,14 @@
 class CI_DB_sqlite_driver extends CI_DB {
 
 	var $dbdriver = 'sqlite';
-	
+
 	// The character used to escape with - not needed for SQLite
 	var $_escape_char = '';
 
 	// clause and character used for LIKE escape sequences
- 	var $_like_escape_str = " ESCAPE '%s' ";
+	var $_like_escape_str = " ESCAPE '%s' ";
 	var $_like_escape_chr = '!';
-	
+
 	/**
 	 * The syntax to count rows is slightly different across different
 	 * database engines, so this string appears in each driver and is
@@ -54,24 +54,24 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_connect()
 	{
 		if ( ! $conn_id = @sqlite_open($this->database, FILE_WRITE_MODE, $error))
 		{
 			log_message('error', $error);
-			
+
 			if ($this->db_debug)
 			{
 				$this->display_error($error, '', TRUE);
 			}
-			
+
 			return FALSE;
 		}
-		
+
 		return $conn_id;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -79,24 +79,24 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_pconnect()
 	{
 		if ( ! $conn_id = @sqlite_popen($this->database, FILE_WRITE_MODE, $error))
 		{
 			log_message('error', $error);
-			
+
 			if ($this->db_debug)
 			{
 				$this->display_error($error, '', TRUE);
 			}
-			
+
 			return FALSE;
 		}
-		
+
 		return $conn_id;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -120,7 +120,7 @@
 	 *
 	 * @access	private called by the base class
 	 * @return	resource
-	 */	
+	 */
 	function db_select()
 	{
 		return TRUE;
@@ -143,7 +143,7 @@
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Version number query string
 	 *
@@ -154,7 +154,7 @@
 	{
 		return sqlite_libversion();
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -163,13 +163,13 @@
 	 * @access	private called by the base class
 	 * @param	string	an SQL query
 	 * @return	resource
-	 */	
+	 */
 	function _execute($sql)
 	{
 		$sql = $this->_prep_query($sql);
 		return @sqlite_query($this->conn_id, $sql);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -180,7 +180,7 @@
 	 * @access	private called by execute()
 	 * @param	string	an SQL query
 	 * @return	string
-	 */	
+	 */
 	function _prep_query($sql)
 	{
 		return $sql;
@@ -192,15 +192,15 @@
 	 * Begin Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_begin($test_mode = FALSE)
 	{
 		if ( ! $this->trans_enabled)
 		{
 			return TRUE;
 		}
-		
+
 		// When transactions are nested we only begin/commit/rollback the outermost ones
 		if ($this->_trans_depth > 0)
 		{
@@ -222,8 +222,8 @@
 	 * Commit Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_commit()
 	{
 		if ( ! $this->trans_enabled)
@@ -247,8 +247,8 @@
 	 * Rollback Transaction
 	 *
 	 * @access	public
-	 * @return	bool		
-	 */	
+	 * @return	bool
+	 */
 	function trans_rollback()
 	{
 		if ( ! $this->trans_enabled)
@@ -265,7 +265,7 @@
 		$this->simple_query('ROLLBACK');
 		return TRUE;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -281,15 +281,15 @@
 		if (is_array($str))
 		{
 			foreach($str as $key => $val)
-	   		{
+			{
 				$str[$key] = $this->escape_str($val, $like);
-	   		}
-   		
-	   		return $str;
-	   	}
-	
+			}
+
+			return $str;
+		}
+
 		$str = sqlite_escape_string($str);
-		
+
 		// escape LIKE condition wildcards
 		if ($like === TRUE)
 		{
@@ -297,10 +297,10 @@
 								array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr),
 								$str);
 		}
-		
+
 		return $str;
 	}
-		
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -313,7 +313,7 @@
 	{
 		return sqlite_changes($this->conn_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -347,7 +347,7 @@
 		}
 
 		$query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE));
-		
+
 		if ($query->num_rows() == 0)
 		{
 			return 0;
@@ -424,7 +424,7 @@
 	{
 		return sqlite_error_string(sqlite_last_error($this->conn_id));
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -460,26 +460,26 @@
 		{
 			if (strpos($item, '.'.$id) !== FALSE)
 			{
-				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);  
-				
+				$str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item);
+
 				// remove duplicates if the user already included the escape
 				return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
-			}		
+			}
 		}
-	
+
 		if (strpos($item, '.') !== FALSE)
 		{
-			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;			
+			$str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char;
 		}
 		else
 		{
 			$str = $this->_escape_char.$item.$this->_escape_char;
 		}
-		
+
 		// remove duplicates if the user already included the escape
 		return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str);
 	}
-			
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -498,12 +498,12 @@
 		{
 			$tables = array($tables);
 		}
-		
+
 		return '('.implode(', ', $tables).')';
 	}
 
 	// --------------------------------------------------------------------
-	
+
 	/**
 	 * Insert statement
 	 *
@@ -516,10 +516,10 @@
 	 * @return	string
 	 */
 	function _insert($table, $keys, $values)
-	{	
+	{
 		return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")";
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -541,21 +541,21 @@
 		{
 			$valstr[] = $key." = ".$val;
 		}
-		
+
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-		
+
 		$orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):'';
-	
+
 		$sql = "UPDATE ".$table." SET ".implode(', ', $valstr);
 
 		$sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : '';
 
 		$sql .= $orderby.$limit;
-		
+
 		return $sql;
 	}
 
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -568,12 +568,12 @@
 	 * @access	public
 	 * @param	string	the table name
 	 * @return	string
-	 */	
+	 */
 	function _truncate($table)
 	{
 		return $this->_delete($table);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -586,7 +586,7 @@
 	 * @param	array	the where clause
 	 * @param	string	the limit clause
 	 * @return	string
-	 */	
+	 */
 	function _delete($table, $where = array(), $like = array(), $limit = FALSE)
 	{
 		$conditions = '';
@@ -604,10 +604,10 @@
 		}
 
 		$limit = ( ! $limit) ? '' : ' LIMIT '.$limit;
-	
+
 		return "DELETE FROM ".$table.$conditions.$limit;
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -622,7 +622,7 @@
 	 * @return	string
 	 */
 	function _limit($sql, $limit, $offset)
-	{	
+	{
 		if ($offset == 0)
 		{
 			$offset = '';
@@ -631,7 +631,7 @@
 		{
 			$offset .= ", ";
 		}
-		
+
 		return $sql."LIMIT ".$offset.$limit;
 	}
 
diff --git a/system/database/drivers/sqlite/sqlite_forge.php b/system/database/drivers/sqlite/sqlite_forge.php
index 53b20a3..7b5c894 100644
--- a/system/database/drivers/sqlite/sqlite_forge.php
+++ b/system/database/drivers/sqlite/sqlite_forge.php
@@ -75,13 +75,13 @@
 	function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists)
 	{
 		$sql = 'CREATE TABLE ';
-		
+
 		// IF NOT EXISTS added to SQLite in 3.3.0
 		if ($if_not_exists === TRUE && version_compare($this->db->_version(), '3.3.0', '>=') === TRUE)
 		{
 			$sql .= 'IF NOT EXISTS ';
 		}
-		
+
 		$sql .= $this->db->_escape_identifiers($table)."(";
 		$current_field_count = 0;
 
@@ -97,41 +97,41 @@
 			else
 			{
 				$attributes = array_change_key_case($attributes, CASE_UPPER);
-				
+
 				$sql .= "\n\t".$this->db->_protect_identifiers($field);
-				
+
 				$sql .=  ' '.$attributes['TYPE'];
-	
+
 				if (array_key_exists('CONSTRAINT', $attributes))
 				{
 					$sql .= '('.$attributes['CONSTRAINT'].')';
 				}
-	
+
 				if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE)
 				{
 					$sql .= ' UNSIGNED';
 				}
-	
+
 				if (array_key_exists('DEFAULT', $attributes))
 				{
 					$sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\'';
 				}
-	
+
 				if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE)
 				{
 					$sql .= ' NULL';
 				}
 				else
 				{
-					$sql .= ' NOT NULL';			
+					$sql .= ' NOT NULL';
 				}
-	
+
 				if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE)
 				{
 					$sql .= ' AUTO_INCREMENT';
 				}
 			}
-			
+
 			// don't add a comma on the end of the last field
 			if (++$current_field_count < count($fields))
 			{
@@ -151,13 +151,13 @@
 			{
 				if (is_array($key))
 				{
-					$key = $this->db->_protect_identifiers($key);	
+					$key = $this->db->_protect_identifiers($key);
 				}
 				else
 				{
 					$key = array($this->db->_protect_identifiers($key));
 				}
-				
+
 				$sql .= ",\n\tUNIQUE (" . implode(', ', $key) . ")";
 			}
 		}
@@ -237,9 +237,9 @@
 		{
 			$sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field);
 		}
-		
+
 		return $sql;
-		
+
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/sqlite/sqlite_result.php b/system/database/drivers/sqlite/sqlite_result.php
index 7b06312..fd6d83d 100644
--- a/system/database/drivers/sqlite/sqlite_result.php
+++ b/system/database/drivers/sqlite/sqlite_result.php
@@ -25,7 +25,7 @@
  * @link		http://codeigniter.com/user_guide/database/
  */
 class CI_DB_sqlite_result extends CI_DB_result {
-	
+
 	/**
 	 * Number of rows in the result set
 	 *
@@ -36,7 +36,7 @@
 	{
 		return @sqlite_num_rows($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -67,7 +67,7 @@
 		{
 			$field_names[] = sqlite_field_name($this->result_id, $i);
 		}
-		
+
 		return $field_names;
 	}
 
@@ -86,16 +86,16 @@
 		$retval = array();
 		for ($i = 0; $i < $this->num_fields(); $i++)
 		{
-			$F 				= new stdClass();
-			$F->name 		= sqlite_field_name($this->result_id, $i);
-			$F->type 		= 'varchar';
+			$F				= new stdClass();
+			$F->name		= sqlite_field_name($this->result_id, $i);
+			$F->type		= 'varchar';
 			$F->max_length	= 0;
 			$F->primary_key = 0;
 			$F->default		= '';
 
 			$retval[] = $F;
 		}
-		
+
 		return $retval;
 	}
 
@@ -105,7 +105,7 @@
 	 * Free the result
 	 *
 	 * @return	null
-	 */		
+	 */
 	function free_result()
 	{
 		// Not implemented in SQLite
@@ -142,7 +142,7 @@
 	{
 		return sqlite_fetch_array($this->result_id);
 	}
-	
+
 	// --------------------------------------------------------------------
 
 	/**
@@ -168,7 +168,7 @@
 				return $obj;
 			} else {
 				return NULL;
-			} 
+			}
 		}
 	}