Skip to content

Commit 28b20b8

Browse files
committed
bug symfony#32163 [DoctrineBridge] Fix type error (norkunas)
This PR was merged into the 3.4 branch. Discussion ---------- [DoctrineBridge] Fix type error | Q | A | ------------- | --- | Branch? | 3.4 <!-- see below --> | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | BC breaks? | no <!-- see https://symfony.com/bc --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tests pass? | yes <!-- please add some, will be required by reviewers --> | Fixed tickets | - <!-- #-prefixed issue number(s), if any --> | License | MIT | Doc PR | - <!-- required for new features --> See discussion here: doctrine/DoctrineBundle#984 > Having SET sql_mode=(SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', '')) query and when clicking on explain currently it throws: > Argument 2 passed to Doctrine\DBAL\Connection::resolveParams() must be of the type array, null given, called in /vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php on line 911 <!-- Replace this notice by a short README for your feature/bugfix. This will help people understand your PR and can be used as a start for the documentation. Additionally (see https://symfony.com/roadmap): - Bug fixes must be submitted against the lowest maintained branch where they apply (lowest branches are regularly merged to upper ones so they get the fixes too). - Features and deprecations must be submitted against branch 4.4. - Legacy code removals go to the master branch. --> Commits ------- 7b8ee3e Fix type error
2 parents 675d463 + 7b8ee3e commit 28b20b8

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/Symfony/Bridge/Doctrine/DataCollector/DoctrineDataCollector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ private function sanitizeQuery($connectionName, $query)
138138
if (!\is_array($query['params'])) {
139139
$query['params'] = [$query['params']];
140140
}
141+
if (!\is_array($query['types'])) {
142+
$query['types'] = [];
143+
}
141144
foreach ($query['params'] as $j => $param) {
142145
if (isset($query['types'][$j])) {
143146
// Transform the param according to the type

src/Symfony/Bridge/Doctrine/Tests/DataCollector/DoctrineDataCollectorTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ public function testCollectQueryWithNoParams()
102102
$this->assertTrue($collectedQueries['default'][1]['explainable']);
103103
}
104104

105+
public function testCollectQueryWithNoTypes()
106+
{
107+
$queries = [
108+
['sql' => 'SET sql_mode=(SELECT REPLACE(@@sql_mode, \'ONLY_FULL_GROUP_BY\', \'\'))', 'params' => [], 'types' => null, 'executionMS' => 1],
109+
];
110+
$c = $this->createCollector($queries);
111+
$c->collect(new Request(), new Response());
112+
113+
$collectedQueries = $c->getQueries();
114+
$this->assertSame([], $collectedQueries['default'][0]['types']);
115+
}
116+
105117
public function testReset()
106118
{
107119
$queries = [

0 commit comments

Comments
 (0)