@@ -5,7 +5,6 @@ import qualified Data.Text as T
5import TutorialD.Interpreter.RelationalExpr
5import TutorialD.Interpreter.RelationalExpr
6import TutorialD.Interpreter.Types
6import TutorialD.Interpreter.Types
7import qualified Data.Map as M
7import qualified Data.Map as M
8−import Control.Monad.State
9import ProjectM36.StaticOptimizer
8import ProjectM36.StaticOptimizer
10import qualified ProjectM36.Error as PM36E
9import qualified ProjectM36.Error as PM36E
11import ProjectM36.Error
10import ProjectM36.Error
@@ -195,11 +194,13 @@ evalDatabaseContextExpr useOptimizer context expr = do
195 (Left err, _) -> Left err
194 (Left err, _) -> Left err
198−interpretDatabaseContextExpr :: DatabaseContext -> T.Text -> Either RelationalError DatabaseContext
197+interpretDatabaseContextExpr :: DatabaseContext -> TransactionId -> TransactionGraph -> T.Text -> Either RelationalError DatabaseContext
199−interpretDatabaseContextExpr context tutdstring = case parse databaseExprOpP "" tutdstring of
198+interpretDatabaseContextExpr context transId graph tutdstring =
199+ case parse databaseExprOpP "" tutdstring of
200− Left err -> Left $ PM36E.ParseError (T.pack (show err))
200+ Left err -> Left $ PM36E.ParseError (T.pack (show err))
201− Right parsed ->
201+ Right parsed -> do
202− evalDatabaseContextExpr True context parsed
202+ let env = RE.mkDatabaseContextEvalEnv transId graph
203+ RE.dbc_context <$> RE.runDatabaseContextEvalMonad context env (optimizeAndEvalDatabaseContextExpr True parsed)
205--no optimization
206--no optimization