Skip to content

Commit e92cbda

Browse files
vdlp-mwMenzo Wijmenga
andauthored
Fix issue where addSelect may result in duplicate columns being selected. (#46049)
Co-authored-by: Menzo Wijmenga <[email protected]>
1 parent e4358d1 commit e92cbda

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

src/Illuminate/Database/Query/Builder.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,10 @@ public function addSelect($column)
411411

412412
$this->selectSub($column, $as);
413413
} else {
414+
if (is_array($this->columns) && in_array($column, $this->columns, true)) {
415+
continue;
416+
}
417+
414418
$this->columns[] = $column;
415419
}
416420
}

tests/Database/DatabaseQueryBuilderTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public function testAliasWrappingWithSpacesInDatabaseName()
107107
public function testAddingSelects()
108108
{
109109
$builder = $this->getBuilder();
110-
$builder->select('foo')->addSelect('bar')->addSelect(['baz', 'boom'])->from('users');
110+
$builder->select('foo')->addSelect('bar')->addSelect(['baz', 'boom'])->addSelect('bar')->from('users');
111111
$this->assertSame('select "foo", "bar", "baz", "boom" from "users"', $builder->toSql());
112112
}
113113

0 commit comments

Comments
 (0)