Fix ContainsConstraints for array-valued custom field constraints in "*.search" methods
Summary: Fixes T11593. We ask for a list of values when searching for custom "link" fields, but don't handle it correctly when actually construcitng a query.
Test Plan:
Added this custom field:
```
{
"mycompany.target-version": {
"name": "Target Version",
"type": "link",
"search": true
}
}
```
Set a task to "beta". Let daemons index it. Queried for:
```
constraints: {
"custom.mycompany.target-version": [
"beta"
]
}
```
Got just one result back.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T11593
Differential Revision: https://secure.phabricator.com/D16508
This commit is contained in:
@@ -47,7 +47,12 @@ final class PhabricatorStandardCustomFieldLink
|
||||
PhabricatorCursorPagedPolicyAwareQuery $query,
|
||||
$value) {
|
||||
|
||||
if (strlen($value)) {
|
||||
if (is_string($value) && !strlen($value)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = (array)$value;
|
||||
if ($value) {
|
||||
$query->withApplicationSearchContainsConstraint(
|
||||
$this->newStringIndex(null),
|
||||
$value);
|
||||
|
||||
Reference in New Issue
Block a user