@@ -4,7 +4,9 @@ import ProjectM36.Relation
4import ProjectM36.Tuple
4import ProjectM36.Tuple
5import ProjectM36.Relation.Show.CSV
5import ProjectM36.Relation.Show.CSV
6import ProjectM36.Relation.Show.HTML
6import ProjectM36.Relation.Show.HTML
7+import TutorialD.Interpreter.Base (displayOpResult)
7import TutorialD.Interpreter.DatabaseExpr (interpretDatabaseExpr)
8import TutorialD.Interpreter.DatabaseExpr (interpretDatabaseExpr)
9+import TutorialD.Interpreter.RODatabaseContextOperator (interpretRODatabaseContextOp)
8import ProjectM36.RelationalExpression
10import ProjectM36.RelationalExpression
9import qualified Data.HashSet as HS
11import qualified Data.HashSet as HS
10import qualified Data.ByteString.Lazy.Char8 as BS
12import qualified Data.ByteString.Lazy.Char8 as BS
@@ -42,14 +44,6 @@ main = do
42 --vectorMatrixRun
44 --vectorMatrixRun
43 --intmapMatrixRun
45 --intmapMatrixRun
45−matrixRestrictRun :: IO ()
46−matrixRestrictRun = do
47− case matrixRelation 100 1000000 of
48− Left err -> putStrLn (show err)
49− Right rel -> case restrict (\tuple -> atomForAttributeName "0" tuple == Right (IntAtom 5)) rel of
50− Left err -> putStrLn (show err)
51− Right rel -> dumpcsv rel
53matrixRun :: BigrelArgs -> IO ()
47matrixRun :: BigrelArgs -> IO ()
54matrixRun (BigrelArgs attributeCount tupleCount tutd) = do
48matrixRun (BigrelArgs attributeCount tupleCount tutd) = do
55 case matrixRelation attributeCount tupleCount of
49 case matrixRelation attributeCount tupleCount of
@@ -60,6 +54,8 @@ matrixRun (BigrelArgs attributeCount tupleCount tutd) = do
60 let setx = Assign "x" (ExistingRelation rel)
54 let setx = Assign "x" (ExistingRelation rel)
61 context = execState (evalContextExpr setx) dateExamples
55 context = execState (evalContextExpr setx) dateExamples
62 interpreted = interpretDatabaseExpr context tutd
56 interpreted = interpretDatabaseExpr context tutd
57+ plan = interpretRODatabaseContextOp context $ ":showplan " ++ tutd
63 case interpreted of
59 case interpreted of
64 Right context' -> TIO.putStrLn $ relationAsHTML ((relationVariables context') M.! "x")
60 Right context' -> TIO.putStrLn $ relationAsHTML ((relationVariables context') M.! "x")
65 Left err -> hPutStrLn stderr (show err)
61 Left err -> hPutStrLn stderr (show err)