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

[SBE] Revisit expected semantics of non-boolean values for EPrimBinary and/or

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Query Execution

      The expected behavior around non-boolean values for EPrimBinary and/or is unclear. Though higher-level logic can enforce that the expected values are boolean (for instance, by building an expression which type checks before calling into binary and/or), it's not clear what the behavior of the instructions themselves should be. For example, suppose we are executing EPrimBinary::and(17, true). Should we: 

      • Treat 17 as truthy and evaluate the constant true?
      • Treat 17 as a non-bool value and return nothing?
      • Expect undefined behavior? 

      This ticket tracks the work to not only decide on the "expected" semantics, but also to implement them.

            Assignee:
            backlog-query-execution [DO NOT USE] Backlog - Query Execution
            Reporter:
            mihai.andrei@mongodb.com Mihai Andrei
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: