Improve DB version() implementation and add pg_version() support
diff --git a/system/database/drivers/interbase/interbase_driver.php b/system/database/drivers/interbase/interbase_driver.php
index 51e814e..f4bd9e2 100644
--- a/system/database/drivers/interbase/interbase_driver.php
+++ b/system/database/drivers/interbase/interbase_driver.php
@@ -115,19 +115,24 @@
 	// --------------------------------------------------------------------
 
 	/**
-	 * Version number query string
+	 * Database version number
 	 *
 	 * @return	string
 	 */
-	protected function _version()
+	public function version()
 	{
+		if (isset($this->data_cache['version']))
+		{
+			return $this->data_cache['version'];
+		}
+
 		if (($service = ibase_service_attach($this->hostname, $this->username, $this->password)))
 		{
-			$version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);
+			$this->data_cache['version'] = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);
 
 			// Don't keep the service open
 			ibase_service_detach($service);
-			return $version;
+			return $this->data_cache['version'];
 		}
 
 		return FALSE;
@@ -581,7 +586,7 @@
 		$orig_sql = $sql;
 
 		// Limit clause depends on if Interbase or Firebird
-		if (stripos($this->_version(), 'firebird') !== FALSE)
+		if (stripos($this->version(), 'firebird') !== FALSE)
 		{
 			$sql = 'FIRST '. (int) $limit;