Note: non-SQL nodes are allowed to delete/overwrite both both the incoming and outgoing tables, so do not point them to non-temporary structures. Also they tend to land all columns (losing narrowing optimization), so can be expensive and should be used sparingly.
non_sql_node(source, ..., f_db, f_df = NULL, incoming_table_name,
outgoing_table_name, columns_produced, display_form, pass_using = FALSE,
orig_columns = TRUE, temporary = TRUE)
source to work from (data.frame or relop node)
force later arguments to bind by name
database implementation signature: f_db(db, incoming_table_name, outgoing_table_name) (db being a database handle)
data.frame implementation signature: f_df(data.frame) (NULL defaults to taking from database).
character, name of incoming table
character, name of produced table
character, names of additional columns produced
chacter, how to print node
logical, if TRUE (or if f_db is NULL) pass using column calculations through (else assume using all columns).
logical if TRUE select all original columns.
logical, if TRUE mark tables temporary.
sql node.