project-m36-0.9.4: Relational Algebra Engine
Safe HaskellNone
LanguageHaskell2010

ProjectM36.RelationalExpression

Synopsis

Documentation

mkDatabaseContextEvalState :: DatabaseContext -> DatabaseContextEvalState Source #

Used to start a fresh database state for a new database context expression.

data DatabaseContextIOEvalEnv Source #

Constructors

DatabaseContextIOEvalEnv 

Fields

liftE :: Monad m => m (Either a b) -> ExceptT a m b Source #

verifyGraphRefAtomExprTypes :: Relation -> GraphRefAtomExpr -> AtomType -> GraphRefRelationalExprM AtomType Source #

Validate that the type of the AtomExpr matches the expected type.

evalGraphRefAttrExpr :: GraphRefAttributeExpr -> GraphRefRelationalExprM Attribute Source #

Look up the type's name and create a new attribute.

relationVariablesAsRelation :: DatabaseContext -> TransactionGraph -> Either RelationalError Relation Source #

Return a Relation describing the relation variables.

evalRelationalExpr :: RelationalExpr -> RelationalExprM Relation Source #

An unoptimized variant of evalGraphRefRelationalExpr for testing.

class ResolveGraphRefTransactionMarker a where Source #

resolve UncommittedTransactionMarker whenever possible- this is important in the DatabaseContext in order to mitigate self-referencing loops for updates

Instances

Instances details
ResolveGraphRefTransactionMarker GraphRefTupleExprs Source # 
Instance details

Defined in ProjectM36.RelationalExpression

ResolveGraphRefTransactionMarker GraphRefTupleExpr Source # 
Instance details

Defined in ProjectM36.RelationalExpression

ResolveGraphRefTransactionMarker GraphRefAttributeNames Source # 
Instance details

Defined in ProjectM36.RelationalExpression

ResolveGraphRefTransactionMarker GraphRefExtendTupleExpr Source # 
Instance details

Defined in ProjectM36.RelationalExpression

ResolveGraphRefTransactionMarker GraphRefAtomExpr Source # 
Instance details

Defined in ProjectM36.RelationalExpression

ResolveGraphRefTransactionMarker GraphRefRestrictionPredicateExpr Source # 
Instance details

Defined in ProjectM36.RelationalExpression

ResolveGraphRefTransactionMarker GraphRefRelationalExpr Source # 
Instance details

Defined in ProjectM36.RelationalExpression

ResolveGraphRefTransactionMarker GraphRefWithNameExpr Source # 
Instance details

Defined in ProjectM36.RelationalExpression