From 3cd09f2b09e69821b8f938b2c54f9c12dbb303f0 Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Sat, 15 Mar 2014 13:28:20 +0100
Subject: Added PostgreSQL version warning on upgrade

---
 lib/private/util.php | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

(limited to 'lib')

diff --git a/lib/private/util.php b/lib/private/util.php
index fc78566e456..54e04ce4d7a 100755
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -485,12 +485,46 @@ class OC_Util {
 			);
 		}
 
+		$errors = array_merge($errors, self::checkDatabaseVersion());
+
 		// Cache the result of this function
 		\OC::$session->set('checkServer_suceeded', count($errors) == 0);
 
 		return $errors;
 	}
 
+	/**
+	 * Check the database version
+	 * @return array errors array
+	 */
+	public static function checkDatabaseVersion() {
+		$errors = array();
+		$dbType = \OC_Config::getValue('dbtype', 'sqlite');
+		if ($dbType === 'pgsql') {
+			// check PostgreSQL version
+			try {
+				$result = \OC_DB::executeAudited('SHOW SERVER_VERSION');
+				$data = $result->fetchRow();
+				if (isset($data['server_version'])) {
+					$version = $data['server_version'];
+					if (version_compare($version, '9.0.0', '<')) {
+						$errors[] = array(
+							'error' => 'PostgreSQL >= 9 required',
+							'hint' => 'Please upgrade your database version'
+						);
+					}
+				}
+			}
+			catch (\Doctrine\DBAL\DBALException $e){
+				$errors[] = array(
+					'error' => 'PostgreSQL >= 9 required'
+				);
+			}
+		}
+		return $errors;
+	}
+
+
 	/**
 	 * @brief check if there are still some encrypted files stored
 	 * @return boolean
-- 
cgit v1.2.3