Write PBT verifying logical partitioning property

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Optimization
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Write a PBT which generates arbitrary predicates, documents and indexes. Then runs find(pred) and find(Not(pred)) and verifies the following properties:

      1. find(pred) and find(Not(pred)) should be disjoint sets
      2. The union of the two sets should contain the entire collection

      Because MQL does not have a top-level $not operator, we can achieve the desired behavior by using a top-level $nor with a single child.

       

      The alternative (or in addition) approach could be to restrict this to generate $not for children of path match expression. For example, {foo: pred} and {foo: {$not: pred}}. In this case, we'd need to be careful that we are only generate a single top-level predicate.

       

            Assignee:
            Unassigned
            Reporter:
            Ben Shteinfeld
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: