on master help sign in
Rename DatabaseExpr to DatabaseContextExpr for the sake of consistency

all tests pass resolves #6

commit213787d524a251722e32b988569fc90b7159b3ff authorAgentM <agentm@themactionfaction.com> dateThu 21 Jul 2016, 11:19 (10 years ago) parent6d3e57b
18 files changed+79−79
Database/Persist/ProjectM36.hs+2−2 ProjectM36/Base.hs+17−17 ProjectM36/Client.hs+3−3 ProjectM36/DatabaseContext.hs+2−2 ProjectM36/RelationalExpression.hs+1−1 ProjectM36/Server/EntryPoints.hs+2−2 ProjectM36/Server/RemoteCallTypes.hs+2−2 ProjectM36/StaticOptimizer.hs+1−1 TutorialD/Interpreter.hs+6−6 TutorialD/Interpreter/DatabaseExpr.hs → TutorialD/Interpreter/DatabaseContextExpr.hs+26−26 TutorialD/Interpreter/Import/Base.hs+4−4 TutorialD/Interpreter/Import/CSV.hs+1−1 TutorialD/Interpreter/Import/TutorialD.hs+2−2 TutorialD/Interpreter/RODatabaseContextOperator.hs+2−2 benchmark/bigrel.hs+2−2 project-m36.cabal+2−2 test/TransactionGraph/Persist.hs+2−2 test/TutorialD/Interpreter.hs+2−2
Database/Persist/ProjectM36.hs+2−2
@@ -217,7 +217,7 @@ updateByKey key updates = do
217217 (sessionId, conn) <- ask
218218 maybeErr <- Trans.liftIO $ C.executeDatabaseContextExpr sessionId conn query
219219 case maybeErr of
220− Just err -> throwIOPersistError ("executeDatabaseExpr error" ++ show err)
220+ Just err -> throwIOPersistError ("executeDatabaseContextExpr error" ++ show err)
221221 Nothing -> return ()
222222
223223--set the truth unconditionally
@@ -316,7 +316,7 @@ instance ToJSON (BackendKey ProjectM36Backend) where
316316 toJSON (ProjectM36Key uuid) = toJSON $ U.toString uuid
317317
318318--wrapped version which throws exceptions
319−executeDatabaseContextExpr :: C.SessionId -> C.Connection -> DatabaseExpr -> IO ()
319+executeDatabaseContextExpr :: C.SessionId -> C.Connection -> DatabaseContextExpr -> IO ()
320320executeDatabaseContextExpr sessionId conn expr = do
321321 res <- C.executeDatabaseContextExpr sessionId conn expr
322322 case res of
ProjectM36/Base.hs+17−17
@@ -329,29 +329,29 @@ data InclusionDependency = InclusionDependency RelationalExpr RelationalExpr der
329329instance Binary InclusionDependency
330330
331331-- | Database context expressions modify the database context.
332−data DatabaseExpr where
333− NoOperation :: DatabaseExpr
334− Define :: RelVarName -> [AttributeExpr] -> DatabaseExpr
335− Undefine :: RelVarName -> DatabaseExpr --forget existence of relvar X
336− Assign :: RelVarName -> RelationalExpr -> DatabaseExpr
337− Insert :: RelVarName -> RelationalExpr -> DatabaseExpr
338− Delete :: RelVarName -> RestrictionPredicateExpr -> DatabaseExpr
339− Update :: RelVarName -> M.Map AttributeName Atom -> RestrictionPredicateExpr -> DatabaseExpr -- needs restriction support
332+data DatabaseContextExpr =
333+ NoOperation |
334+ Define RelVarName [AttributeExpr] |
335+ Undefine RelVarName | --forget existence of relvar X
336+ Assign RelVarName RelationalExpr |
337+ Insert RelVarName RelationalExpr |
338+ Delete RelVarName RestrictionPredicateExpr |
339+ Update RelVarName (M.Map AttributeName Atom) RestrictionPredicateExpr |
340340
341− AddInclusionDependency :: IncDepName -> InclusionDependency -> DatabaseExpr
342− RemoveInclusionDependency :: IncDepName -> DatabaseExpr
341+ AddInclusionDependency IncDepName InclusionDependency |
342+ RemoveInclusionDependency IncDepName |
343343
344− AddNotification :: NotificationName -> RelationalExpr -> RelationalExpr -> DatabaseExpr
345− RemoveNotification :: NotificationName -> DatabaseExpr
344+ AddNotification NotificationName RelationalExpr RelationalExpr |
345+ RemoveNotification NotificationName |
346346
347− AddTypeConstructor :: TypeConstructorDef -> [DataConstructorDef] -> DatabaseExpr
348− RemoveTypeConstructor :: TypeConstructorName -> DatabaseExpr
347+ AddTypeConstructor TypeConstructorDef [DataConstructorDef] |
348+ RemoveTypeConstructor TypeConstructorName |
349349
350350 -- to implement this, I likely need to implement a DSL for constructing arbitrary functions to operate on atoms at runtime
351− --AddAtomFunction :: AtomFunction -> DatabaseExpr
352− --RemoveAtomFunction :: AtomFunctionName -> DatabaseExpr
351+ --AddAtomFunction AtomFunction
352+ --RemoveAtomFunction AtomFunctionName
353353
354− MultipleExpr :: [DatabaseExpr] -> DatabaseExpr
354+ MultipleExpr [DatabaseContextExpr]
355355 deriving (Show, Eq, Binary, Generic)
356356
357357
ProjectM36/Client.hs+3−3
@@ -28,7 +28,7 @@ module ProjectM36.Client
2828 defaultHeadName,
2929 PersistenceStrategy(..),
3030 RelationalExpr(..),
31− DatabaseExpr(..),
31+ DatabaseContextExpr(..),
3232 Attribute(..),
3333 attributesFromList,
3434 createNodeId,
@@ -330,7 +330,7 @@ executeRelationalExpr sessionId (InProcessConnection _ _ sessions _) expr = atom
330330executeRelationalExpr sessionId conn@(RemoteProcessConnection _ _) relExpr = remoteCall conn (ExecuteRelationalExpr sessionId relExpr)
331331
332332-- | Execute a database context expression in the context of the session and connection. Database expressions modify the current session's disconnected transaction but cannot modify the transaction graph.
333−executeDatabaseContextExpr :: SessionId -> Connection -> DatabaseExpr -> IO (Maybe RelationalError)
333+executeDatabaseContextExpr :: SessionId -> Connection -> DatabaseContextExpr -> IO (Maybe RelationalError)
334334executeDatabaseContextExpr sessionId (InProcessConnection _ _ sessions _) expr = atomically $ do
335335 eSession <- sessionForSessionId sessionId sessions
336336 case eSession of
@@ -460,7 +460,7 @@ inclusionDependencies sessionId (InProcessConnection _ _ sessions _) = do
460460inclusionDependencies sessionId conn@(RemoteProcessConnection _ _) = remoteCall conn (RetrieveInclusionDependencies sessionId)
461461
462462-- | Return an optimized database expression which is logically equivalent to the input database expression. This function can be used to determine which expression will actually be evaluated.
463−planForDatabaseContextExpr :: SessionId -> Connection -> DatabaseExpr -> IO (Either RelationalError DatabaseExpr)
463+planForDatabaseContextExpr :: SessionId -> Connection -> DatabaseContextExpr -> IO (Either RelationalError DatabaseContextExpr)
464464planForDatabaseContextExpr sessionId (InProcessConnection _ _ sessions _) dbExpr = do
465465 atomically $ do
466466 eSession <- sessionForSessionId sessionId sessions
ProjectM36/DatabaseContext.hs+2−2
@@ -15,11 +15,11 @@ empty = DatabaseContext { inclusionDependencies = M.empty,
1515 typeConstructorMapping = [] }
1616
1717-- | convert an existing database context into its constituent expression.
18−databaseContextAsDatabaseContextExpr :: DatabaseContext -> DatabaseExpr
18+databaseContextAsDatabaseContextExpr :: DatabaseContext -> DatabaseContextExpr
1919databaseContextAsDatabaseContextExpr context = MultipleExpr $ incDepsExprs ++ relVarsExprs ++ funcsExprs
2020 where
2121 relVarsExprs = map (\(name, rel) -> Assign name (ExistingRelation rel)) (M.toList (relationVariables context))
22− incDepsExprs :: [DatabaseExpr]
22+ incDepsExprs :: [DatabaseContextExpr]
2323 incDepsExprs = map (\(name, dep) -> AddInclusionDependency name dep) (M.toList (inclusionDependencies context))
2424 funcsExprs = [] -- map (\func -> ) (HS.toList funcs) -- there are no databaseExprs to add atom functions yet
2525
ProjectM36/RelationalExpression.hs+1−1
@@ -175,7 +175,7 @@ deleteRelVar relVarName = do
175175 put $ currcontext { relationVariables = newRelVars }
176176 return Nothing
177177
178−evalContextExpr :: DatabaseExpr -> DatabaseState (Maybe RelationalError)
178+evalContextExpr :: DatabaseContextExpr -> DatabaseState (Maybe RelationalError)
179179evalContextExpr NoOperation = pure Nothing
180180
181181evalContextExpr (Define relVarName attrExprs) = do
ProjectM36/Server/EntryPoints.hs+2−2
@@ -14,7 +14,7 @@ handleExecuteRelationalExpr sessionId conn expr = do
1414 ret <- liftIO $ executeRelationalExpr sessionId conn expr
1515 reply ret conn
1616
17−handleExecuteDatabaseContextExpr :: SessionId -> Connection -> DatabaseExpr -> Process (ProcessReply (Maybe RelationalError) Connection)
17+handleExecuteDatabaseContextExpr :: SessionId -> Connection -> DatabaseContextExpr -> Process (ProcessReply (Maybe RelationalError) Connection)
1818handleExecuteDatabaseContextExpr sessionId conn dbexpr = do
1919 ret <- liftIO $ executeDatabaseContextExpr sessionId conn dbexpr
2020 reply ret conn
@@ -44,7 +44,7 @@ handleRetrieveInclusionDependencies sessionId conn = do
4444 ret <- liftIO $ inclusionDependencies sessionId conn
4545 reply ret conn
4646
47−handleRetrievePlanForDatabaseContextExpr :: SessionId -> Connection -> DatabaseExpr -> Process (ProcessReply (Either RelationalError DatabaseExpr) Connection)
47+handleRetrievePlanForDatabaseContextExpr :: SessionId -> Connection -> DatabaseContextExpr -> Process (ProcessReply (Either RelationalError DatabaseContextExpr) Connection)
4848handleRetrievePlanForDatabaseContextExpr sessionId conn dbExpr = do
4949 ret <- liftIO $ planForDatabaseContextExpr sessionId conn dbExpr
5050 reply ret conn
ProjectM36/Server/RemoteCallTypes.hs+2−2
@@ -16,7 +16,7 @@ data Logout = Logout
1616 deriving (Binary, Generic)
1717data ExecuteRelationalExpr = ExecuteRelationalExpr SessionId RelationalExpr
1818 deriving (Binary, Generic)
19−data ExecuteDatabaseContextExpr = ExecuteDatabaseContextExpr SessionId DatabaseExpr
19+data ExecuteDatabaseContextExpr = ExecuteDatabaseContextExpr SessionId DatabaseContextExpr
2020 deriving (Binary, Generic)
2121data ExecuteGraphExpr = ExecuteGraphExpr SessionId TransactionGraphOperator
2222 deriving (Binary, Generic)
@@ -26,7 +26,7 @@ data ExecuteTypeForRelationalExpr = ExecuteTypeForRelationalExpr SessionId Relat
2626 deriving (Binary, Generic)
2727data RetrieveInclusionDependencies = RetrieveInclusionDependencies SessionId
2828 deriving (Binary, Generic)
29−data RetrievePlanForDatabaseContextExpr = RetrievePlanForDatabaseContextExpr SessionId DatabaseExpr
29+data RetrievePlanForDatabaseContextExpr = RetrievePlanForDatabaseContextExpr SessionId DatabaseContextExpr
3030 deriving (Binary, Generic)
3131data RetrieveTransactionGraph = RetrieveTransactionGraph SessionId
3232 deriving (Binary, Generic)
ProjectM36/StaticOptimizer.hs+1−1
@@ -105,7 +105,7 @@ applyStaticRelationalOptimization e@(NotEquals _ _) = return $ Right e
105105
106106applyStaticRelationalOptimization e@(Extend _ _) = return $ Right e
107107
108−applyStaticDatabaseOptimization :: DatabaseExpr -> DatabaseState (Either RelationalError DatabaseExpr)
108+applyStaticDatabaseOptimization :: DatabaseContextExpr -> DatabaseState (Either RelationalError DatabaseContextExpr)
109109applyStaticDatabaseOptimization x@NoOperation = pure $ Right x
110110applyStaticDatabaseOptimization x@(Define _ _) = pure $ Right x
111111
TutorialD/Interpreter.hs+6−6
@@ -2,7 +2,7 @@
22module TutorialD.Interpreter where
33import TutorialD.Interpreter.Base
44import TutorialD.Interpreter.RODatabaseContextOperator
5−import TutorialD.Interpreter.DatabaseExpr
5+import TutorialD.Interpreter.DatabaseContextExpr
66import TutorialD.Interpreter.TransactionGraphOperator
77import TutorialD.Interpreter.InformationOperator
88
@@ -34,7 +34,7 @@ database ops are read-write operations which change the database context (such a
3434graph ops are read-write operations which change the transaction graph
3535-}
3636data ParsedOperation = RODatabaseContextOp RODatabaseContextOperator |
37− DatabaseExprOp DatabaseExpr |
37+ DatabaseContextExprOp DatabaseContextExpr |
3838 InfoOp InformationOperator |
3939 GraphOp TransactionGraphOperator |
4040 ROGraphOp ROTransactionGraphOperator |
@@ -47,7 +47,7 @@ interpreterParserP = liftM RODatabaseContextOp (roDatabaseContextOperatorP <* eo
4747 liftM InfoOp (infoOpP <* eof) <|>
4848 liftM GraphOp (transactionGraphOpP <* eof) <|>
4949 liftM ROGraphOp (roTransactionGraphOpP <* eof) <|>
50− liftM DatabaseExprOp (databaseExprOpP <* eof) <|>
50+ liftM DatabaseContextExprOp (databaseExprOpP <* eof) <|>
5151 liftM ImportRelVarOp (importCSVP <* eof) <|>
5252 liftM ImportDBContextOp (tutdImportP <* eof) <|>
5353 liftM RelVarExportOp (exportCSVP <* eof)
@@ -69,7 +69,7 @@ evalTutorialD sessionId conn expr = case expr of
6969 (RODatabaseContextOp execOp) -> do
7070 evalRODatabaseContextOp sessionId conn execOp
7171
72− (DatabaseExprOp execOp) -> do
72+ (DatabaseContextExprOp execOp) -> do
7373 maybeErr <- C.executeDatabaseContextExpr sessionId conn execOp
7474 case maybeErr of
7575 Just err -> barf err
@@ -97,13 +97,13 @@ evalTutorialD sessionId conn expr = case expr of
9797 exprErr <- evalRelVarDataImportOperator execOp (attributes importType)
9898 case exprErr of
9999 Left err -> barf err
100− Right dbexpr -> evalTutorialD sessionId conn (DatabaseExprOp dbexpr)
100+ Right dbexpr -> evalTutorialD sessionId conn (DatabaseContextExprOp dbexpr)
101101
102102 (ImportDBContextOp execOp) -> do
103103 mDbexprs <- evalDatabaseContextDataImportOperator execOp
104104 case mDbexprs of
105105 Left err -> barf err
106− Right dbexprs -> evalTutorialD sessionId conn (DatabaseExprOp dbexprs)
106+ Right dbexprs -> evalTutorialD sessionId conn (DatabaseContextExprOp dbexprs)
107107
108108 (InfoOp execOp) -> do
109109 case evalInformationOperator execOp of
TutorialD/Interpreter/DatabaseExpr.hs → TutorialD/Interpreter/DatabaseContextExpr.hsrenamed+26−26
@@ -1,5 +1,5 @@
11{-# LANGUAGE OverloadedStrings #-}
2−module TutorialD.Interpreter.DatabaseExpr where
2+module TutorialD.Interpreter.DatabaseContextExpr where
33import Text.Parsec
44import Text.Parsec.String
55import ProjectM36.Base
@@ -15,7 +15,7 @@ import ProjectM36.RelationalExpression
1515import ProjectM36.Key
1616
1717--parsers which create "database expressions" which modify the database context (such as relvar assignment)
18−databaseExprP :: Parser DatabaseExpr
18+databaseExprP :: Parser DatabaseContextExpr
1919databaseExprP = choice $ map (\p -> p <* optional commentP) [insertP,
2020 deleteConstraintP,
2121 deleteP,
@@ -31,13 +31,13 @@ databaseExprP = choice $ map (\p -> p <* optional commentP) [insertP,
3131 removeTypeConstructorP,
3232 nothingP]
3333
34−commentP :: Parser DatabaseExpr
34+commentP :: Parser DatabaseContextExpr
3535commentP = reserved "--" >> manyTill anyChar eof >> pure NoOperation
3636
37−nothingP :: Parser DatabaseExpr
37+nothingP :: Parser DatabaseContextExpr
3838nothingP = whiteSpace >> pure NoOperation
3939
40−assignP :: Parser DatabaseExpr
40+assignP :: Parser DatabaseContextExpr
4141assignP = do
4242 relVarName <- try $ do
4343 relVarName <- identifier
@@ -46,19 +46,19 @@ assignP = do
4646 expr <- relExprP
4747 return $ Assign (T.pack relVarName) expr
4848
49−multipleDatabaseExprP :: Parser DatabaseExpr
50−multipleDatabaseExprP = do
49+multipleDatabaseContextExprP :: Parser DatabaseContextExpr
50+multipleDatabaseContextExprP = do
5151 exprs <- sepBy1 databaseExprP semi
5252 return $ MultipleExpr exprs
5353
54−insertP :: Parser DatabaseExpr
54+insertP :: Parser DatabaseContextExpr
5555insertP = do
5656 reservedOp "insert"
5757 relvar <- identifier
5858 expr <- relExprP
5959 return $ Insert (T.pack relvar) expr
6060
61−defineP :: Parser DatabaseExpr
61+defineP :: Parser DatabaseContextExpr
6262defineP = do
6363 relVarName <- try $ do
6464 relVarName <- identifier
@@ -67,20 +67,20 @@ defineP = do
6767 attributeSet <- makeAttributeExprsP
6868 return $ Define (T.pack relVarName) attributeSet
6969
70−undefineP :: Parser DatabaseExpr
70+undefineP :: Parser DatabaseContextExpr
7171undefineP = do
7272 reservedOp "undefine"
7373 relVarName <- identifier
7474 return $ Undefine (T.pack relVarName)
7575
76−deleteP :: Parser DatabaseExpr
76+deleteP :: Parser DatabaseContextExpr
7777deleteP = do
7878 reservedOp "delete"
7979 relVarName <- identifier
8080 predicate <- option TruePredicate (reservedOp "where" *> restrictionPredicateP)
8181 return $ Delete (T.pack relVarName) predicate
8282
83−updateP :: Parser DatabaseExpr
83+updateP :: Parser DatabaseContextExpr
8484updateP = do
8585 reservedOp "update"
8686 relVarName <- identifier
@@ -90,7 +90,7 @@ updateP = do
9090
9191data IncDepOp = SubsetOp | EqualityOp
9292
93−addConstraintP :: Parser DatabaseExpr
93+addConstraintP :: Parser DatabaseContextExpr
9494addConstraintP = do
9595 reservedOp "constraint" <|> reservedOp "foreign key"
9696 constraintName <- identifier
@@ -106,14 +106,14 @@ addConstraintP = do
106106
107107
108108
109−deleteConstraintP :: Parser DatabaseExpr
109+deleteConstraintP :: Parser DatabaseContextExpr
110110deleteConstraintP = do
111111 reserved "deleteconstraint"
112112 constraintName <- identifier
113113 return $ RemoveInclusionDependency (T.pack constraintName)
114114
115115-- key <constraint name> {<uniqueness attributes>} <uniqueness relexpr>
116−keyP :: Parser DatabaseExpr
116+keyP :: Parser DatabaseContextExpr
117117keyP = do
118118 reserved "key"
119119 keyName <- identifier
@@ -129,7 +129,7 @@ attributeAssignmentP = do
129129 atom <- stringAtomP <|> intAtomP
130130 return $ (attrName, atom)
131131
132−addNotificationP :: Parser DatabaseExpr
132+addNotificationP :: Parser DatabaseContextExpr
133133addNotificationP = do
134134 reserved "notify"
135135 notName <- identifier
@@ -137,14 +137,14 @@ addNotificationP = do
137137 resultExpr <- relExprP
138138 return $ AddNotification (T.pack notName) triggerExpr resultExpr
139139
140−removeNotificationP :: Parser DatabaseExpr
140+removeNotificationP :: Parser DatabaseContextExpr
141141removeNotificationP = do
142142 reserved "unnotify"
143143 notName <- identifier
144144 return $ RemoveNotification (T.pack notName)
145145
146146-- | data Hair = Bald | Color Text
147−addTypeConstructorP :: Parser DatabaseExpr
147+addTypeConstructorP :: Parser DatabaseContextExpr
148148addTypeConstructorP = do
149149 reserved "data"
150150 typeConstructorDef <- typeConstructorDefP
@@ -152,26 +152,26 @@ addTypeConstructorP = do
152152 dataConstructorDefs <- sepBy1 dataConstructorDefP pipe
153153 pure (AddTypeConstructor typeConstructorDef dataConstructorDefs)
154154
155−removeTypeConstructorP :: Parser DatabaseExpr
155+removeTypeConstructorP :: Parser DatabaseContextExpr
156156removeTypeConstructorP = do
157157 reserved "undata"
158158 RemoveTypeConstructor <$> liftM T.pack identifier
159159
160−databaseExprOpP :: Parser DatabaseExpr
161−databaseExprOpP = multipleDatabaseExprP
160+databaseExprOpP :: Parser DatabaseContextExpr
161+databaseExprOpP = multipleDatabaseContextExprP
162162
163−evalDatabaseExpr :: Bool -> DatabaseContext -> DatabaseExpr -> Either RelationalError DatabaseContext
164−evalDatabaseExpr useOptimizer context expr = do
163+evalDatabaseContextExpr :: Bool -> DatabaseContext -> DatabaseContextExpr -> Either RelationalError DatabaseContext
164+evalDatabaseContextExpr useOptimizer context expr = do
165165 optimizedExpr <- evalState (applyStaticDatabaseOptimization expr) context
166166 case runState (evalContextExpr (if useOptimizer then optimizedExpr else expr)) context of
167167 (Nothing, context') -> Right context'
168168 (Just err, _) -> Left err
169169
170170
171−interpretDatabaseExpr :: DatabaseContext -> String -> Either RelationalError DatabaseContext
172−interpretDatabaseExpr context tutdstring = case parse databaseExprOpP "" tutdstring of
171+interpretDatabaseContextExpr :: DatabaseContext -> String -> Either RelationalError DatabaseContext
172+interpretDatabaseContextExpr context tutdstring = case parse databaseExprOpP "" tutdstring of
173173 Left err -> Left $ ParseError (T.pack (show err))
174− Right parsed -> evalDatabaseExpr True context parsed
174+ Right parsed -> evalDatabaseContextExpr True context parsed
175175
176176{-
177177--no optimization
TutorialD/Interpreter/Import/Base.hs+4−4
@@ -3,15 +3,15 @@ import ProjectM36.Base
33import ProjectM36.Error
44
55-- | import data into a relation variable
6−data RelVarDataImportOperator = RelVarDataImportOperator RelVarName FilePath (RelVarName -> Attributes -> FilePath -> IO (Either RelationalError DatabaseExpr))
6+data RelVarDataImportOperator = RelVarDataImportOperator RelVarName FilePath (RelVarName -> Attributes -> FilePath -> IO (Either RelationalError DatabaseContextExpr))
77
88-- | import data into a database context
9−data DatabaseContextDataImportOperator = DatabaseContextDataImportOperator FilePath (FilePath -> IO (Either RelationalError DatabaseExpr))
9+data DatabaseContextDataImportOperator = DatabaseContextDataImportOperator FilePath (FilePath -> IO (Either RelationalError DatabaseContextExpr))
1010
1111-- perhaps create a structure to import a whole transaction graph section in the future
1212
13−evalRelVarDataImportOperator :: RelVarDataImportOperator -> Attributes -> IO (Either RelationalError DatabaseExpr)
13+evalRelVarDataImportOperator :: RelVarDataImportOperator -> Attributes -> IO (Either RelationalError DatabaseContextExpr)
1414evalRelVarDataImportOperator (RelVarDataImportOperator relVarName path importFunc) attrs = importFunc relVarName attrs path
1515
16−evalDatabaseContextDataImportOperator :: DatabaseContextDataImportOperator -> IO (Either RelationalError DatabaseExpr)
16+evalDatabaseContextDataImportOperator :: DatabaseContextDataImportOperator -> IO (Either RelationalError DatabaseContextExpr)
1717evalDatabaseContextDataImportOperator (DatabaseContextDataImportOperator path importFunc) = importFunc path
TutorialD/Interpreter/Import/CSV.hs+1−1
@@ -9,7 +9,7 @@ import Text.Parsec.String
99import TutorialD.Interpreter.Base
1010import Control.Exception
1111
12−importCSVRelation :: RelVarName -> Attributes -> FilePath -> IO (Either RelationalError DatabaseExpr)
12+importCSVRelation :: RelVarName -> Attributes -> FilePath -> IO (Either RelationalError DatabaseContextExpr)
1313importCSVRelation relVarName attrs pathIn = do
1414 --TODO: handle filesystem errors
1515 csvData <- try (BS.readFile pathIn) :: IO (Either IOError BS.ByteString)
TutorialD/Interpreter/Import/TutorialD.hs+2−2
@@ -2,7 +2,7 @@ module TutorialD.Interpreter.Import.TutorialD where
22import ProjectM36.Base
33import TutorialD.Interpreter.Import.Base
44import TutorialD.Interpreter.Base
5−import TutorialD.Interpreter.DatabaseExpr
5+import TutorialD.Interpreter.DatabaseContextExpr
66import Text.Parsec.String
77import Text.Parsec hiding (try)
88import ProjectM36.Error
@@ -11,7 +11,7 @@ import qualified Data.Text as T
1111import Control.Exception
1212--import a file containing TutorialD database context expressions
1313
14−importTutorialD :: FilePath -> IO (Either RelationalError DatabaseExpr)
14+importTutorialD :: FilePath -> IO (Either RelationalError DatabaseContextExpr)
1515importTutorialD pathIn = do
1616 tutdData <- try (readFile pathIn) :: IO (Either IOError String)
1717 case tutdData of
TutorialD/Interpreter/RODatabaseContextOperator.hs+2−2
@@ -6,7 +6,7 @@ import Text.Parsec
66import Text.Parsec.String
77import TutorialD.Interpreter.Base
88import TutorialD.Interpreter.RelationalExpr
9−import TutorialD.Interpreter.DatabaseExpr
9+import TutorialD.Interpreter.DatabaseContextExpr
1010import Control.Monad.State
1111import qualified Data.Text as T
1212import ProjectM36.Relation.Show.Term
@@ -20,7 +20,7 @@ data RODatabaseContextOperator where
2020 PlotRelation :: RelationalExpr -> RODatabaseContextOperator
2121 ShowRelationType :: RelationalExpr -> RODatabaseContextOperator
2222 ShowConstraint :: StringType -> RODatabaseContextOperator
23− ShowPlan :: DatabaseExpr -> RODatabaseContextOperator
23+ ShowPlan :: DatabaseContextExpr -> RODatabaseContextOperator
2424 ShowTypes :: RODatabaseContextOperator
2525 ShowRelationVariables :: RODatabaseContextOperator
2626 Quit :: RODatabaseContextOperator
benchmark/bigrel.hs+2−2
@@ -8,7 +8,7 @@ import qualified ProjectM36.Attribute as A
88import qualified Data.Text as T
99import ProjectM36.Relation.Show.CSV
1010import ProjectM36.Relation.Show.HTML
11−import TutorialD.Interpreter.DatabaseExpr (interpretDatabaseExpr)
11+import TutorialD.Interpreter.DatabaseContextExpr (interpretDatabaseContextExpr)
1212import ProjectM36.RelationalExpression
1313import qualified Data.HashSet as HS
1414import qualified Data.ByteString.Lazy.Char8 as BS
@@ -58,7 +58,7 @@ matrixRun (BigrelArgs attributeCount tupleCount tutd) = do
5858 else do
5959 let setx = Assign "x" (ExistingRelation (force rel))
6060 context = execState (evalContextExpr setx) dateExamples
61− interpreted = interpretDatabaseExpr context tutd
61+ interpreted = interpretDatabaseContextExpr context tutd
6262 --plan = interpretRODatabaseContextOp context $ ":showplan " ++ tutd
6363 --displayOpResult plan
6464 case interpreted of
project-m36.cabal+2−2
@@ -161,7 +161,7 @@ Executable tutd
161161 ProjectM36.Transaction,
162162 TutorialD.Interpreter,
163163 TutorialD.Interpreter.Base,
164− TutorialD.Interpreter.DatabaseExpr,
164+ TutorialD.Interpreter.DatabaseContextExpr,
165165 TutorialD.Interpreter.RODatabaseContextOperator,
166166 TutorialD.Interpreter.TransactionGraphOperator,
167167 TutorialD.Interpreter.DataTypes.Interval,
@@ -341,7 +341,7 @@ Executable bigrel
341341 ProjectM36.TypeConstructor,
342342 ProjectM36.TypeConstructorDef,
343343 TutorialD.Interpreter.Base,
344− TutorialD.Interpreter.DatabaseExpr,
344+ TutorialD.Interpreter.DatabaseContextExpr,
345345 TutorialD.Interpreter.RelationalExpr,
346346 TutorialD.Interpreter.Types
347347 main-is: benchmark/bigrel.hs
test/TransactionGraph/Persist.hs+2−2
@@ -11,7 +11,7 @@ import System.Exit
1111import Data.Either
1212import Data.UUID.V4 (nextRandom)
1313import System.FilePath
14−import TutorialD.Interpreter.DatabaseExpr
14+import TutorialD.Interpreter.DatabaseContextExpr
1515
1616main :: IO ()
1717main = do
@@ -40,7 +40,7 @@ testDBSimplePersistence = TestCase $ withSystemTempDirectory "m36testdb" $ \temp
4040 case transactionForHead "master" graph of
4141 Nothing -> assertFailure "Failed to retrieve head transaction for master branch."
4242 Just headTrans -> do
43− case interpretDatabaseExpr (transactionContext headTrans) "x:=s" of
43+ case interpretDatabaseContextExpr (transactionContext headTrans) "x:=s" of
4444 Left err -> assertFailure (show err)
4545 Right context' -> do
4646 freshUUID' <- nextRandom
test/TutorialD/Interpreter.hs+2−2
@@ -1,5 +1,5 @@
11{-# LANGUAGE OverloadedStrings #-}
2−import TutorialD.Interpreter.DatabaseExpr
2+import TutorialD.Interpreter.DatabaseContextExpr
33import TutorialD.Interpreter
44import TutorialD.Interpreter.Base
55import Test.HUnit
@@ -123,7 +123,7 @@ main = do
123123assertTutdEqual :: DatabaseContext -> Either RelationalError Relation -> String -> Assertion
124124assertTutdEqual databaseContext expected tutd = assertEqual tutd expected interpreted
125125 where
126− interpreted = case interpretDatabaseExpr databaseContext tutd of
126+ interpreted = case interpretDatabaseContextExpr databaseContext tutd of
127127 Left err -> Left err
128128 Right context -> case M.lookup "x" (relationVariables context) of
129129 Nothing -> Left $ RelVarNotDefinedError "x"