@@ -350,17 +350,17 @@ public function testSelectWithCTENamedParameter(): void
350
350
$ cteQueryBuilder = $ this ->connection ->createQueryBuilder ();
351
351
$ cteQueryBuilder ->select ('id AS virtual_id ' )
352
352
->from ('for_update ' )
353
- ->where ('virtual_id = :id ' );
353
+ ->where ('virtual_id = :id ' )
354
+ ->setParameter ('id ' , 1 );
354
355
355
356
$ qb ->with ('cte_a ' , $ cteQueryBuilder , ['virtual_id ' ])
356
357
->select ('virtual_id ' )
357
- ->from ('cte_a ' )
358
- ->setParameter ('id ' , 1 );
358
+ ->from ('cte_a ' );
359
359
360
360
self ::assertSame ($ expectedRows , $ qb ->executeQuery ()->fetchAllAssociative ());
361
361
}
362
362
363
- public function testSelectWithCTEPositionalParameter (): void
363
+ public function testSelectWithCTEPositionalParametersBindForEachQuery (): void
364
364
{
365
365
if (! $ this ->platformSupportsCTEs ()) {
366
366
self ::markTestSkipped ('The database platform does not support CTE. ' );
@@ -376,19 +376,22 @@ public function testSelectWithCTEPositionalParameter(): void
376
376
$ cteQueryBuilder1 = $ this ->connection ->createQueryBuilder ();
377
377
$ cteQueryBuilder1 ->select ('id AS virtual_id ' )
378
378
->from ('for_update ' )
379
- ->where ($ qb ->expr ()->eq ('virtual_id ' , '? ' ));
379
+ ->where ($ cteQueryBuilder1 ->expr ()->eq ('id ' , '? ' ))
380
+ ->setParameter (0 , 1 , ParameterType::INTEGER );
380
381
381
382
$ cteQueryBuilder2 = $ this ->connection ->createQueryBuilder ();
382
383
$ cteQueryBuilder2 ->select ('id AS virtual_id ' )
383
384
->from ('for_update ' )
384
- ->where ($ qb ->expr ()->in ('id ' , '? ' ));
385
+ ->where ($ cteQueryBuilder2 ->expr ()->in ('id ' , ':id ' ))
386
+ ->setParameter ('id ' , [1 , 2 ], ArrayParameterType::INTEGER );
385
387
386
388
$ qb ->with ('cte_a ' , $ cteQueryBuilder1 , ['virtual_id ' ])
387
389
->with ('cte_b ' , $ cteQueryBuilder2 , ['virtual_id ' ])
388
390
->select ('a.virtual_id ' )
389
391
->from ('cte_a ' , 'a ' )
390
392
->join ('a ' , 'cte_b ' , 'b ' , 'a.virtual_id = b.virtual_id ' )
391
- ->setParameters ([1 , [1 , 2 ]], [ParameterType::INTEGER , ArrayParameterType::INTEGER ]);
393
+ ->where ($ qb ->expr ()->eq ('a.virtual_id ' , '? ' ))
394
+ ->setParameter (0 , 1 , ParameterType::INTEGER );
392
395
393
396
self ::assertSame ($ expectedRows , $ qb ->executeQuery ()->fetchAllAssociative ());
394
397
}
0 commit comments