docs: public static JoinNode reconstructJoinTreeFromTableNodes(List<JoinNode> tableNodes, JoinType joinType) {
          JoinNode root = null;
          for (JoinNode leafNode : tableNodes) {
              JoinNode node = leafNode.cloneWithoutFilters();
              if (root == null) {
                  root = node;
              } else {
                  // We only care about the root node id to be able to reconnect the sub-trees
                  // The intermediate node id can be anything. For the final root node its id
                  // will be set later to the original tree's root id
                  root = new BranchNode(-node.m_id, joinType, root, node);
              }
          }
          return root;
      }