R/execute_plan.R

Defines functions execute_join_plan

Documented in execute_join_plan

#' Execute a Join Plan
#'
#' Takes a plan generated by `create_join_plan()` and executes it sequentially
#' to produce a final, merged data.table.
#'
#' @param join_plan A data.table created by `create_join_plan()`.
#' @param data_list A named list of the source data.tables.
#' @return A final, merged data.table.
#' @export
execute_join_plan <- function(join_plan, data_list) {

  exec_env <- new.env(parent = baseenv())
  
  for (name in names(data_list)) {
    assign(name, data_list[[name]], envir = exec_env)
  }
  
  for (i in 1:nrow(join_plan)) {
    code_to_run <- join_plan$code[i]
    message("Executing step ", i, ": ", code_to_run)
    
    eval(parse(text = code_to_run), envir = exec_env)
  }
  
  return(get("final_data", envir = exec_env))
}

Try the DBmaps package in your browser

Any scripts or data that you put into this service are public.

DBmaps documentation built on Sept. 9, 2025, 5:44 p.m.