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. Finally their result can only be used once in a pipeline (else they will try to clobber their own result).

non_sql_node(
  source,
  ...,
  f_db = NULL,
  f_df = NULL,
  f_dt = NULL,
  incoming_table_name,
  incoming_qualifiers = NULL,
  outgoing_table_name,
  outgoing_qualifiers = NULL,
  columns_produced,
  display_form = "non_sql_node",
  orig_columns = TRUE,
  temporary = TRUE,
  check_result_details = TRUE,
  env = parent.frame()
)

Arguments

source

source to work from (data.frame or relop node)

...

force later arguments to bind by name

f_db

database implementation signature: f_db(db, incoming_table_name, outgoing_table_name, nd, ...) (db being a database handle)

f_df

data.frame implementation signature: f_df(data.frame, nd) (NULL defaults to taking from database).

f_dt

data.table implementation signature: f_dt(data.table, nd) (NULL defaults f_df).

incoming_table_name

character, name of incoming table

incoming_qualifiers

optional named ordered vector of strings carrying additional db hierarchy terms, such as schema.

outgoing_table_name

character, name of produced table

outgoing_qualifiers

optional named ordered vector of strings carrying additional db hierarchy terms, such as schema.

columns_produced

character, names of additional columns produced

display_form

character, how to print node

orig_columns

logical if TRUE select all original columns.

temporary

logical, if TRUE mark tables temporary.

check_result_details

logical, if TRUE enforce result type and columns.

env

environment to look to.

Value

non-sql node.

See also