Skip to content

Commit

Permalink
[TASK] Simple blocker:: come through typo3 extension:setup command
Browse files Browse the repository at this point in the history
First part of migrations to Doctrine v4

Fixes: #4038
  • Loading branch information
dkd-kaehm committed May 16, 2024
1 parent ffd489d commit af047de
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

use ApacheSolrForTypo3\Solr\System\Records\AbstractRepository;
use Doctrine\DBAL\Exception as DBALException;
use PDO;
use Doctrine\DBAL\ParameterType;

/**
* Class IndexQueueIndexingPropertyRepository
Expand All @@ -40,11 +40,11 @@ public function removeByRootPidAndIndexQueueUid(int $rootPid, int $indexQueueUid
->where(
$queryBuilder->expr()->eq(
'root',
$queryBuilder->createNamedParameter($rootPid, PDO::PARAM_INT)
$queryBuilder->createNamedParameter($rootPid, ParameterType::INTEGER)
),
$queryBuilder->expr()->eq(
'item_id',
$queryBuilder->createNamedParameter($indexQueueUid, PDO::PARAM_INT)
$queryBuilder->createNamedParameter($indexQueueUid, ParameterType::INTEGER)
)
)->executeStatement();
}
Expand All @@ -71,7 +71,7 @@ public function findAllByIndexQueueUid(int $indexQueueUid): array
->where(
$queryBuilder->expr()->eq(
'item_id',
$queryBuilder->createNamedParameter($indexQueueUid, PDO::PARAM_INT)
$queryBuilder->createNamedParameter($indexQueueUid, ParameterType::INTEGER)
)
)->executeQuery()
->fetchAllAssociative();
Expand Down
16 changes: 8 additions & 8 deletions Classes/Domain/Index/Queue/QueueItemRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ public function getPageItemChangedTimeByPageUid(int $pageUid): ?int
->getQueryBuilderForTable('tt_content');
$queryBuilder->getRestrictions()->removeAll();
$pageContentLastChangedTime = $queryBuilder
->add('select', $queryBuilder->expr()->max('tstamp', 'changed_time'))
->select($queryBuilder->expr()->max('tstamp', 'changed_time'))
->from('tt_content')
->where(
$queryBuilder->expr()->eq('pid', $pageUid)
Expand Down Expand Up @@ -270,7 +270,7 @@ public function getLocalizableItemChangedTime(string $itemType, int $itemUid): i
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($itemType);
$queryBuilder->getRestrictions()->removeAll();
$localizedChangedTime = $queryBuilder
->add('select', $queryBuilder->expr()->max($timeStampField, 'changed_time'))
->select($queryBuilder->expr()->max($timeStampField, 'changed_time'))
->from($itemType)
->orWhere(
$queryBuilder->expr()->eq('uid', $itemUid),
Expand Down Expand Up @@ -552,7 +552,7 @@ public function findItemsByItemTypeAndItemUid(string $itemType, int $itemUid): a
{
$queryBuilder = $this->getQueryBuilder();
$compositeExpression = $queryBuilder->expr()->and(
$queryBuilder->expr()->eq('item_type', $queryBuilder->getConnection()->quote($itemType, PDO::PARAM_STR)),
$queryBuilder->expr()->eq('item_type', $queryBuilder->getConnection()->quote($itemType)),
$queryBuilder->expr()->eq('item_uid', $itemUid)
);
return $this->getItemsByCompositeExpression($compositeExpression, $queryBuilder);
Expand Down Expand Up @@ -815,7 +815,7 @@ public function findPageIdsOfExistingMountPagesByMountIdentifier(string $mountPo
$queryBuilder = $this->getQueryBuilder();
$resultSet = $queryBuilder
->select('item_uid')
->add('select', $queryBuilder->expr()->count('*', 'queueItemCount'), true)
->select($queryBuilder->expr()->count('*', 'queueItemCount'), true)
->from($this->table)
->where(
$queryBuilder->expr()->eq('item_type', $queryBuilder->createNamedParameter('pages')),
Expand Down Expand Up @@ -849,10 +849,10 @@ public function findAllIndexQueueItemsByRootPidAndMountIdentifierAndMountedPids(
->select('*')
->from($this->table)
->where(
$queryBuilder->expr()->eq('root', $queryBuilder->createNamedParameter($rootPid, PDO::PARAM_INT)),
$queryBuilder->expr()->eq('root', $queryBuilder->createNamedParameter($rootPid, \Doctrine\DBAL\ParameterType::INTEGER)),
$queryBuilder->expr()->eq('item_type', $queryBuilder->createNamedParameter('pages')),
$queryBuilder->expr()->in('item_uid', $mountedPids),
$queryBuilder->expr()->eq('has_indexing_properties', $queryBuilder->createNamedParameter(1, PDO::PARAM_INT)),
$queryBuilder->expr()->eq('has_indexing_properties', $queryBuilder->createNamedParameter(1, \Doctrine\DBAL\ParameterType::INTEGER)),
$queryBuilder->expr()->eq('pages_mountidentifier', $queryBuilder->createNamedParameter($mountPointIdentifier))
)
->executeQuery()
Expand All @@ -868,11 +868,11 @@ public function updateHasIndexingPropertiesFlagByItemUid(int $itemUid, bool $has
return $queryBuilder
->update($this->table)
->where(
$queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($itemUid, PDO::PARAM_INT))
$queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($itemUid, \Doctrine\DBAL\ParameterType::INTEGER))
)
->set(
'has_indexing_properties',
$queryBuilder->createNamedParameter($hasIndexingPropertiesFlag, PDO::PARAM_INT),
$queryBuilder->createNamedParameter($hasIndexingPropertiesFlag, \Doctrine\DBAL\ParameterType::INTEGER),
false
)->executeStatement();
}
Expand Down
24 changes: 13 additions & 11 deletions Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,21 @@ public function findOneByRootPidAndOptionalIndexingConfigurationName(
): QueueStatistic {
$queryBuilder = $this->getQueryBuilder();
$queryBuilder
->add('select', vsprintf('(%s < %s) AS %s', [
$queryBuilder->quoteIdentifier($this->columnIndexed),
$queryBuilder->quoteIdentifier($this->columnChanged),
$queryBuilder->quoteIdentifier('pending'),
]), true)
->add('select', vsprintf('(%s) AS %s', [
$queryBuilder->expr()->notLike($this->columnErrors, $queryBuilder->createNamedParameter('')),
$queryBuilder->quoteIdentifier('failed'),
]), true)
->add('select', $queryBuilder->expr()->count('*', 'count'), true)
->select(
vsprintf('(%s < %s) AS %s', [
$queryBuilder->quoteIdentifier($this->columnIndexed),
$queryBuilder->quoteIdentifier($this->columnChanged),
$queryBuilder->quoteIdentifier('pending'),
]),
vsprintf('(%s) AS %s', [
$queryBuilder->expr()->notLike($this->columnErrors, $queryBuilder->createNamedParameter('')),
$queryBuilder->quoteIdentifier('failed'),
]),
$queryBuilder->expr()->count('*', 'count')
)
->from($this->table)
->where(
$queryBuilder->expr()->eq($this->columnRootpage, $queryBuilder->createNamedParameter($rootPid, PDO::PARAM_INT))
$queryBuilder->expr()->eq($this->columnRootpage, $queryBuilder->createNamedParameter($rootPid, \Doctrine\DBAL\ParameterType::INTEGER))
)->groupBy('pending', 'failed');

if (!empty($indexingConfigurationName)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ public function getRecordWithFieldRelevantForGarbageCollection(string $table, in
$row = $queryBuilder
->select(...GeneralUtility::trimExplode(',', $garbageCollectionRelevantFields, true))
->from($table)
->where($queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($uid, PDO::PARAM_INT)))
->where($queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter($uid, \Doctrine\DBAL\ParameterType::INTEGER)))
->executeQuery()
->fetchAssociative();
} catch (Throwable) {
Expand Down
15 changes: 8 additions & 7 deletions Classes/Domain/Search/Statistics/StatisticsRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,11 @@ protected function getPreparedQueryBuilderForSearchStatisticsAndTopKeywords(int
$queryBuilder = $this->getQueryBuilder();
return $queryBuilder
->select('keywords')
->add('select', $queryBuilder->expr()->count('keywords', 'count'), true)
->add('select', $queryBuilder->expr()->avg('num_found', 'hits'), true)
->add('select', '(' . $queryBuilder->expr()->count('keywords') . ' * 100 / ' . $countRows . ') AS percent', true)
->from($this->table)
->select(
$queryBuilder->expr()->count('keywords', 'count'),
$queryBuilder->expr()->avg('num_found', 'hits'),
'(' . $queryBuilder->expr()->count('keywords') . ' * 100 / ' . $countRows . ') AS percent'
)->from($this->table)
->andWhere(
$queryBuilder->expr()->gt('tstamp', $timeStart),
$queryBuilder->expr()->eq('root_pid', $rootPageId)
Expand Down Expand Up @@ -156,9 +157,9 @@ public function getFrequentSearchTermsFromStatisticsByFrequentSearchConfiguratio
$frequentSearchConfiguration['select.']['SELECT']
)
->from($frequentSearchConfiguration['select.']['FROM'])
->add('where', $frequentSearchConfiguration['select.']['ADD_WHERE'], true)
->add('groupBy', $frequentSearchConfiguration['select.']['GROUP_BY'], true)
->add('orderBy', $frequentSearchConfiguration['select.']['ORDER_BY'])
->where($frequentSearchConfiguration['select.']['ADD_WHERE'], true)
->groupBy($frequentSearchConfiguration['select.']['GROUP_BY'], true)
->orderBy($frequentSearchConfiguration['select.']['ORDER_BY'])
->setMaxResults((int)$frequentSearchConfiguration['limit'])
->executeQuery()
->fetchAllAssociative();
Expand Down
3 changes: 1 addition & 2 deletions Classes/IndexQueue/Initializer/Page.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
use ApacheSolrForTypo3\Solr\IndexQueue\Queue;
use Doctrine\DBAL\ConnectionException;
use Doctrine\DBAL\Exception as DBALException;
use PDO;
use Throwable;
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Database\Connection;
Expand Down Expand Up @@ -237,7 +236,7 @@ protected function addMountedPagesToIndexQueue(array $mountedPages, array $mount

$mountIdentifier = $this->getMountPointIdentifier($mountProperties);
$initializationQuery = 'INSERT INTO tx_solr_indexqueue_item (root, item_type, item_uid, indexing_configuration, indexing_priority, changed, has_indexing_properties, pages_mountidentifier, errors) '
. $this->buildSelectStatement() . ', 1, ' . $connection->quote($mountIdentifier, PDO::PARAM_STR) . ',""'
. $this->buildSelectStatement() . ', 1, ' . $connection->quote($mountIdentifier) . ',""'
. 'FROM pages '
. 'WHERE '
. 'uid IN(' . implode(',', $mountedPagesThatNeedToBeAdded) . ') '
Expand Down
15 changes: 7 additions & 8 deletions Classes/System/Records/Pages/PagesRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
use ApacheSolrForTypo3\Solr\System\Records\AbstractRepository;
use Doctrine\DBAL\ArrayParameterType;
use Doctrine\DBAL\Exception as DBALException;
use Doctrine\DBAL\ParameterType;
use PDO;
use Throwable;
use TYPO3\CMS\Backend\Utility\BackendUtility;
Expand Down Expand Up @@ -197,7 +198,7 @@ public function findAllPagesWithinNoSearchSubEntriesMarkedPages(): array
->select('uid')
->from($this->table)
->where(
$queryBuilder->expr()->eq('no_search_sub_entries', $queryBuilder->createNamedParameter(1, PDO::PARAM_INT))
$queryBuilder->expr()->eq('no_search_sub_entries', $queryBuilder->createNamedParameter(1, \Doctrine\DBAL\ParameterType::INTEGER))
)->executeQuery();
while (($pageRow = $noSearchSubEntriesEnabledPagesStatement->fetchAssociative()) !== false) {
$pageIds = array_merge($pageIds, $this->findAllSubPageIdsByRootPage((int)$pageRow['uid']));
Expand All @@ -222,9 +223,8 @@ public function findTranslationOverlaysByPageId(int $pageId): array
return $queryBuilder
->select('pid', 'l10n_parent', 'sys_language_uid')
->from('pages')
->add(
'where',
$queryBuilder->expr()->eq('l10n_parent', $queryBuilder->createNamedParameter($pageId, PDO::PARAM_INT))
->where(
$queryBuilder->expr()->eq('l10n_parent', $queryBuilder->createNamedParameter($pageId, ParameterType::INTEGER))
. BackendUtility::BEenableFields('pages')
)->executeQuery()
->fetchAllAssociative();
Expand All @@ -247,9 +247,8 @@ public function findPageUidsWithContentsFromPid(int $pageId): array
$queryBuilder
->select('uid')
->from($this->table)
->add(
'where',
$queryBuilder->expr()->eq('content_from_pid', $queryBuilder->createNamedParameter($pageId, PDO::PARAM_INT))
->where(
$queryBuilder->expr()->eq('content_from_pid', $queryBuilder->createNamedParameter($pageId, ParameterType::INTEGER))
);

$this->addDefaultLanguageUidConstraint($queryBuilder);
Expand Down Expand Up @@ -340,7 +339,7 @@ public function getTreeList(int $id, int $depth = 999, int $begin = 0, string $p
$queryBuilder->select('uid')
->from('pages')
->where(
$queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($id, PDO::PARAM_INT)),
$queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($id, ParameterType::INTEGER)),
$queryBuilder->expr()->eq('sys_language_uid', 0)
)
->orderBy('uid');
Expand Down

0 comments on commit af047de

Please sign in to comment.