Пример #1
0
    def get_plan(self, statements, logical=False):
        """Get the query plan"""
        self.logical = compile.optimize(statements, OptLogicalAlgebra())
        self.physical = compile.optimize(self.logical,
                                         MyriaLeftDeepTreeAlgebra())
        plan = self.logical if logical else self.physical

        # Verify that we can stringify
        assert str(plan)
        # Verify that we can convert to a dot
        raco.viz.get_dot(plan)
        # verify repr
        return replace_with_repr(plan)
Пример #2
0
    def get_plan(self, statements, logical=False):
        """Get the query plan"""
        self.logical = compile.optimize(statements, OptLogicalAlgebra())
        self.physical = compile.optimize(self.logical,
                                         MyriaLeftDeepTreeAlgebra())
        plan = self.logical if logical else self.physical

        # Verify that we can stringify
        assert str(plan)
        # Verify that we can convert to a dot
        raco.viz.get_dot(plan)
        # verify repr
        return replace_with_repr(plan)
Пример #3
0
 def get_plan(self, query, **kwargs):
     """Get the MyriaL query plan for a query"""
     statements = self.parser.parse(query)
     self.processor.evaluate(statements)
     if kwargs.get('logical', False):
         p = self.processor.get_logical_plan(**kwargs)
     else:
         p = self.processor.get_physical_plan(**kwargs)
     # verify that we can stringify p
     # TODO verify the string somehow?
     assert str(p)
     # verify that we can convert p to a dot
     # TODO verify the dot somehow?
     raco.viz.get_dot(p)
     # Test repr
     return replace_with_repr(p)
Пример #4
0
    def get_plan(self, query, **kwargs):
        """Get the MyriaL query plan for a query"""
        statements = self.parser.parse(query, udas=kwargs.get('udas', None))

        print statements
        self.processor.evaluate(statements)
        if kwargs.get('logical', False):
            p = self.processor.get_logical_plan(**kwargs)
        else:
            p = self.processor.get_physical_plan(**kwargs)
        # verify that we can stringify p
        # TODO verify the string somehow?
        assert str(p)
        # verify that we can convert p to a dot
        # TODO verify the dot somehow?
        raco.viz.get_dot(p)
        # Test repr
        # FIXME: replace_with_repr() is broken for logical ops
        # (__repr__ doesn't persist any constructor args),
        # so only test for physical ops (where __repr__ persists
        # all constructor args).
        if kwargs.get('logical', False):
            return p
        return replace_with_repr(p)