Collation handles null bytes inconsistently between different execution engines

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Works as Designed
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Query Execution
    • None
    • Query Execution
    • ALL
    • Hide
      const docs = [{"_id": 244, "m": {"m2": "\u0000"}}, {"_id": 129, "m": {"m2": ""}}];
      const q = [{"$group": {"_id": null, "a": {"$max": "$m.m2"}}}];
      const collation = {
          "locale": "zh",
          "strength": 1
      };
      
      const coll = db.coll;
      coll.drop()
      coll.insert(docs)
      
      jsTestLog(coll.aggregate(q, {collation}).toArray())
      // Uses SBE:  [ { "_id" : null, "a" : "" } ]
      jsTestLog(coll.aggregate([{$_internalInhibitOptimization: {}}, ...q], {collation}).toArray())
      // Uses document source $group: [ { "_id" : null, "a" : "\u0000" } ]
      
      Show
      const docs = [{ "_id" : 244, "m" : { "m2" : "\u0000" }}, { "_id" : 129, "m" : { "m2" : ""}}]; const q = [{ "$group" : { "_id" : null , "a" : { "$max" : "$m.m2" }}}]; const collation = { "locale" : "zh" , "strength" : 1 }; const coll = db.coll; coll.drop() coll.insert(docs) jsTestLog(coll.aggregate(q, {collation}).toArray()) // Uses SBE: [ { "_id" : null , "a" : "" } ] jsTestLog(coll.aggregate([{$_internalInhibitOptimization: {}}, ...q], {collation}).toArray()) // Uses document source $group: [ { "_id" : null , "a" : "\u0000" } ]
    • None
    • None
    • None
    • None
    • None
    • None
    • None

          Assignee:
          [DO NOT USE] Backlog - Query Execution
          Reporter:
          Ruoxin Xu
          Votes:
          0 Vote for this issue
          Watchers:
          6 Start watching this issue

            Created:
            Updated:
            Resolved: