docs: private void generateAccessPaths(JoinNode joinNode) {
          assert(joinNode != null);
          if (joinNode instanceof BranchNode) {
              generateOuterAccessPaths((BranchNode)joinNode);
              generateInnerAccessPaths((BranchNode)joinNode);
              // An empty access path for the root
              joinNode.m_accessPaths.add(new AccessPath());
              return;
          }
          // This is a select from a single table
          joinNode.m_accessPaths.addAll(getRelevantAccessPathsForTable(joinNode.getTableScan(),
                  joinNode.m_joinInnerList, joinNode.m_whereInnerList, null));
      }