Compilation and rule-based optimization framework for relational algebra. Raco is the language, optimization, and query translation layer for the Myria project.
The main thing that needs to change in Raco is that update and combine definitions use MaterializedTuple... as the input/output types, but these tuples cannot handle the custom state types of the Grappa aggregates. Probably the solution is to have the update and combine definitions just use std::tuple directly.
Should more cleanly define aggregates in terms of
init
: initialize the stateupdate
/add
: add a new input to the statecombine
: combine two statesemit
: transform a state into an outputwork in progress on the Grappa side is here https://github.com/uwsampa/grappa/tree/bmyerz/decomposed-aggregates
The main thing that needs to change in Raco is that
update
andcombine
definitions useMaterializedTuple...
as the input/output types, but these tuples cannot handle the custom state types of the Grappa aggregates. Probably the solution is to have theupdate
andcombine
definitions just usestd::tuple
directly.