on master help sign in
rename evalContextExpr -> evalDatabaseContextExpr across the board
commit016c15284664caab45b8ec94d8e0eb3c888891dc authorAgentM <agentm@themactionfaction.com> dateFri 3 Mar 2017, 11:42 (10 years ago) parent9b6ae14
8 files changed+29−29
src/bin/TutorialD/Interpreter/DatabaseContextExpr.hs+5−5 src/bin/benchmark/bigrel.hs+1−1 src/lib/ProjectM36/Client.hs+1−1 src/lib/ProjectM36/DatabaseContextExpression.hs+17−17 src/lib/ProjectM36/IsomorphicSchema.hs+1−1 src/lib/ProjectM36/StaticOptimizer/DatabaseContextExpression.hs+1−1 test/IsomorphicSchema.hs+1−1 test/TransactionGraph/Merge.hs+2−2
src/bin/TutorialD/Interpreter/DatabaseContextExpr.hs+5−5
@@ -9,7 +9,7 @@ import TutorialD.Interpreter.Types
99import qualified Data.Map as M
1010import Control.Monad.State
1111import ProjectM36.StaticOptimizer.DatabaseContextExpression
12−import ProjectM36.DatabaseContextExpression
12+import ProjectM36.DatabaseContextExpression
1313import qualified ProjectM36.Error as PM36E
1414import ProjectM36.Error
1515import ProjectM36.Key
@@ -182,17 +182,17 @@ removeAtomFunctionP = do
182182databaseExprOpP :: Parser DatabaseContextExpr
183183databaseExprOpP = multipleDatabaseContextExprP
184184
185−evalDatabaseContextExpr :: Bool -> DatabaseContextExpr -> DatabaseState (Maybe RelationalError)
186−evalDatabaseContextExpr useOptimizer expr = do
185+evalDatabaseContextExprWithOpt :: Bool -> DatabaseContextExpr -> DatabaseState (Maybe RelationalError)
186+evalDatabaseContextExprWithOpt useOptimizer expr = do
187187 eOptimizedExpr <- applyStaticDatabaseOptimization expr
188188 case eOptimizedExpr of
189189 Left err -> pure (Just err)
190− Right optimizedExpr -> evalContextExpr (if useOptimizer then optimizedExpr else expr)
190+ Right optimizedExpr -> evalDatabaseContextExpr (if useOptimizer then optimizedExpr else expr)
191191
192192interpretDatabaseContextExpr :: DatabaseContext -> T.Text -> Either RelationalError DatabaseContext
193193interpretDatabaseContextExpr context tutdstring = case parse databaseExprOpP "" tutdstring of
194194 Left err -> Left $ PM36E.ParseError (T.pack (show err))
195− Right parsed -> case runState (evalDatabaseContextExpr True parsed) dbContextState of
195+ Right parsed -> case runState (evalDatabaseContextExprWithOpt True parsed) dbContextState of
196196 (Just err, _) -> Left err
197197 (Nothing, evaldState) -> Right (dbcontext evaldState)
198198 where
src/bin/benchmark/bigrel.hs+1−1
@@ -59,7 +59,7 @@ matrixRun (BigrelArgs attributeCount tupleCount tutd) = do
5959 putStrLn "Done."
6060 else do
6161 let setx = Assign "x" (ExistingRelation (force rel))
62− context = execState (evalContextExpr setx) dateExamples
62+ context = execState (evalDatabaseContextExpr setx) dateExamples
6363 interpreted = interpretDatabaseContextExpr context tutd
6464 --plan = interpretRODatabaseContextOp context $ ":showplan " ++ tutd
6565 --displayOpResult plan
src/lib/ProjectM36/Client.hs+1−1
@@ -527,7 +527,7 @@ executeDatabaseContextExpr sessionId (InProcessConnection conf) expr = excMaybe
527527 Schema.processDatabaseContextExprInSchema schema expr
528528 case expr' of
529529 Left err -> pure (Just err)
530− Right expr'' -> case runState (DCE.evalContextExpr expr'') (defaultDatabaseContextEvalState (Sess.concreteDatabaseContext session)) of
530+ Right expr'' -> case runState (DCE.evalDatabaseContextExpr expr'') (defaultDatabaseContextEvalState (Sess.concreteDatabaseContext session)) of
531531 (Just err,_) -> return $ Just err
532532 (Nothing, evaldState) -> do
533533 let newDiscon = DisconnectedTransaction (Sess.parentId session) newSchemas
src/lib/ProjectM36/DatabaseContextExpression.hs+17−17
@@ -80,10 +80,10 @@ deleteRelVar expr relVarName = do
8080 newContext = currContext { relationVariables = newRelVars }
8181 validateConstraints expr newContext
8282
83−evalContextExpr :: DatabaseContextExpr -> DatabaseState (Maybe RelationalError)
84−evalContextExpr NoOperation = pure Nothing
83+evalDatabaseContextExpr :: DatabaseContextExpr -> DatabaseState (Maybe RelationalError)
84+evalDatabaseContextExpr NoOperation = pure Nothing
8585
86−evalContextExpr expr@(Define relVarName attrExprs) = do
86+evalDatabaseContextExpr expr@(Define relVarName attrExprs) = do
8787 relvars <- liftM relationVariables getDatabaseContext
8888 tConss <- liftM typeConstructorMapping getDatabaseContext
8989 let eAttrs = map (evalAttrExpr tConss) attrExprs
@@ -96,10 +96,10 @@ evalContextExpr expr@(Define relVarName attrExprs) = do
9696 attrs = A.attributesFromList (rights eAttrs)
9797 emptyRelation = Relation attrs emptyTupleSet
9898
99−evalContextExpr expr@(Undefine relVarName) = do
99+evalDatabaseContextExpr expr@(Undefine relVarName) = do
100100 deleteRelVar expr relVarName
101101
102−evalContextExpr ex@(Assign relVarName expr) = do
102+evalDatabaseContextExpr ex@(Assign relVarName expr) = do
103103 -- in the future, it would be nice to get types from the RelationalExpr instead of needing to evaluate it
104104 context <- getDatabaseContext
105105 let existingRelVar = M.lookup relVarName relVarTable
@@ -116,9 +116,9 @@ evalContextExpr ex@(Assign relVarName expr) = do
116116 else
117117 return $ Just (RelVarAssignmentTypeMismatchError expectedAttributes foundAttributes)
118118
119−evalContextExpr (Insert relVarName relExpr) = evalContextExpr $ Assign relVarName (Union relExpr (RelationVariable relVarName ()))
119+evalDatabaseContextExpr (Insert relVarName relExpr) = evalDatabaseContextExpr $ Assign relVarName (Union relExpr (RelationVariable relVarName ()))
120120
121−evalContextExpr expr@(Delete relVarName predicate) = do
121+evalDatabaseContextExpr expr@(Delete relVarName predicate) = do
122122 context <- getDatabaseContext
123123 let updatedRel = evalState (evalRelationalExpr (Restrict (NotPredicate predicate) (RelationVariable relVarName ()))) (RelationalExprStateElems context)
124124 case updatedRel of
@@ -126,7 +126,7 @@ evalContextExpr expr@(Delete relVarName predicate) = do
126126 Right rel -> setRelVar expr relVarName rel
127127
128128--union of restricted+updated portion and the unrestricted+unupdated portion
129−evalContextExpr expr@(Update relVarName atomExprMap restrictionPredicateExpr) = do
129+evalDatabaseContextExpr expr@(Update relVarName atomExprMap restrictionPredicateExpr) = do
130130 context <- getDatabaseContext
131131 let relVarTable = relationVariables context
132132 case M.lookup relVarName relVarTable of
@@ -145,7 +145,7 @@ evalContextExpr expr@(Update relVarName atomExprMap restrictionPredicateExpr) =
145145 updatedPortion <- relMap (updateTupleWithAtomExprs atomExprMap context) restrictedPortion
146146 union updatedPortion unrestrictedPortion
147147
148−evalContextExpr expr@(AddInclusionDependency newDepName newDep) = do
148+evalDatabaseContextExpr expr@(AddInclusionDependency newDepName newDep) = do
149149 currContext <- getDatabaseContext
150150 let currDeps = inclusionDependencies currContext
151151 newDeps = M.insert newDepName newDep currDeps
@@ -156,7 +156,7 @@ evalContextExpr expr@(AddInclusionDependency newDepName newDep) = do
156156 --when adding a constraint, it is new and must be unconditionally validated without being optimized away
157157 validateConstraints expr potentialContext
158158
159−evalContextExpr (RemoveInclusionDependency depName) = do
159+evalDatabaseContextExpr (RemoveInclusionDependency depName) = do
160160 currContext <- getDatabaseContext
161161 let currDeps = inclusionDependencies currContext
162162 newDeps = M.delete depName currDeps
@@ -167,7 +167,7 @@ evalContextExpr (RemoveInclusionDependency depName) = do
167167 return Nothing
168168
169169-- | Add a notification which will send the resultExpr when triggerExpr changes between commits.
170−evalContextExpr (AddNotification notName triggerExpr resultExpr) = do
170+evalDatabaseContextExpr (AddNotification notName triggerExpr resultExpr) = do
171171 currentContext <- getDatabaseContext
172172 let nots = notifications currentContext
173173 if M.member notName nots then
@@ -179,7 +179,7 @@ evalContextExpr (AddNotification notName triggerExpr resultExpr) = do
179179 putDatabaseContext $ currentContext { notifications = newNotifications }
180180 return Nothing
181181
182−evalContextExpr (RemoveNotification notName) = do
182+evalDatabaseContextExpr (RemoveNotification notName) = do
183183 currentContext <- getDatabaseContext
184184 let nots = notifications currentContext
185185 if M.notMember notName nots then
@@ -191,7 +191,7 @@ evalContextExpr (RemoveNotification notName) = do
191191
192192-- | Adds type and data constructors to the database context.
193193-- validate that the type *and* constructor names are unique! not yet implemented!
194−evalContextExpr (AddTypeConstructor tConsDef dConsDefList) = do
194+evalDatabaseContextExpr (AddTypeConstructor tConsDef dConsDefList) = do
195195 currentContext <- getDatabaseContext
196196 let oldTypes = typeConstructorMapping currentContext
197197 tConsName = TCD.name tConsDef
@@ -209,7 +209,7 @@ evalContextExpr (AddTypeConstructor tConsDef dConsDefList) = do
209209 pure Nothing
210210
211211-- | Removing the atom constructor prevents new atoms of the type from being created. Existing atoms of the type remain. Thus, the atomTypes list in the DatabaseContext need not be all-inclusive.
212−evalContextExpr (RemoveTypeConstructor tConsName) = do
212+evalDatabaseContextExpr (RemoveTypeConstructor tConsName) = do
213213 currentContext <- getDatabaseContext
214214 let oldTypes = typeConstructorMapping currentContext
215215 if findTypeConstructor tConsName oldTypes == Nothing then
@@ -219,15 +219,15 @@ evalContextExpr (RemoveTypeConstructor tConsName) = do
219219 putDatabaseContext $ currentContext { typeConstructorMapping = newTypes }
220220 pure Nothing
221221
222−evalContextExpr (MultipleExpr exprs) = do
222+evalDatabaseContextExpr (MultipleExpr exprs) = do
223223 --the multiple expressions must pass the same context around- not the old unmodified context
224− evald <- forM exprs evalContextExpr
224+ evald <- forM exprs evalDatabaseContextExpr
225225 --some lifting magic needed here
226226 case catMaybes evald of
227227 [] -> return $ Nothing
228228 err:_ -> return $ Just err
229229
230−evalContextExpr (RemoveAtomFunction funcName) = do
230+evalDatabaseContextExpr (RemoveAtomFunction funcName) = do
231231 currentContext <- getDatabaseContext
232232 let atomFuncs = atomFunctions currentContext
233233 dudFunc = emptyAtomFunction funcName -- just for lookup in the hashset
src/lib/ProjectM36/IsomorphicSchema.hs+1−1
@@ -332,7 +332,7 @@ evalSchemaExpr (AddSubschema sname morphs) sschemas = do
332332 let newSchemas = M.insert sname newSchema sschemas
333333 moreIncDeps = foldr (\morph acc -> M.union acc (createIncDepsForIsomorph sname morph)) M.empty morphs
334334 incDepExprs = MultipleExpr (map (uncurry AddInclusionDependency) (M.toList moreIncDeps))
335− mErr <- evalContextExpr incDepExprs
335+ mErr <- evalDatabaseContextExpr incDepExprs
336336 case mErr of
337337 Just err -> pure (Left err)
338338 Nothing -> pure (Right newSchemas)
src/lib/ProjectM36/StaticOptimizer/DatabaseContextExpression.hs+1−1
@@ -79,7 +79,7 @@ applyStaticDatabaseOptimization (MultipleExpr exprs) = do
7979 where
8080 substateRunner = forM exprs $ \expr -> do
8181 --a previous expression could create a relvar, we don't want to miss it, so we clear the tuples and execute the expression to get an empty relation in the relvar
82− _ <- evalContextExpr expr
82+ _ <- evalDatabaseContextExpr expr
8383 applyStaticDatabaseOptimization expr
8484 --this error handling could be improved with some lifting presumably
8585 --restore original context
test/IsomorphicSchema.hs+1−1
@@ -102,7 +102,7 @@ testIsoRestrict = TestCase $ do
102102 bobRel <- assertEither (mkRelationFromList empattrs [[TextAtom "Bob", TextAtom ""]])
103103 let schemaBInsertExpr = Insert "employee" (ExistingRelation bobRel)
104104 schemaBInsertExpr' <- assertEither (processDatabaseContextExprInSchema (Schema isomorphsAtoB) schemaBInsertExpr)
105− let postInsertState = execState (evalContextExpr schemaBInsertExpr') (defaultDatabaseContextEvalState (stateContext schemaA))
105+ let postInsertState = execState (evalDatabaseContextExpr schemaBInsertExpr') (defaultDatabaseContextEvalState (stateContext schemaA))
106106 expectedRel = evalState (evalRelationalExpr (Union (RelationVariable "boss" ()) (RelationVariable "nonboss" ()))) (mkRelationalExprState (dbcontext postInsertState))
107107 --execute the expression against the schema and compare against the base context
108108 processedExpr <- assertEither (processRelationalExprInSchema (Schema isomorphsAtoB) (RelationVariable "employee" ()))
test/TransactionGraph/Merge.hs+2−2
@@ -120,7 +120,7 @@ testSubGraphToFirstAncestorMoreTransactions = TestCase $ do
120120
121121 -- add another relvar to branchB
122122 branchBTrans <- assertMaybe (transactionForHead "branchB" graph) "failed to get branchB head"
123− updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (defaultDatabaseContextEvalState (concreteDatabaseContext branchBTrans)) of
123+ updatedBranchBContext <- case runState (evalDatabaseContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (defaultDatabaseContextEvalState (concreteDatabaseContext branchBTrans)) of
124124 (Just err, _) -> assertFailure (show err) >> undefined
125125 (Nothing, context) -> pure context
126126 (_, graph') <- addTransaction "branchB" (createTrans (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) (dbcontext updatedBranchBContext)) graph
@@ -147,7 +147,7 @@ testSelectedBranchMerge = TestCase $ do
147147
148148 -- add another relvar to branchB
149149 branchBTrans <- assertMaybe (transactionForHead "branchB" graph) "failed to get branchB head"
150− updatedBranchBContext <- case runState (evalContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (defaultDatabaseContextEvalState (concreteDatabaseContext branchBTrans)) of
150+ updatedBranchBContext <- case runState (evalDatabaseContextExpr (Assign "branchBOnlyRelvar" (ExistingRelation relationTrue))) (defaultDatabaseContextEvalState (concreteDatabaseContext branchBTrans)) of
151151 (Just err, _) -> assertFailure (show err) >> undefined
152152 (Nothing, context) -> pure context
153153 (_, graph') <- addTransaction "branchB" (createTrans (fakeUUID 3) (TransactionInfo (transactionId branchBTrans) S.empty) (dbcontext updatedBranchBContext)) graph