CollectionOperatorReorganiser
Keywords: uk.ac.bbk.dcs.automed.qproc.optimise.optimisers.CollectionOperatorReorganiser class

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## uk.ac.bbk.dcs.automed.qproc.optimise.optimisers
Class CollectionOperatorReorganiser

    java.lang.Object
      uk.ac.bbk.dcs.automed.qproc.optimise.optimisers.CollectionOperatorReorganiser

    public class CollectionOperatorReorganiser

extends java.lang.Object

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. Note: the arguments to these collection operators are assumed to be either (a) schemes, or (b) of the form [h|p<-<>], h & p are patterns

Author:
  Hao Fan, Lucas Zamboulis

Field Summary
`protected java.util.logging.Logger` | `logger`

Constructor Summary
`CollectionOperatorReorganiser()` Considering the fellowing cases: $x ++ ($y ++ $z) // Two++A ($x ++ $y) ++ $z // Two++B ($x ++ $y) ++ ($z ++ $m) // Three++ $x -- ($y -- $z) // unchangable ($x -- $y) -- $z // Two-- ($x -- $y) -- ($z -- $m) // Three-- $x ++ ($y -- $z) // unchangable ($x -- $y) ++ $z // unchangable ($x -- $y) ++ ($z -- $m) // unchangable $x -- ($y ++ $z) // One--One++ ($x ++ $y) -- $z // unchangable ($x ++ $y) -- ($z ++ $m) // One++One--One++ ($x ++ $y) ++ ($z -- $m) // Two++One-- ($x -- $y) ++ ($z ++ $m) // One--Two++ ($x ++ $y) -- ($z -- $m) // unchangable ($x -- $y) -- ($z ++ $m) // Two--One++ $x union ($y union $z) // TwoUnionA ($x union $y) union $z // TwoUnionB ($x union $y) union ($z union $m) //ThreeUnion $x intersect ($y intersect $z) //TwoIntersectA ($x intersect $y) intersect $z //TwoIntersectB ($x intersect $y) intersect ($z intersect $m) //ThreeIntersect

Method Summary
`boolean` | `apply(Cell c)`
`void` | `finalize()`
`boolean` | `optimise(ASG g)`
`boolean` | `optimise(Cell c)`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected java.util.logging.Logger logger

Constructor Detail

### CollectionOperatorReorganiser

    public CollectionOperatorReorganiser()

  Considering the fellowing cases: $x ++ ($y ++ $z) // Two++A ($x ++ $y) ++ $z // Two++B ($x ++ $y) ++ ($z ++ $m) // Three++ $x -- ($y -- $z) // unchangable ($x -- $y) -- $z // Two-- ($x -- $y) -- ($z -- $m) // Three-- $x ++ ($y -- $z) // unchangable ($x -- $y) ++ $z // unchangable ($x -- $y) ++ ($z -- $m) // unchangable $x -- ($y ++ $z) // One--One++ ($x ++ $y) -- $z // unchangable ($x ++ $y) -- ($z ++ $m) // One++One--One++ ($x ++ $y) ++ ($z -- $m) // Two++One-- ($x -- $y) ++ ($z ++ $m) // One--Two++ ($x ++ $y) -- ($z -- $m) // unchangable ($x -- $y) -- ($z ++ $m) // Two--One++ $x union ($y union $z) // TwoUnionA ($x union $y) union $z // TwoUnionB ($x union $y) union ($z union $m) //ThreeUnion $x intersect ($y intersect $z) //TwoIntersectA ($x intersect $y) intersect $z //TwoIntersectB ($x intersect $y) intersect ($z intersect $m) //ThreeIntersect

Method Detail

### finalize

    public void finalize()

  Overrides:
    `finalize` in class `java.lang.Object`

### apply

    public boolean apply(Cell c)
                  throws java.lang.Exception

  Throws:
    `java.lang.Exception`

### optimise

    public boolean optimise(Cell c)
                     throws QueryOptimisationException

  Throws:
    `QueryOptimisationException`

### optimise

    public boolean optimise(ASG g)

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD