Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data GraphRefSOptRelationalExprEnv = GraphRefSOptRelationalExprEnv {}
- type GraphRefSOptRelationalExprM a = ReaderT GraphRefSOptRelationalExprEnv (ExceptT RelationalError Identity) a
- data GraphRefSOptDatabaseContextExprEnv = GraphRefSOptDatabaseContextExprEnv {}
- type GraphRefSOptDatabaseContextExprM a = ReaderT GraphRefSOptDatabaseContextExprEnv (ExceptT RelationalError Identity) a
- optimizeAndEvalRelationalExpr :: RelationalExprEnv -> RelationalExpr -> Either RelationalError Relation
- class Monad m => AskGraphContext m where
- askTransId :: GraphRefSOptDatabaseContextExprM TransactionId
- askMaybeContext :: GraphRefSOptRelationalExprM (Maybe DatabaseContext)
- optimizeDatabaseContextExpr :: DatabaseContextExpr -> GraphRefSOptDatabaseContextExprM GraphRefDatabaseContextExpr
- optimizeAndEvalDatabaseContextExpr :: Bool -> DatabaseContextExpr -> DatabaseContextEvalMonad ()
- optimizeAndEvalTransGraphRelationalExpr :: TransactionGraph -> TransGraphRelationalExpr -> Either RelationalError Relation
- optimizeAndEvalDatabaseContextIOExpr :: DatabaseContextIOExpr -> DatabaseContextIOEvalMonad (Either RelationalError ())
- runGraphRefSOptRelationalExprM :: Maybe DatabaseContext -> TransactionGraph -> GraphRefSOptRelationalExprM a -> Either RelationalError a
- runGraphRefSOptDatabaseContextExprM :: TransactionId -> DatabaseContext -> TransactionGraph -> GraphRefSOptDatabaseContextExprM a -> Either RelationalError a
- optimizeGraphRefRelationalExpr' :: Maybe DatabaseContext -> TransactionGraph -> GraphRefRelationalExpr -> Either RelationalError GraphRefRelationalExpr
- liftGraphRefRelExpr :: GraphRefSOptRelationalExprM a -> GraphRefSOptDatabaseContextExprM a
- fullOptimizeGraphRefRelationalExpr :: GraphRefRelationalExpr -> GraphRefSOptRelationalExprM GraphRefRelationalExpr
- optimizeGraphRefRelationalExpr :: GraphRefRelationalExpr -> GraphRefSOptRelationalExprM GraphRefRelationalExpr
- optimizeGraphRefDatabaseContextExpr :: GraphRefDatabaseContextExpr -> GraphRefSOptDatabaseContextExprM GraphRefDatabaseContextExpr
- applyStaticPredicateOptimization :: GraphRefRestrictionPredicateExpr -> GraphRefSOptRelationalExprM GraphRefRestrictionPredicateExpr
- isTrueExpr :: RestrictionPredicateExprBase a -> Bool
- isFalseExpr :: RestrictionPredicateExprBase a -> Bool
- isEmptyRelationExpr :: RelationalExprBase a -> Bool
- replaceStaticAtomExprs :: GraphRefRestrictionPredicateExpr -> Map AttributeName GraphRefAtomExpr -> GraphRefRestrictionPredicateExpr
- findStaticRestrictionPredicates :: GraphRefRestrictionPredicateExpr -> Map AttributeName GraphRefAtomExpr
- isStaticAtomExpr :: AtomExpr -> Bool
- applyStaticJoinElimination :: GraphRefRelationalExpr -> GraphRefSOptRelationalExprM GraphRefRelationalExpr
- applyStaticRestrictionCollapse :: GraphRefRelationalExpr -> GraphRefRelationalExpr
- sequentialRestrictions :: RelationalExprBase a -> [RelationalExprBase a]
- applyStaticRestrictionPushdown :: GraphRefRelationalExpr -> GraphRefRelationalExpr
- optimizeDatabaseContextIOExpr :: GraphRefDatabaseContextIOExpr -> GraphRefSOptDatabaseContextExprM GraphRefDatabaseContextIOExpr
Documentation
type GraphRefSOptRelationalExprM a = ReaderT GraphRefSOptRelationalExprEnv (ExceptT RelationalError Identity) a Source #
type GraphRefSOptDatabaseContextExprM a = ReaderT GraphRefSOptDatabaseContextExprEnv (ExceptT RelationalError Identity) a Source #
optimizeAndEvalRelationalExpr :: RelationalExprEnv -> RelationalExpr -> Either RelationalError Relation Source #
A temporary function to be replaced by IO-based implementation.
class Monad m => AskGraphContext m where Source #
askGraph :: m TransactionGraph Source #
askContext :: m DatabaseContext Source #
optimizeDatabaseContextExpr :: DatabaseContextExpr -> GraphRefSOptDatabaseContextExprM GraphRefDatabaseContextExpr Source #
optimizeAndEvalDatabaseContextExpr :: Bool -> DatabaseContextExpr -> DatabaseContextEvalMonad () Source #
optimizeAndEvalTransGraphRelationalExpr :: TransactionGraph -> TransGraphRelationalExpr -> Either RelationalError Relation Source #
optimizeAndEvalDatabaseContextIOExpr :: DatabaseContextIOExpr -> DatabaseContextIOEvalMonad (Either RelationalError ()) Source #
runGraphRefSOptRelationalExprM :: Maybe DatabaseContext -> TransactionGraph -> GraphRefSOptRelationalExprM a -> Either RelationalError a Source #
runGraphRefSOptDatabaseContextExprM :: TransactionId -> DatabaseContext -> TransactionGraph -> GraphRefSOptDatabaseContextExprM a -> Either RelationalError a Source #
optimizeGraphRefRelationalExpr' :: Maybe DatabaseContext -> TransactionGraph -> GraphRefRelationalExpr -> Either RelationalError GraphRefRelationalExpr Source #
liftGraphRefRelExpr :: GraphRefSOptRelationalExprM a -> GraphRefSOptDatabaseContextExprM a Source #
optimize relational expression within database context expr monad
fullOptimizeGraphRefRelationalExpr :: GraphRefRelationalExpr -> GraphRefSOptRelationalExprM GraphRefRelationalExpr Source #
optimizeGraphRefRelationalExpr :: GraphRefRelationalExpr -> GraphRefSOptRelationalExprM GraphRefRelationalExpr Source #
optimizeGraphRefDatabaseContextExpr :: GraphRefDatabaseContextExpr -> GraphRefSOptDatabaseContextExprM GraphRefDatabaseContextExpr Source #
applyStaticPredicateOptimization :: GraphRefRestrictionPredicateExpr -> GraphRefSOptRelationalExprM GraphRefRestrictionPredicateExpr Source #
isEmptyRelationExpr :: RelationalExprBase a -> Bool Source #
replaceStaticAtomExprs :: GraphRefRestrictionPredicateExpr -> Map AttributeName GraphRefAtomExpr -> GraphRefRestrictionPredicateExpr Source #
findStaticRestrictionPredicates :: GraphRefRestrictionPredicateExpr -> Map AttributeName GraphRefAtomExpr Source #
isStaticAtomExpr :: AtomExpr -> Bool Source #