docs: public void getScanNodeList_recurse(ArrayList<AbstractScanPlanNode> collected,
              HashSet<AbstractPlanNode> visited) {
          if (visited.contains(this)) {
              assert(false): "do not expect loops in plangraph.";
              return;
          }
          visited.add(this);
          for (AbstractPlanNode n : m_children) {
              n.getScanNodeList_recurse(collected, visited);
          }
  
          for (AbstractPlanNode node : m_inlineNodes.values()) {
              node.getScanNodeList_recurse(collected, visited);
          }
      }