[CQF] Add rewrite to push not through EvalFilter when possible

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 6.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • QO 2022-11-14, QO 2022-11-28
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      This rewrite would push a UnaryOp[not] through an EvalFilter under certain conditions. For example UnaryOp[not] EvalFilter PathCompare[eq] Constant[2] --> EvalFilter PathCompare[neq] Constant[2]

      This is not always correct when the path below the EvalFilter contains a Traverse. For example, the following rewrite is not correct: 
      UnaryOp[not] EvalFilter PathGet["a] PathTraverse[1] PathCompare[eq] Constant[2] --> EvalFilter PathGet["a] PathTraverse[1] PathCompare[neq] Constant[2]

      This would have incorrect behavior for arrays at path "a".

            Assignee:
            David Percy (Inactive)
            Reporter:
            Hana Pearlman
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: