This PR changes the name of run to collect and exposes an extension of Base.collect to the user to use on graphs generated by @query. (The internal interface is also consolidated and moved to src/collect.jl.) Of course, the only supported data sources as of now are DataFrames, and this support is also implemented in this PR.
The main work in providing this support has to do with generating the expressions for defining the filtering kernels and setting the respective FitlerHelper objects into their respective FilterNodes in the graph.
Right now, we don't do anything to optimize in the case of multiple filter calls, e.g.
This PR changes the name of
run
tocollect
and exposes an extension ofBase.collect
to the user to use on graphs generated by@query
. (The internal interface is also consolidated and moved tosrc/collect.jl
.) Of course, the only supported data sources as of now areDataFrame
s, and this support is also implemented in this PR.The main work in providing this support has to do with generating the expressions for defining the filtering kernels and setting the respective
FitlerHelper
objects into their respectiveFilterNode
s in the graph.Right now, we don't do anything to optimize in the case of multiple
filter
calls, e.g.But in the future we will hopefully find ways to be smart about how we generate kernel definitions for such cases.