[Pkg-owncloud-commits] [owncloud] 01/66: Concatenate string in SQL instead of PHP

David Prévot taffit at moszumanska.debian.org
Fri Apr 18 22:49:41 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v5.0.15
in repository owncloud.

commit f802fcfedc38f7f38a8b7404f7c492ded365319f
Author: Jörn Friedrich Dreyer <jfd at butonic.de>
Date:   Mon Sep 9 21:06:48 2013 +0200

    Concatenate string in SQL instead of PHP
---
 apps/files/appinfo/update.php | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/apps/files/appinfo/update.php b/apps/files/appinfo/update.php
index 3503678..574b9c7 100644
--- a/apps/files/appinfo/update.php
+++ b/apps/files/appinfo/update.php
@@ -3,17 +3,19 @@
 // fix webdav properties,add namespace in front of the property, update for OC4.5
 $installedVersion=OCP\Config::getAppValue('files', 'installed_version');
 if (version_compare($installedVersion, '1.1.6', '<')) {
-	$query = OC_DB::prepare( 'SELECT `propertyname`, `propertypath`, `userid` FROM `*PREFIX*properties`' );
-	$result = $query->execute();
-	$updateQuery = OC_DB::prepare('UPDATE `*PREFIX*properties`'
-								.' SET `propertyname` = ?'
-								.' WHERE `userid` = ?'
-								.' AND `propertypath` = ?');
-	while( $row = $result->fetchRow()) {
-		if ( $row['propertyname'][0] != '{' ) {
-			$updateQuery->execute(array('{DAV:}' + $row['propertyname'], $row['userid'], $row['propertypath']));
-		}
+	// SQL92 string concatenation is ||, some of the DBMS don't know that
+	if (OC_Config::getValue('dbtype') === 'mysql') {
+		$concat = 'concat(\'{DAV:}\', `propertyname`)';
+	} else if (OC_Config::getValue('dbtype') === 'mssql') {
+		$concat = '\'{DAV:}\' + `propertyname`';
+	} else {
+		$concat = '\'{DAV:}\' || `propertyname`';
 	}
+	$query = OC_DB::executeAudited('
+		UPDATE `*PREFIX*properties`
+		SET    `propertyname` = ' . $concat . '
+		WHERE  `propertyname` NOT LIKE \'{%\'
+	');
 }
 
 //update from OC 3

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list