HomePhabricator

Make Ferret query functions sticky only if their values are not quoted

Description

Make Ferret query functions sticky only if their values are not quoted

Summary:
Ref T13509. Currently, functions are "sticky", but this stickness is in the query execution layer.

Instead:

  • move stickiness to the query compiler; and
  • make it so that functions are not sticky if their arguments are quoted.

For example:

  • title:x y previously meant title:x title:y (and still does). The "title:" is sticky.
  • title:"x" y previously meant title:x title:y. It now means title:x all:y. The "title:" is not sticky because the argument is quoted.

Test Plan: Added unit tests, ran unit tests.

Maniphest Tasks: T13509

Differential Revision: https://secure.phabricator.com/D21108