register_binding() is used to populate a list of functions that operate on
(and return)
Expressions. These are the basis for the .data mask inside dplyr methods.
Usage
register_binding(fun_name, fun, notes = character(0))Arguments
- fun_name
A string containing a function name in the form
"function"or"package::function".- fun
A function, or
NULLto un-register a previous function. This function must acceptExpressionobjects as arguments and returnExpressionobjects instead of regular R objects.- notes
string for the docs: note any limitations or differences in behavior between the Arrow version and the R function.
Writing bindings
Expression$create()will wrap any non-Expression inputs as Scalar Expressions. If you want to try to coerce scalar inputs to match the type of the Expression(s) in the arguments, callcast_scalars_to_common_type(args)on the args. For example,Expression$create("add", args = list(int16_field, 1))would result in afloat64type output because1is adoublein R. To prevent casting all of the data inint16_fieldto float and to preserve it as int16, doExpression$create("add", args = cast_scalars_to_common_type(list(int16_field, 1)))Inside your function, you can call any other binding with
call_binding().