def test_views(): dataset = DataSet() adapter = dataset.add_adapter(MockAdapter()) # create a view off of an existing table dataset.select('x').frm('bogus').create_view('only_x') view = dataset.get_view('only_x') eq_( view, AliasOp('only_x', ProjectionOp(LoadOp('bogus'), Var('x'))) ) # create a view off of a view dataset.select('x').frm('only_x').create_view('only_x_from_x') view = dataset.get_view('only_x_from_x') compare( view, # Todo: Implement a query optimizer that eliminates # redunant projections ops like the one we see below AliasOp('only_x_from_x', ProjectionOp( AliasOp('only_x',ProjectionOp(LoadOp('bogus'), Var('x'))), Var('x') ) ))
def test_views(): dataset = DataSet() adapter = dataset.add_adapter(MockAdapter()) # create a view off of an existing table dataset.select('x').frm('bogus').create_view('only_x') view = dataset.get_view('only_x') eq_(view, AliasOp('only_x', ProjectionOp(LoadOp('bogus'), Var('x')))) # create a view off of a view dataset.select('x').frm('only_x').create_view('only_x_from_x') view = dataset.get_view('only_x_from_x') compare( view, # Todo: Implement a query optimizer that eliminates # redunant projections ops like the one we see below AliasOp( 'only_x_from_x', ProjectionOp( AliasOp('only_x', ProjectionOp(LoadOp('bogus'), Var('x'))), Var('x'))))
def test_query_builder(): dataset = DataSet() adapter = MockAdapter() dataset.add_adapter(adapter) query = dataset.select('x') eq_(isinstance(query, QueryBuilder), True) eq_(query.dataset, dataset) eq_(query.column_exps, 'x')