From 88b43d918faf791e322f5ae3dae7829370abffef Mon Sep 17 00:00:00 2001 From: Tigrov Date: Sun, 14 Apr 2024 16:43:15 +0700 Subject: [PATCH 1/2] Update test according to main PR --- src/DMLQueryBuilder.php | 4 ++++ tests/CommandTest.php | 2 +- tests/Provider/CommandProvider.php | 5 ++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/DMLQueryBuilder.php b/src/DMLQueryBuilder.php index 077954c6..c1b57e10 100644 --- a/src/DMLQueryBuilder.php +++ b/src/DMLQueryBuilder.php @@ -30,6 +30,10 @@ final class DMLQueryBuilder extends AbstractDMLQueryBuilder */ public function batchInsert(string $table, array $columns, iterable $rows, array &$params = []): string { + if (!is_array($rows)) { + $rows = $this->prepareTraversable($rows); + } + if (empty($rows)) { return ''; } diff --git a/tests/CommandTest.php b/tests/CommandTest.php index c9731874..6f6a39b2 100644 --- a/tests/CommandTest.php +++ b/tests/CommandTest.php @@ -65,7 +65,7 @@ public function testAddDefaultValue(): void public function testBatchInsert( string $table, array $columns, - array $values, + iterable $values, string $expected, array $expectedParams = [], int $insertedRow = 1 diff --git a/tests/Provider/CommandProvider.php b/tests/Provider/CommandProvider.php index 2b443533..7945e398 100644 --- a/tests/Provider/CommandProvider.php +++ b/tests/Provider/CommandProvider.php @@ -61,7 +61,10 @@ public static function batchInsert(): array 'empty columns and objects' => [ ':qp3' => '1', ], - 'empty columns and Traversable' => [ + 'empty columns and a Traversable value' => [ + ':qp3' => '1', + ], + 'empty columns and Traversable values' => [ ':qp3' => '1', ], ]; From 3cb1a9d865c4cfd15366f488aac8cf34dbe8e92a Mon Sep 17 00:00:00 2001 From: Tigrov Date: Sat, 27 Apr 2024 22:40:20 +0700 Subject: [PATCH 2/2] Add line to CHANGELOG.md [skip ci] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9db75187..59bbd8c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 2.0.0 under development +- Enh #260: Support `Traversable` values for `DMLQueryBuilder::batchInsert()` method with empty columns (@Tigrov) - Enh #255: Implement `SqlParser` and `ExpressionBuilder` driver classes (@Tigrov) ## 1.3.0 March 21, 2024