Stores the R-side default execution plan used by subsequent
rducks_register_scalar_udf() calls
through this connection and updates the native runtime backend needed by that
plan. Scalar-UDF registration still defines Rducks evaluation semantics such
as scalar row calls versus vectorized chunk calls, declared types, NULL
handling, error handling, and side effects. The selected evaluator/marshalling
for an already-registered scalar UDF remains frozen in its database-catalog
metadata.
Usage
rducks_set_execution_plan(
con,
plan = rducks_execution_plan(),
threads = NULL,
external_threads = NULL
)Arguments
- con
A
duckdb_connectionalready enabled withrducks_enable().- plan
An
rducks_execution_plan()object.- threads
Optional positive integer to set with
PRAGMA threads.- external_threads
Optional positive integer to set with
SET external_threads. UseNULLto restore/keep the previous setting after Rducks briefly forces single-thread SQL execution to update its native backend on the recorded main R thread. For actual DuckDB worker concurrency, keep this smaller thanthreads.
Examples
# \donttest{
db <- duckdb::dbConnect(duckdb::duckdb(config = list(allow_unsigned_extensions = "true")))
rducks_enable(db)
rducks_set_execution_plan(db, rducks_execution_plan("arrow_c", "serial"))
rducks_release(db)
DBI::dbDisconnect(db)
# }