Merge pull request #10745 from owncloud/fix-10708-doctrine

Use Doctrine Platform to generate SQL query for table truncation.
This commit is contained in:
Lukas Reschke 2014-09-16 23:56:20 +02:00
commit 45b17207cc
2 changed files with 35 additions and 9 deletions

View File

@ -159,14 +159,9 @@ class Helper {
return false; return false;
} }
$dbtype = \OCP\Config::getSystemValue('dbtype'); $connection = \OC_DB::getConnection();
if(strpos($dbtype, 'sqlite') !== false || $dbtype === 'oci') { $sql = $connection->getDatabasePlatform()->getTruncateTableSQL($table);
$query = \OCP\DB::prepare('DELETE FROM '.$table); $query = \OCP\DB::prepare($sql);
} else {
$query = \OCP\DB::prepare('TRUNCATE '.$table);
}
$res = $query->execute(); $res = $query->execute();
if(\OCP\DB::isError($res)) { if(\OCP\DB::isError($res)) {
@ -177,7 +172,7 @@ class Helper {
} }
/** /**
* extractsthe domain from a given URL * extracts the domain from a given URL
* @param string $url the URL * @param string $url the URL
* @return string|false domain as string on success, false otherwise * @return string|false domain as string on success, false otherwise
*/ */

View File

@ -0,0 +1,31 @@
<?php
/**
* ownCloud
*
* @author Thomas Müller
* @copyright 2014 Thomas Müller deepdiver@owncloud.com
*
*/
namespace OCA\user_ldap\tests;
use OCA\user_ldap\lib\Helper;
class Test_Helper extends \PHPUnit_Framework_TestCase {
public function testTableTruncate() {
$statement = \OCP\DB::prepare('INSERT INTO `*PREFIX*ldap_user_mapping` (`ldap_dn`, `owncloud_name`, `directory_uuid`) VALUES (?, ?, ?)');
$statement->execute(array('db01', 'oc1', '000-0000-0000'));
$statement->execute(array('db02', 'oc2', '000-0000-0001'));
$statement = \OCP\DB::prepare('SELECT count(*) FROM `*PREFIX*ldap_user_mapping`');
$result = $statement->execute();
$this->assertEquals(2, $result->fetchOne());
Helper::clearMapping('user');
$result = $statement->execute();
$this->assertEquals(0, $result->fetchOne());
}
}