module ProjectM36.DisconnectedTransaction where import ProjectM36.Base import Data.Map concreteDatabaseContext :: DisconnectedTransaction -> DatabaseContext concreteDatabaseContext :: DisconnectedTransaction -> DatabaseContext concreteDatabaseContext (DisconnectedTransaction TransactionId _ (Schemas DatabaseContext context Subschemas _) DirtyFlag _) = DatabaseContext context schemas :: DisconnectedTransaction -> Schemas schemas :: DisconnectedTransaction -> Schemas schemas (DisconnectedTransaction TransactionId _ Schemas s DirtyFlag _) = Schemas s loadGraphRefRelVarsOnly :: TransactionId -> Schemas -> Schemas loadGraphRefRelVarsOnly :: TransactionId -> Schemas -> Schemas loadGraphRefRelVarsOnly TransactionId commitId (Schemas DatabaseContext concreteCtx Subschemas subschemas) = let f :: RelVarName -> p -> RelationalExprBase GraphRefTransactionMarker f RelVarName k p _ = forall a. RelVarName -> a -> RelationalExprBase a RelationVariable RelVarName k (TransactionId -> GraphRefTransactionMarker TransactionMarker TransactionId commitId) ctx' :: DatabaseContext ctx' = DatabaseContext concreteCtx { relationVariables :: RelationVariables relationVariables = forall k a b. (k -> a -> b) -> Map k a -> Map k b mapWithKey forall {p}. RelVarName -> p -> RelationalExprBase GraphRefTransactionMarker f (DatabaseContext -> RelationVariables relationVariables DatabaseContext concreteCtx)} in DatabaseContext -> Subschemas -> Schemas Schemas DatabaseContext ctx' Subschemas subschemas parentId :: DisconnectedTransaction -> TransactionId parentId :: DisconnectedTransaction -> TransactionId parentId (DisconnectedTransaction TransactionId pid Schemas _ DirtyFlag _) = TransactionId pid isDirty :: DisconnectedTransaction -> Bool isDirty :: DisconnectedTransaction -> DirtyFlag isDirty (DisconnectedTransaction TransactionId _ Schemas _ DirtyFlag flag) = DirtyFlag flag freshTransaction :: TransactionId -> Schemas -> DisconnectedTransaction freshTransaction :: TransactionId -> Schemas -> DisconnectedTransaction freshTransaction TransactionId tid Schemas schemas' = TransactionId -> Schemas -> DirtyFlag -> DisconnectedTransaction DisconnectedTransaction TransactionId tid Schemas schemas' DirtyFlag False