View source: R/join_controller.R
inspect_join_plan | R Documentation |
Please see vignette('DependencySorting', package = 'rquery')
and vignette('joinController', package= 'rquery')
for more details.
inspect_join_plan(tDesc, columnJoinPlan, ..., checkColClasses = FALSE)
tDesc |
description of tables, from |
columnJoinPlan |
columns to join, from |
... |
force later arguments to bind by name. |
checkColClasses |
logical if true check for exact class name matches |
NULL if okay, else a string
describe_tables
, build_join_plan
, graph_join_plan
, actualize_join_plan
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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.