diff options
author | David Storch <david.storch@mongodb.com> | 2020-09-09 18:27:22 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-09-11 14:33:20 +0000 |
commit | 712013ffd49d76c699a5a0128f5605a10b497967 (patch) | |
tree | c27bbca5414c2bf0cc35c68be9c60d5fec8e3706 | |
parent | 94e5a1620a00997e053f5d9cc75be65aa8b73016 (diff) | |
download | mongo-712013ffd49d76c699a5a0128f5605a10b497967.tar.gz |
SERVER-50884 Change order of SBE traverse 'from' and 'in' branches in debug output
-rw-r--r-- | src/mongo/db/exec/sbe/parser/parser.cpp | 14 | ||||
-rw-r--r-- | src/mongo/db/exec/sbe/stages/traverse.cpp | 8 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/mongo/db/exec/sbe/parser/parser.cpp b/src/mongo/db/exec/sbe/parser/parser.cpp index acbb6b983fd..3d61b5966e2 100644 --- a/src/mongo/db/exec/sbe/parser/parser.cpp +++ b/src/mongo/db/exec/sbe/parser/parser.cpp @@ -130,8 +130,8 @@ static constexpr auto kSyntax = R"( IDENT # input of traverse ('{' EXPR '}')? # optional fold expression ('{' EXPR '}')? # optional final expression - 'in' OPERATOR 'from' OPERATOR + 'in' OPERATOR EXCHANGE <- 'exchange' IDENT_LIST NUMBER IDENT OPERATOR SORT <- 'sort' IDENT_LIST IDENT_LIST OPERATOR UNWIND <- 'unwind' IDENT IDENT IDENT UNWIND_FLAG OPERATOR @@ -926,17 +926,17 @@ void Parser::walkTraverse(AstQuery& ast) { size_t finalPos = 0; if (ast.nodes.size() == 5) { - inPos = 3; - fromPos = 4; + fromPos = 3; + inPos = 4; } else if (ast.nodes.size() == 6) { foldPos = 3; - inPos = 4; - fromPos = 5; + fromPos = 4; + inPos = 5; } else { foldPos = 3; finalPos = 4; - inPos = 5; - fromPos = 6; + fromPos = 5; + inPos = 6; } ast.stage = makeS<TraverseStage>(std::move(ast.nodes[fromPos]->stage), std::move(ast.nodes[inPos]->stage), diff --git a/src/mongo/db/exec/sbe/stages/traverse.cpp b/src/mongo/db/exec/sbe/stages/traverse.cpp index d1438883141..a764c4c6698 100644 --- a/src/mongo/db/exec/sbe/stages/traverse.cpp +++ b/src/mongo/db/exec/sbe/stages/traverse.cpp @@ -300,14 +300,14 @@ std::vector<DebugPrinter::Block> TraverseStage::debugPrint() const { } DebugPrinter::addNewLine(ret); - DebugPrinter::addIdentifier(ret, "in"); + DebugPrinter::addIdentifier(ret, "from"); ret.emplace_back(DebugPrinter::Block::cmdIncIndent); - DebugPrinter::addBlocks(ret, _children[1]->debugPrint()); + DebugPrinter::addBlocks(ret, _children[0]->debugPrint()); ret.emplace_back(DebugPrinter::Block::cmdDecIndent); - DebugPrinter::addIdentifier(ret, "from"); + DebugPrinter::addIdentifier(ret, "in"); ret.emplace_back(DebugPrinter::Block::cmdIncIndent); - DebugPrinter::addBlocks(ret, _children[0]->debugPrint()); + DebugPrinter::addBlocks(ret, _children[1]->debugPrint()); ret.emplace_back(DebugPrinter::Block::cmdDecIndent); return ret; |