@@ -97,6 +97,13 @@ evalTransGraphRelationalExpr (Extend extendExpr expr) graph = do
97 extendExpr' <- evalTransGraphExtendTupleExpr extendExpr graph
97 extendExpr' <- evalTransGraphExtendTupleExpr extendExpr graph
98 expr' <- evalTransGraphRelationalExpr expr graph
98 expr' <- evalTransGraphRelationalExpr expr graph
99 pure (Extend extendExpr' expr')
99 pure (Extend extendExpr' expr')
100+evalTransGraphRelationalExpr (With views expr) graph = do
101+ evaldViews <- mapM (\(vname, vexpr) -> do
102+ vexpr' <- evalTransGraphRelationalExpr vexpr graph
103+ pure (vname, vexpr')
105+ expr' <- evalTransGraphRelationalExpr expr graph
106+ pure (With evaldViews expr')
101evalTransGraphTupleExpr :: TransactionGraph -> TransGraphTupleExpr -> Either RelationalError TupleExpr
108evalTransGraphTupleExpr :: TransactionGraph -> TransGraphTupleExpr -> Either RelationalError TupleExpr
102evalTransGraphTupleExpr graph (TupleExpr attrMap) = do
109evalTransGraphTupleExpr graph (TupleExpr attrMap) = do