Please see vignette('DependencySorting', package = 'rquery') and vignette('joinController', package= 'rquery') for more details.

inspect_join_plan(tDesc, columnJoinPlan, ..., checkColClasses = FALSE)

Arguments

tDesc

description of tables, from describe_tables (and likely altered by user).

columnJoinPlan

columns to join, from build_join_plan (and likely altered by user). Note: no column names must intersect with names of the form table_CLEANEDTABNAME_present.

...

force later arguments to bind by name.

checkColClasses

logical if true check for exact class name matches

Value

NULL if okay, else a string

See also

Examples

if (requireNamespace("DBI", quietly = TRUE) && requireNamespace("RSQLite", quietly = TRUE)) { my_db <- DBI::dbConnect(RSQLite::SQLite(), ":memory:") # example data DBI::dbWriteTable(my_db, "d1", data.frame(id= 1:3, weight= c(200, 140, 98), height= c(60, 24, 12))) DBI::dbWriteTable(my_db, "d2", data.frame(pid= 2:3, weight= c(130, 110), width= 1)) # get the initial description of table defs tDesc <- describe_tables(my_db, qc(d1, d2)) # declare keys (and give them consistent names) tDesc$keys[[1]] <- list(PrimaryKey= 'id') tDesc$keys[[2]] <- list(PrimaryKey= 'pid') # build the join plan columnJoinPlan <- build_join_plan(tDesc) # confirm the plan print(inspect_join_plan(tDesc, columnJoinPlan, checkColClasses= TRUE)) # damage the plan columnJoinPlan$sourceColumn[columnJoinPlan$sourceColumn=='width'] <- 'wd' # find a problem print(inspect_join_plan(tDesc, columnJoinPlan, checkColClasses= TRUE)) DBI::dbDisconnect(my_db) }
#> NULL #> [1] "table description d2 refers to non-column(s): wd"