Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-71528

[CQF] Pushdown Not through ComposeA, Default, Constant

    • Query Optimization
    • Fully Compatible
    • QO 2023-05-15, QO 2023-05-29

      We can extend the NotPushdown rewrite to handle more cases, which can result in better bounds, or at least simpler expressions to evaluate.

      For example (pseudocode):

      • Not (ComposeA p1 p2) -> ComposeM (Not p1) (Not p2)
        • Should help $nor queries, or more complex boolean expressions.
      • Not (Default e) -> Default (Not e)
        • In an EvalFilter context, Default returns either its argument or the negation of its argument.
        • This will help us combine $not with $exists.
      • Not (Constant e) -> Constant (Not e)
        • Should help with constant folding.

            Assignee:
            chii.huang@mongodb.com Chi-I Huang
            Reporter:
            david.percy@mongodb.com David Percy
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: