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,
|
PhabricatorCursorPagedPolicyAwareQuery $query,
|
||||||
$value) {
|
$value) {
|
||||||
|
|
||||||
if (strlen($value)) {
|
if (is_string($value) && !strlen($value)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$value = (array)$value;
|
||||||
|
if ($value) {
|
||||||
$query->withApplicationSearchContainsConstraint(
|
$query->withApplicationSearchContainsConstraint(
|
||||||
$this->newStringIndex(null),
|
$this->newStringIndex(null),
|
||||||
$value);
|
$value);
|
||||||
|
|||||||
Reference in New Issue
Block a user