Class EliminateCrossJoins

    • Constructor Detail

      • EliminateCrossJoins

        public EliminateCrossJoins​(Metadata metadata)
    • Method Detail

      • getPattern

        public Pattern<JoinNode> getPattern()
        Description copied from interface: Rule
        Returns a pattern to which plan nodes this rule applies.
        Specified by:
        getPattern in interface Rule<JoinNode>
      • isOriginalOrder

        public static boolean isOriginalOrder​(List<Integer> joinOrder)
      • getJoinOrder

        public static List<Integer> getJoinOrder​(JoinGraph graph)
        Given JoinGraph determine the order of joins between graph nodes by traversing JoinGraph. Any graph traversal algorithm could be used here (like BFS or DFS), but we use PriorityQueue to preserve original JoinOrder as mush as it is possible. PriorityQueue returns next nodes to join in order of their occurrence in original Plan.