From 29027d37eee3b60d9a376fa9a7772b7dd81633c6 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Oct 2022 14:28:48 +0200 Subject: [PATCH 1/6] added failling list test --- tests/default/data/pdo-prepare.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/default/data/pdo-prepare.php b/tests/default/data/pdo-prepare.php index 4ac808d0c..791a301ac 100644 --- a/tests/default/data/pdo-prepare.php +++ b/tests/default/data/pdo-prepare.php @@ -165,4 +165,18 @@ public function noInferenceOnBug196(PDO $pdo, array $minorPhpVersions, \DateTime // make sure we don't infer a wrong type. assertType('PDOStatement', $stmt); } + + /** + * @param list $idsToUpdate + */ + public function specifiedList(PDO $pdo, array $idsToUpdate, string $time) + { + $query = 'SELECT adaid FROM ada WHERE adaid IN (:ids) AND email LIKE :time'; + $stmt = $pdo->prepare($query); + $stmt->execute([ + 'ids' => $idsToUpdate, + 'time' => $time, + ]); + assertType('PDOStatement, 0: int<-32768, 32767>}>', $stmt); + } } From 37c413d8a289f41aa265851a85befdf258d895f0 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Oct 2022 14:31:11 +0200 Subject: [PATCH 2/6] Update pdo-prepare.php --- tests/default/data/pdo-prepare.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/default/data/pdo-prepare.php b/tests/default/data/pdo-prepare.php index 791a301ac..9a5360a4f 100644 --- a/tests/default/data/pdo-prepare.php +++ b/tests/default/data/pdo-prepare.php @@ -167,7 +167,7 @@ public function noInferenceOnBug196(PDO $pdo, array $minorPhpVersions, \DateTime } /** - * @param list $idsToUpdate + * @param list $idsToUpdate */ public function specifiedList(PDO $pdo, array $idsToUpdate, string $time) { From 1e1c2e70fa27f5618fe2f7d5d7cb5ca68eeb2d5a Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Oct 2022 14:35:40 +0200 Subject: [PATCH 3/6] different rule --- tests/default/data/doctrine-dbal.php | 13 +++++++++++++ tests/default/data/pdo-prepare.php | 13 ------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/default/data/doctrine-dbal.php b/tests/default/data/doctrine-dbal.php index d02eb8825..e7d606ead 100644 --- a/tests/default/data/doctrine-dbal.php +++ b/tests/default/data/doctrine-dbal.php @@ -228,4 +228,17 @@ public function customTypeParameters(Connection $conn) ); assertType('Doctrine\DBAL\Result', $result); } + + /** + * @param list $idsToUpdate + */ + public function specifiedList(Connection $conn, array $idsToUpdate, string $time) + { + $query = 'SELECT adaid FROM ada WHERE adaid IN (:ids) AND email LIKE :time'; + $result = $conn->executeQuery($query, [ + 'ids' => $idsToUpdate, + 'time' => $time, + ]); + assertType('PDOStatement, 0: int<-32768, 32767>}>', $result); + } } diff --git a/tests/default/data/pdo-prepare.php b/tests/default/data/pdo-prepare.php index 9a5360a4f..70cadf9e2 100644 --- a/tests/default/data/pdo-prepare.php +++ b/tests/default/data/pdo-prepare.php @@ -166,17 +166,4 @@ public function noInferenceOnBug196(PDO $pdo, array $minorPhpVersions, \DateTime assertType('PDOStatement', $stmt); } - /** - * @param list $idsToUpdate - */ - public function specifiedList(PDO $pdo, array $idsToUpdate, string $time) - { - $query = 'SELECT adaid FROM ada WHERE adaid IN (:ids) AND email LIKE :time'; - $stmt = $pdo->prepare($query); - $stmt->execute([ - 'ids' => $idsToUpdate, - 'time' => $time, - ]); - assertType('PDOStatement, 0: int<-32768, 32767>}>', $stmt); - } } From 8f30c8ba77dccfa73f671a27f796546d2e92cd59 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Oct 2022 14:37:16 +0200 Subject: [PATCH 4/6] Update doctrine-dbal.php --- tests/default/data/doctrine-dbal.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/default/data/doctrine-dbal.php b/tests/default/data/doctrine-dbal.php index e7d606ead..7ab3cf0dc 100644 --- a/tests/default/data/doctrine-dbal.php +++ b/tests/default/data/doctrine-dbal.php @@ -232,13 +232,10 @@ public function customTypeParameters(Connection $conn) /** * @param list $idsToUpdate */ - public function specifiedList(Connection $conn, array $idsToUpdate, string $time) + public function specifiedList(Connection $conn, array $idsToUpdate) { - $query = 'SELECT adaid FROM ada WHERE adaid IN (:ids) AND email LIKE :time'; - $result = $conn->executeQuery($query, [ - 'ids' => $idsToUpdate, - 'time' => $time, - ]); + $query = 'SELECT adaid FROM ada WHERE adaid IN (?)'; + $result = $conn->executeQuery($query, $idsToUpdate); assertType('PDOStatement, 0: int<-32768, 32767>}>', $result); } } From c866879a04553960890f59c346ff529ad6816426 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Oct 2022 14:39:06 +0200 Subject: [PATCH 5/6] Update doctrine-dbal.php --- tests/default/data/doctrine-dbal.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/default/data/doctrine-dbal.php b/tests/default/data/doctrine-dbal.php index 7ab3cf0dc..b22a6d53a 100644 --- a/tests/default/data/doctrine-dbal.php +++ b/tests/default/data/doctrine-dbal.php @@ -232,10 +232,10 @@ public function customTypeParameters(Connection $conn) /** * @param list $idsToUpdate */ - public function specifiedList(Connection $conn, array $idsToUpdate) + public function fetchFromListParam(Connection $conn, array $idsToUpdate) { $query = 'SELECT adaid FROM ada WHERE adaid IN (?)'; - $result = $conn->executeQuery($query, $idsToUpdate); - assertType('PDOStatement, 0: int<-32768, 32767>}>', $result); + $fetchResult = $conn->fetchOne($query, $idsToUpdate); + assertType('string|false', $fetchResult); } } From fede70ad1d2114364d2caf9be020b32f25b3d727 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 10 Oct 2022 15:26:40 +0200 Subject: [PATCH 6/6] Restore pdo-prepare.php --- tests/default/data/doctrine-dbal.php | 11 +++++++++++ tests/default/data/pdo-prepare.php | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/default/data/doctrine-dbal.php b/tests/default/data/doctrine-dbal.php index b22a6d53a..b548f0e46 100644 --- a/tests/default/data/doctrine-dbal.php +++ b/tests/default/data/doctrine-dbal.php @@ -238,4 +238,15 @@ public function fetchFromListParam(Connection $conn, array $idsToUpdate) $fetchResult = $conn->fetchOne($query, $idsToUpdate); assertType('string|false', $fetchResult); } + + /** + * @param array $idsToUpdate + */ + public function fetchFromArrayParam(Connection $conn, array $idsToUpdate) + { + $query = 'SELECT adaid FROM ada WHERE adaid IN(?)'; + $fetchResult = $conn->fetchOne($query, $idsToUpdate); + assertType('string|false', $fetchResult); + } + } diff --git a/tests/default/data/pdo-prepare.php b/tests/default/data/pdo-prepare.php index 70cadf9e2..4ac808d0c 100644 --- a/tests/default/data/pdo-prepare.php +++ b/tests/default/data/pdo-prepare.php @@ -165,5 +165,4 @@ public function noInferenceOnBug196(PDO $pdo, array $minorPhpVersions, \DateTime // make sure we don't infer a wrong type. assertType('PDOStatement', $stmt); } - }