MQL syntax to conditionally execute sub-query

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Optimization
    • None
    • 3
    • TBD
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Say you wanted to express the following SQL in MQL, it would be difficult to do today:

       

      CASE
           WHEN foo = "bar"
           THEN (SELECT x, y FROM tbl1)
           ELSE (SELECT x, y WHERE x > 10 FROM tbl2)
      END

       

      You could hack around it with $facet or $function, but it would be better to provide a first-class MQL operator to do this, e.g. an aggregation stage version of $switch (we already have a $switch at the expression level, but...)

      {$switch: {
         branches: [
            {case: {$eq: ["$foo", "bar"]}, then: [], collection: "tbl1"},
         ]
         default: {
            pipeline: [{$match: {x > 0}}],
            collection: "tbl2"
         }
      }}

            Assignee:
            Unassigned
            Reporter:
            Alya Berciu
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: