Can not insert auto increment on oracle
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
18ba973c13
commit
d6b888461d
|
@ -411,7 +411,7 @@ class Manager implements ICommentsManager {
|
|||
*/
|
||||
public function getNumberOfUnreadCommentsForFolder($folderId, IUser $user) {
|
||||
$qb = $this->dbConn->getQueryBuilder();
|
||||
$query = $qb->select('fileid')
|
||||
$query = $qb->select('f.fileid')
|
||||
->selectAlias(
|
||||
$qb->createFunction('COUNT(' . $qb->getColumnName('c.id') . ')'),
|
||||
'num_ids'
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
namespace OC\Repair\NC12;
|
||||
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Migration\IOutput;
|
||||
|
@ -80,7 +81,7 @@ class UpdateLanguageCodes implements IRepairStep {
|
|||
->set('configvalue', $qb->createNamedParameter($newCode))
|
||||
->where($qb->expr()->eq('appid', $qb->createNamedParameter('core')))
|
||||
->andWhere($qb->expr()->eq('configkey', $qb->createNamedParameter('lang')))
|
||||
->andWhere($qb->expr()->eq('configvalue', $qb->createNamedParameter($oldCode)))
|
||||
->andWhere($qb->expr()->eq('configvalue', $qb->createNamedParameter($oldCode), IQueryBuilder::PARAM_STR))
|
||||
->execute();
|
||||
|
||||
$output->info('Changed ' . $affectedRows . ' setting(s) from "' . $oldCode . '" to "' . $newCode . '" in preferences table.');
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
namespace OC\User;
|
||||
|
||||
use OC\Hooks\PublicEmitter;
|
||||
use OCP\DB\QueryBuilder\IQueryBuilder;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserBackend;
|
||||
use OCP\IUserManager;
|
||||
|
@ -436,7 +437,7 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
->from('preferences')
|
||||
->where($queryBuilder->expr()->eq('appid', $queryBuilder->createNamedParameter('core')))
|
||||
->andWhere($queryBuilder->expr()->eq('configkey', $queryBuilder->createNamedParameter('enabled')))
|
||||
->andWhere($queryBuilder->expr()->eq('configvalue', $queryBuilder->createNamedParameter('false')));
|
||||
->andWhere($queryBuilder->expr()->eq('configvalue', $queryBuilder->createNamedParameter('false'), IQueryBuilder::PARAM_STR));
|
||||
|
||||
$query = $queryBuilder->execute();
|
||||
|
||||
|
|
|
@ -307,29 +307,9 @@ class ManagerTest extends TestCase {
|
|||
}
|
||||
|
||||
public function testGetNumberOfUnreadCommentsForFolder() {
|
||||
// 2 comment for 1111 with 1 before read marker
|
||||
// 2 comments for 1112 with no read marker
|
||||
// 1 comment for 1113 before read marker
|
||||
// 1 comment for 1114 with no read marker
|
||||
$this->addDatabaseEntry(0, 0, null, null, '1112');
|
||||
for ($i = 1; $i < 5; $i++) {
|
||||
$this->addDatabaseEntry(0, 0, null, null, '111' . $i);
|
||||
}
|
||||
$this->addDatabaseEntry(0, 0, (new \DateTime())->modify('-2 days'), null, '1111');
|
||||
$user = $this->createMock(IUser::class);
|
||||
$user->expects($this->any())
|
||||
->method('getUID')
|
||||
->will($this->returnValue('comment_test'));
|
||||
|
||||
$manager = $this->getManager();
|
||||
|
||||
$manager->setReadMark('files', '1111', (new \DateTime())->modify('-1 days'), $user);
|
||||
$manager->setReadMark('files', '1113', (new \DateTime()), $user);
|
||||
|
||||
$query = $this->connection->getQueryBuilder();
|
||||
$query->insert('filecache')
|
||||
->values([
|
||||
'fileid' => $query->createParameter('fileid'),
|
||||
'parent' => $query->createNamedParameter(1000),
|
||||
'size' => $query->createNamedParameter(10),
|
||||
'mtime' => $query->createNamedParameter(10),
|
||||
|
@ -338,17 +318,37 @@ class ManagerTest extends TestCase {
|
|||
'path_hash' => $query->createParameter('path'),
|
||||
]);
|
||||
|
||||
for ($i = 1111; $i < 1115; $i++) {
|
||||
$fileIds = [];
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
$query->setParameter('path', 'path_' . $i);
|
||||
$query->setParameter('fileid', $i);
|
||||
$query->execute();
|
||||
$fileIds[] = $query->getLastInsertId();
|
||||
}
|
||||
|
||||
// 2 comment for 1111 with 1 before read marker
|
||||
// 2 comments for 1112 with no read marker
|
||||
// 1 comment for 1113 before read marker
|
||||
// 1 comment for 1114 with no read marker
|
||||
$this->addDatabaseEntry(0, 0, null, null, $fileIds[1]);
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
$this->addDatabaseEntry(0, 0, null, null, $fileIds[$i]);
|
||||
}
|
||||
$this->addDatabaseEntry(0, 0, (new \DateTime())->modify('-2 days'), null, $fileIds[0]);
|
||||
$user = $this->createMock(IUser::class);
|
||||
$user->expects($this->any())
|
||||
->method('getUID')
|
||||
->will($this->returnValue('comment_test'));
|
||||
|
||||
$manager = $this->getManager();
|
||||
|
||||
$manager->setReadMark('files', (string) $fileIds[0], (new \DateTime())->modify('-1 days'), $user);
|
||||
$manager->setReadMark('files', (string) $fileIds[2], (new \DateTime()), $user);
|
||||
|
||||
$amount = $manager->getNumberOfUnreadCommentsForFolder(1000, $user);
|
||||
$this->assertEquals([
|
||||
'1111' => 1,
|
||||
'1112' => 2,
|
||||
'1114' => 1,
|
||||
$fileIds[0] => 1,
|
||||
$fileIds[1] => 2,
|
||||
$fileIds[3] => 1,
|
||||
], $amount);
|
||||
}
|
||||
|
||||
|
|
|
@ -129,6 +129,8 @@ class QuerySearchHelperTest extends TestCase {
|
|||
$builder->insert('filecache')
|
||||
->values($values)
|
||||
->execute();
|
||||
|
||||
return $builder->getLastInsertId();
|
||||
}
|
||||
|
||||
private function search(ISearchOperator $operator) {
|
||||
|
@ -139,34 +141,34 @@ class QuerySearchHelperTest extends TestCase {
|
|||
|
||||
public function comparisonProvider() {
|
||||
return [
|
||||
[new SearchComparison(ISearchComparison::COMPARE_GREATER_THAN, 'mtime', 125), [1002]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_LESS_THAN, 'mtime', 125), [1001]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_GREATER_THAN, 'mtime', 125), [1]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_LESS_THAN, 'mtime', 125), [0]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'size', 125), []],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'size', 50), [1001, 1002]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'name', 'foobar'), [1001]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_LIKE, 'name', 'foo%'), [1001, 1002]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mimetype', 'image/jpg'), [1001]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_LIKE, 'mimetype', 'image/%'), [1001, 1002]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'size', 50), [0, 1]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'name', 'foobar'), [0]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_LIKE, 'name', 'foo%'), [0, 1]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mimetype', 'image/jpg'), [0]],
|
||||
[new SearchComparison(ISearchComparison::COMPARE_LIKE, 'mimetype', 'image/%'), [0, 1]],
|
||||
[new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_AND, [
|
||||
new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'size', 50),
|
||||
new SearchComparison(ISearchComparison::COMPARE_LESS_THAN, 'mtime', 125), [1001]
|
||||
]), [1001]],
|
||||
new SearchComparison(ISearchComparison::COMPARE_LESS_THAN, 'mtime', 125), [0]
|
||||
]), [0]],
|
||||
[new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_OR, [
|
||||
new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mtime', 100),
|
||||
new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mtime', 150),
|
||||
]), [1001, 1002]],
|
||||
]), [0, 1]],
|
||||
[new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_NOT, [
|
||||
new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mtime', 150),
|
||||
]), [1001]],
|
||||
]), [0]],
|
||||
[new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_NOT, [
|
||||
new SearchComparison(ISearchComparison::COMPARE_GREATER_THAN, 'mtime', 125),
|
||||
]), [1001]],
|
||||
]), [0]],
|
||||
[new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_NOT, [
|
||||
new SearchComparison(ISearchComparison::COMPARE_LESS_THAN, 'mtime', 125),
|
||||
]), [1002]],
|
||||
]), [1]],
|
||||
[new SearchBinaryOperator(ISearchBinaryOperator::OPERATOR_NOT, [
|
||||
new SearchComparison(ISearchComparison::COMPARE_LIKE, 'name', '%bar'),
|
||||
]), [1002]],
|
||||
]), [1]],
|
||||
|
||||
];
|
||||
}
|
||||
|
@ -178,22 +180,25 @@ class QuerySearchHelperTest extends TestCase {
|
|||
* @param array $fileIds
|
||||
*/
|
||||
public function testComparison(ISearchOperator $operator, array $fileIds) {
|
||||
$this->addCacheEntry([
|
||||
$fileId = [];
|
||||
$fileId[] = $this->addCacheEntry([
|
||||
'path' => 'foobar',
|
||||
'fileid' => 1001,
|
||||
'mtime' => 100,
|
||||
'size' => 50,
|
||||
'mimetype' => 'image/jpg'
|
||||
]);
|
||||
|
||||
$this->addCacheEntry([
|
||||
$fileId[] = $this->addCacheEntry([
|
||||
'path' => 'fooasd',
|
||||
'fileid' => 1002,
|
||||
'mtime' => 150,
|
||||
'size' => 50,
|
||||
'mimetype' => 'image/png'
|
||||
]);
|
||||
|
||||
$fileIds = array_map(function($i) use ($fileId) {
|
||||
return $fileId[$i];
|
||||
}, $fileIds);
|
||||
|
||||
$results = $this->search($operator);
|
||||
|
||||
sort($fileIds);
|
||||
|
|
Loading…
Reference in New Issue