Low-level building block for generating SQL from R expressions. Strings are escaped; names become bare SQL identifiers. User infix functions have % stripped.
sql_expr(x, con = sql_current_con())sql_call2(.fn,..., con = sql_current_con())
Arguments
x: A quasiquoted expression
con: Connection to use for escaping. Will be set automatically when called from a function translation.
.fn: Function name (as string, call, or symbol)
...: Arguments to function
Details
Using sql_expr() in package will require use of globalVariables()
to avoid R CMD check NOTES. This is a small amount of additional pain, which I think is worthwhile because it leads to more readable translation code.
Examples
con <- simulate_dbi()# not necessary when writing translationssql_expr(f(x +1), con = con)sql_expr(f("x","y"), con = con)sql_expr(f(x, y), con = con)x <- ident("x")sql_expr(f(!!x, y), con = con)sql_expr(cast("x"%as% DECIMAL), con = con)sql_expr(round(x)%::% numeric, con = con)sql_call2("+", quote(x),1, con = con)sql_call2("+","x",1, con = con)