Created several TPCH test queries using the functional interface + Validated the output results.
Added Scala components and operators.
Join are group key extraction is defined as a function that benefits from static type checking
Added implicit type inference for joins
Merged with the window-semantics branch
-- Leveraged window semantics into query execition.
Currently Squall supports time window semantics. More precisely, sliding and tumbling window semantics for joins and aggregations. Aggregations, also support sliding range size alongside with Window Range.
Added purge state functionality to remove unusable stale data. Currently, this is achieved through punctuations.
Leveraged the window semantics into the functional interface.
Introduced window semantics into aggregationstorage classes. This required supporting windowIDs (which represent specific time intervals). To achieve easy access of such entries, the aggregation storage is further supplemented with TreeMaps of WIds (rather than timestamps for efficiency). This is also important for purging state.
Enabled various compositions of window semantics on the different joins and aggregations.
-- Out of the box SBT compiling capabilties.
redefined code structure and paths
Automatic SBT compiling and packaging
-- General
Cleaned the code base: reformatting, deprecated old classes,
Major refactoring for the join classes: Common functionality is abstracted into one abstract class where all joiners extend, removed all redundancy, joiner classes size shrinked
Fixed minor and major bugs on the way
Cleaned up the aggregation storage classes: There was much legacy code that introduced major overhead in computation and memory requirements. All artifacts of accessing storage is removed.
-- Introduce a functional scala DSL interface.
-- Leveraged window semantics into query execition.
-- Out of the box SBT compiling capabilties.
-- General