Common API for tabular data backends

When figuring out which features to implement, it’s helpful to start with an existing package. DataFramesMeta exports the following:

  • @where: filter rows
  • @transform: add a new column (setindex)
  • @orderby: sorting columns
  • @select: selecting columns (kind of getindex)
    • This always returned a dataframe, but theoretically this package should allow for getindex to return: (1) the same type of table (2) an array or (3) a row
  • groupby: group a dataset based on a key
  • @by: perform an operation across different groups of a dataset

This seems like a superset the operations a generic table operations package would want to implement.

Note that I am just using DataFramesMeta as a way to kick-off the conversation. Additionally, DataFrames uses macros for non-standard evaluation of arguments, which is something I would very much like to avoid with a generic table package. Ideally it should be as easy to perform table manipulations inside a function as outside a function.