diff --git a/application/Espo/Classes/AppParams/TemplateEntityTypeList.php b/application/Espo/Classes/AppParams/TemplateEntityTypeList.php index 4c1db61d9a..666466b8a6 100644 --- a/application/Espo/Classes/AppParams/TemplateEntityTypeList.php +++ b/application/Espo/Classes/AppParams/TemplateEntityTypeList.php @@ -65,7 +65,7 @@ class TemplateEntityTypeList ->withAccessControlFilter() ->buildQueryBuilder() ->select(['entityType']) - ->groupBy(['entityType']) + ->group(['entityType']) ->build(); $templateCollection = $this->entityManager diff --git a/application/Espo/Core/Formula/Functions/EntityGroup/SumRelatedType.php b/application/Espo/Core/Formula/Functions/EntityGroup/SumRelatedType.php index 6519f8a195..7a777bb5f6 100644 --- a/application/Espo/Core/Formula/Functions/EntityGroup/SumRelatedType.php +++ b/application/Espo/Core/Formula/Functions/EntityGroup/SumRelatedType.php @@ -136,7 +136,7 @@ class SumRelatedType extends \Espo\Core\Formula\Functions\Base implements ]); } - $queryBuilder->groupBy($foreignLinkAlias . '.id'); + $queryBuilder->group($foreignLinkAlias . '.id'); $sth = $entityManager->getQueryExecutor()->execute($queryBuilder->build()); diff --git a/application/Espo/Core/Job/AbstractGroupJob.php b/application/Espo/Core/Job/AbstractGroupJob.php index b42edb9122..d426ab49c0 100644 --- a/application/Espo/Core/Job/AbstractGroupJob.php +++ b/application/Espo/Core/Job/AbstractGroupJob.php @@ -81,7 +81,7 @@ abstract class AbstractGroupJob implements JobPreparable 'group!=' => null, 'executeTime<=' => $executeTime->format(DateTime::SYSTEM_DATE_TIME_FORMAT), ]) - ->groupBy('group') + ->group('group') ->build(); $sth = $this->entityManager->getQueryExecutor()->execute($query); diff --git a/application/Espo/Core/Job/QueueUtil.php b/application/Espo/Core/Job/QueueUtil.php index 1251a87a46..32b6efc375 100644 --- a/application/Espo/Core/Job/QueueUtil.php +++ b/application/Espo/Core/Job/QueueUtil.php @@ -390,7 +390,7 @@ class QueueUtil 'scheduledJob.job!=' => $this->metadataProvider->getPreparableJobNameList(), 'targetId' => null, ]) - ->groupBy(['scheduledJobId']) + ->group(['scheduledJobId']) ->having([ 'COUNT:id>' => 1, ]) diff --git a/application/Espo/Core/Webhook/Manager.php b/application/Espo/Core/Webhook/Manager.php index fe7a2da858..670df60e47 100644 --- a/application/Espo/Core/Webhook/Manager.php +++ b/application/Espo/Core/Webhook/Manager.php @@ -109,7 +109,7 @@ class Manager $list = $this->entityManager ->getRDBRepository(Webhook::ENTITY_TYPE) ->select(['event']) - ->groupBy(['event']) + ->group(['event']) ->where([ 'isActive' => true, 'event!=' => null, diff --git a/application/Espo/Core/Webhook/Queue.php b/application/Espo/Core/Webhook/Queue.php index 3179383900..fa62695a84 100644 --- a/application/Espo/Core/Webhook/Queue.php +++ b/application/Espo/Core/Webhook/Queue.php @@ -167,7 +167,7 @@ class Queue ['processAt<=' => DateTimeUtil::getSystemNowString()], ], ]) - ->groupBy('webhookId') + ->group('webhookId') ->build() ) ) diff --git a/application/Espo/Modules/Crm/Classes/FieldProcessing/Campaign/StatsLoader.php b/application/Espo/Modules/Crm/Classes/FieldProcessing/Campaign/StatsLoader.php index 8f17c563d1..9a42fc0142 100644 --- a/application/Espo/Modules/Crm/Classes/FieldProcessing/Campaign/StatsLoader.php +++ b/application/Espo/Modules/Crm/Classes/FieldProcessing/Campaign/StatsLoader.php @@ -220,7 +220,7 @@ class StatsLoader implements Loader 'stage' => 'Closed Won', 'campaignId' => $entity->getId(), ]) - ->groupBy('opportunity.campaignId') + ->group('opportunity.campaignId') ->build(); $sth = $this->entityManager->getQueryExecutor()->execute($query); diff --git a/application/Espo/Modules/Crm/Services/Opportunity.php b/application/Espo/Modules/Crm/Services/Opportunity.php index 3876e421c7..3024ef4a58 100644 --- a/application/Espo/Modules/Crm/Services/Opportunity.php +++ b/application/Espo/Modules/Crm/Services/Opportunity.php @@ -110,7 +110,7 @@ class Opportunity extends Record ['SUM:amountConverted', 'amount'], ]) ->order('LIST:'.$stageField.':' . implode(',', $options)) - ->groupBy($stageField) + ->group($stageField) ->where($whereClause); if ($teamId) { @@ -200,7 +200,7 @@ class Opportunity extends Record ['SUM:amountWeightedConverted', 'amount'], ]) ->order('LIST:leadSource:' . implode(',', $options)) - ->groupBy('leadSource') + ->group('leadSource') ->where($whereClause); $this->handleDistinctReportQueryBuilder($queryBuilder, $whereClause); @@ -260,7 +260,7 @@ class Opportunity extends Record ['SUM:amountConverted', 'amount'], ]) ->order('LIST:stage:' . implode(',', $options)) - ->groupBy('stage') + ->group('stage') ->where($whereClause); $stageIgnoreList = array_merge($this->getLostStageList(), $this->getWonStageList()); @@ -337,7 +337,7 @@ class Opportunity extends Record ['SUM:amountConverted', 'amount'], ]) ->order('MONTH:closeDate') - ->groupBy('MONTH:closeDate') + ->group('MONTH:closeDate') ->where($whereClause); $this->handleDistinctReportQueryBuilder($queryBuilder, $whereClause); diff --git a/application/Espo/Modules/Crm/Services/TargetList.php b/application/Espo/Modules/Crm/Services/TargetList.php index 8e6e909930..7519e52f39 100644 --- a/application/Espo/Modules/Crm/Services/TargetList.php +++ b/application/Espo/Modules/Crm/Services/TargetList.php @@ -126,7 +126,7 @@ class TargetList extends \Espo\Services\Record implements 'action=' => $includingActionList, ]); - $queryBuilder->groupBy([ + $queryBuilder->group([ 'parentId', 'parentType', 'id', diff --git a/application/Espo/ORM/Query/Select.php b/application/Espo/ORM/Query/Select.php index 120691fdc8..809cf0c216 100644 --- a/application/Espo/ORM/Query/Select.php +++ b/application/Espo/ORM/Query/Select.php @@ -153,7 +153,7 @@ class Select implements SelectingQuery * * @return Expression[] */ - public function getGroupBy(): array + public function getGroup(): array { return array_map( function (string $item) { diff --git a/application/Espo/ORM/Query/SelectBuilder.php b/application/Espo/ORM/Query/SelectBuilder.php index e43f19068f..54e70ffb8c 100644 --- a/application/Espo/ORM/Query/SelectBuilder.php +++ b/application/Espo/ORM/Query/SelectBuilder.php @@ -178,7 +178,7 @@ class SelectBuilder implements Builder * * @param Expression|Expression[]|string|string[] $groupBy */ - public function groupBy($groupBy): self + public function group($groupBy): self { if (is_array($groupBy)) { $this->params['groupBy'] = $this->normilizeExpressionItemArray($groupBy); @@ -201,6 +201,14 @@ class SelectBuilder implements Builder throw new InvalidArgumentException(); } + /** + * @deprecated Use `group` method. + */ + public function groupBy($groupBy): self + { + return $this->group($groupBy); + } + /** * Use index. */ diff --git a/application/Espo/ORM/Repository/RDBRelation.php b/application/Espo/ORM/Repository/RDBRelation.php index 1199fca569..6056384ea9 100644 --- a/application/Espo/ORM/Repository/RDBRelation.php +++ b/application/Espo/ORM/Repository/RDBRelation.php @@ -314,9 +314,17 @@ class RDBRelation * * @param Expression|Expression[]|string|string[] $groupBy */ + public function group($groupBy): Builder + { + return $this->createSelectBuilder()->group($groupBy); + } + + /** + * @deprecated Use `group` method. + */ public function groupBy($groupBy): Builder { - return $this->createSelectBuilder()->groupBy($groupBy); + return $this->group($groupBy); } /** diff --git a/application/Espo/ORM/Repository/RDBRelationSelectBuilder.php b/application/Espo/ORM/Repository/RDBRelationSelectBuilder.php index f546ebe19f..b336b22167 100644 --- a/application/Espo/ORM/Repository/RDBRelationSelectBuilder.php +++ b/application/Espo/ORM/Repository/RDBRelationSelectBuilder.php @@ -397,13 +397,21 @@ class RDBRelationSelectBuilder * * @param Expression|Expression[]|string|string[] $groupBy */ - public function groupBy($groupBy): self + public function group($groupBy): self { - $this->builder->groupBy($groupBy); + $this->builder->group($groupBy); return $this; } + /** + * @deprecated Use `group` method. + */ + public function groupBy($groupBy): self + { + return $this->group($groupBy); + } + protected function getMiddleTableAlias(): ?string { if (!$this->isManyMany()) { diff --git a/application/Espo/ORM/Repository/RDBRepository.php b/application/Espo/ORM/Repository/RDBRepository.php index 30c7d467bc..ae0514ab66 100644 --- a/application/Espo/ORM/Repository/RDBRepository.php +++ b/application/Espo/ORM/Repository/RDBRepository.php @@ -810,9 +810,17 @@ class RDBRepository extends Repository * * @param Expression|Expression[]|string|string[] $groupBy */ + public function group($groupBy): RDBSelectBuilder + { + return $this->createSelectBuilder()->group($groupBy); + } + + /** + * @deprecated Use `group` method. + */ public function groupBy($groupBy): RDBSelectBuilder { - return $this->createSelectBuilder()->groupBy($groupBy); + return $this->group($groupBy); } /** diff --git a/application/Espo/ORM/Repository/RDBSelectBuilder.php b/application/Espo/ORM/Repository/RDBSelectBuilder.php index 90c91205ef..6fbd2a795f 100644 --- a/application/Espo/ORM/Repository/RDBSelectBuilder.php +++ b/application/Espo/ORM/Repository/RDBSelectBuilder.php @@ -336,13 +336,21 @@ class RDBSelectBuilder * * @param Expression|Expression[]|string|string[] $groupBy */ - public function groupBy($groupBy): self + public function group($groupBy): self { - $this->builder->groupBy($groupBy); + $this->builder->group($groupBy); return $this; } + /** + * @deprecated Use `group` method. + */ + public function groupBy($groupBy): self + { + return $this->group($groupBy); + } + protected function handleReturnCollection(SthCollection $collection): Collection { if ($this->returnSthCollection) { diff --git a/application/Espo/Services/LastViewed.php b/application/Espo/Services/LastViewed.php index a5a9125d26..6f43e10d82 100644 --- a/application/Espo/Services/LastViewed.php +++ b/application/Espo/Services/LastViewed.php @@ -94,7 +94,7 @@ class LastViewed 'MAX:number', ['MAX:createdAt', 'createdAt'], ]) - ->groupBy(['targetId', 'targetType']) + ->group(['targetId', 'targetType']) ->limit($offset, $params['maxSize'] + 1) ->find(); diff --git a/tests/unit/Espo/ORM/MysqlQueryComposerTest.php b/tests/unit/Espo/ORM/MysqlQueryComposerTest.php index e5369e9b32..054ec2ac85 100644 --- a/tests/unit/Espo/ORM/MysqlQueryComposerTest.php +++ b/tests/unit/Espo/ORM/MysqlQueryComposerTest.php @@ -1047,7 +1047,7 @@ class MysqlQueryComposerTest extends \PHPUnit\Framework\TestCase ->leftJoin('post') ->distinct() ->order('LIST:post.name:Test,Hello') - ->groupBy('post.name') + ->group('post.name') ->build(); $sql = $this->query->compose($select); @@ -2388,7 +2388,7 @@ class MysqlQueryComposerTest extends \PHPUnit\Framework\TestCase 'a.name' => 'Test', ]) ->order('a.name') - ->groupBy(['id']) + ->group(['id']) ->withDeleted() ->build(); diff --git a/tests/unit/Espo/ORM/Query/SelectBuilderTest.php b/tests/unit/Espo/ORM/Query/SelectBuilderTest.php index b5b3256d7b..3043fa7b19 100644 --- a/tests/unit/Espo/ORM/Query/SelectBuilderTest.php +++ b/tests/unit/Espo/ORM/Query/SelectBuilderTest.php @@ -230,7 +230,7 @@ class SelectBuilderTest extends \PHPUnit\Framework\TestCase $select = $this->builder ->from('Test') ->having(['test' => null]) - ->groupBy(['test']) + ->group(['test']) ->build(); $raw = $select->getRaw(); @@ -245,7 +245,7 @@ class SelectBuilderTest extends \PHPUnit\Framework\TestCase $select = $this->builder ->from('Test') ->having(Cond::equal(Expr::column('test'), null)) - ->groupBy(Expr::create('test')) + ->group(Expr::create('test')) ->build(); $raw = $select->getRaw(); @@ -257,7 +257,7 @@ class SelectBuilderTest extends \PHPUnit\Framework\TestCase { $select = $this->builder ->from('Test') - ->groupBy([ + ->group([ Expr::create('test1'), Expr::create('test2'), ]) @@ -269,7 +269,7 @@ class SelectBuilderTest extends \PHPUnit\Framework\TestCase Expr::create('test1'), Expr::create('test2'), ], - $select->getGroupBy() + $select->getGroup() ); } @@ -278,7 +278,7 @@ class SelectBuilderTest extends \PHPUnit\Framework\TestCase $select = $this->builder ->from('Test') ->having(Cond::equal(Expr::column('test'), null)) - ->groupBy(Expr::create('test')) + ->group(Expr::create('test')) ->build(); diff --git a/tests/unit/Espo/ORM/Repository/RDBRepositoryTest.php b/tests/unit/Espo/ORM/Repository/RDBRepositoryTest.php index 9ef3380811..8eb22749bc 100644 --- a/tests/unit/Espo/ORM/Repository/RDBRepositoryTest.php +++ b/tests/unit/Espo/ORM/Repository/RDBRepositoryTest.php @@ -744,7 +744,7 @@ class RDBRepositoryTest extends \PHPUnit\Framework\TestCase ->will($this->returnValue($this->collection)) ->with($paramsExpected); - $this->repository->groupBy('id')->find(); + $this->repository->group('id')->find(); } public function testGroupBy2() @@ -761,8 +761,8 @@ class RDBRepositoryTest extends \PHPUnit\Framework\TestCase ->with($paramsExpected); $this->repository - ->groupBy('id') - ->groupBy('name') + ->group('id') + ->group('name') ->find(); } @@ -780,8 +780,8 @@ class RDBRepositoryTest extends \PHPUnit\Framework\TestCase ->with($paramsExpected); $this->repository - ->groupBy('id') - ->groupBy(['id', 'name']) + ->group('id') + ->group(['id', 'name']) ->find(); } @@ -799,8 +799,8 @@ class RDBRepositoryTest extends \PHPUnit\Framework\TestCase ->with($paramsExpected); $this->repository - ->groupBy(Expr::create('id')) - ->groupBy(Expr::create('name')) + ->group(Expr::create('id')) + ->group(Expr::create('name')) ->find(); } @@ -818,7 +818,7 @@ class RDBRepositoryTest extends \PHPUnit\Framework\TestCase ->with($paramsExpected); $this->repository - ->groupBy([Expr::create('id'), Expr::create('name')]) + ->group([Expr::create('id'), Expr::create('name')]) ->find(); }