From 712013ffd49d76c699a5a0128f5605a10b497967 Mon Sep 17 00:00:00 2001 From: David Storch Date: Wed, 9 Sep 2020 18:27:22 -0400 Subject: SERVER-50884 Change order of SBE traverse 'from' and 'in' branches in debug output --- src/mongo/db/exec/sbe/parser/parser.cpp | 14 +++++++------- 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(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 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; -- cgit v1.2.1