Package uk.ac.bbk.dcs.automed.qproc.optimise.optimisers

Class Summary
ChooseOptimiser This Class optimises expressions involving the "choose" built-in function.
CollectionOperatorReorganiser This optimiser is to reorganise the order of arguments in expressions containing ++, --, intersect & union operators, so that constructs from the same schema come closer in the query tree and therefore bigger sub queries can be sent to the a datasource wrapper.
CompGenReorganiser This optimiser is used to reorganise the generators in comprehensions.
ComprehensionDistributor This optimiser is used to decompose a comprehension whose generators contain append expressions, such as [x|x<-(E1++E2)].
ComprehensionSimplification This Class optimises expressions involving the "choose" built-in function.
ConstantSimplification This optimiser eliminates Constructors Null, Any, Void, Nil, SNil and BNil where possible.
RelationSKJEliminator This class removes self-join of relations over their key arising from the AutoMed relational model encoding For example, [{k1,n,m}|{p1,n}<-[{{k1,..,kn},a1}|{k1,..,kn,a1,a2}<-<>]; {p2,m}<-[{{k1,..,kn},a2}|{k1,..,kn,a1,a2}<-<>]; p1 = p2] becomes: [{{k1,...,kn},a1,a2}|{k1,..,kn,a1,a2}<-<>] Although table <> may contain several key attributes, we assume that {p1,n} and {p2,m} will be pair The steps for the simplification are: 1.
SQLWrapperSKJOptimiser Removes self-key joins occurring because of the dual layer of schemas that the SQLWrapperFactory class introduces.
UnnestOptimiser Unnests comprehensions.