Run the data query.

execute(
  source,
  optree,
  ...,
  limit = NULL,
  source_limit = NULL,
  overwrite = TRUE,
  temporary = TRUE,
  allow_executor = TRUE,
  temp_source = mk_tmp_name_source("rquery_ex"),
  env = parent.frame()
)

Arguments

source

data.frame or database connecton (rquery_db_info class or DBI connections preferred).

optree

relop operation tree.

...

force later arguments to bind by name.

limit

numeric, if set limit to this many rows during data bring back (not used when landing a table).

source_limit

numeric if not NULL limit sources to this many rows.

overwrite

logical if TRUE drop an previous table.

temporary

logical if TRUE try to create a temporary table.

allow_executor

logical if TRUE allow any executor set as rquery.rquery_executor to be used.

temp_source

temporary name generator.

env

environment to work in.

Value

data.frame

See also

Examples

# WARNING: example tries to change rquery.rquery_db_executor option to RSQLite and back. if (requireNamespace("DBI", quietly = TRUE) && requireNamespace("RSQLite", quietly = TRUE)) { my_db <- DBI::dbConnect(RSQLite::SQLite(), ":memory:") old_o <- options(list("rquery.rquery_db_executor" = list(db = my_db))) d <- rq_copy_to(my_db, 'd', data.frame(AUC = 0.6, R2 = 0.2)) optree <- extend_se(d, c("v" %:=% "AUC + R2", "x" %:=% "pmax(AUC,v)")) print(optree) cat(format(optree)) v <- execute(my_db, optree) print(v) v2 <- execute(data.frame(AUC = 1, R2 = 2), optree) print(v2) options(old_o) DBI::dbDisconnect(my_db) }
#> [1] "mk_td(\"d\", c( \"AUC\", \"R2\")) %.>% extend(., v := AUC + R2) %.>% extend(., x := pmax(AUC, v))" #> mk_td("d", c( #> "AUC", #> "R2")) %.>% #> extend(., #> v := AUC + R2) %.>% #> extend(., #> x := pmax(AUC, v)) #> AUC R2 v x #> 1 0.6 0.2 0.8 0.8 #> AUC R2 v x #> 1 1 2 3 3