# NOT RUN {
if (requireNamespace("DBI", quietly = TRUE) && requireNamespace("RSQLite", quietly = TRUE)) {
# Land random selections early to avoid SQLite bug.
my_db <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
d <- rq_copy_to(
my_db,
'd',
data.frame(i = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
a = c(0, 0, 1, 1, 1, 1, 1, 1, 1, 1),
b = c(0, 1, 0, 1, 1, 1, 1, 1, 1, 1),
r = runif(10)),
temporary=TRUE, overwrite=TRUE)
optree <- d %.>%
assign_slice(.,
testexpr = qe(r<0.5),
columns = qc(a, b),
value = 2)
cat(format(optree))
sql <- to_sql(optree, my_db)
cat(sql)
print(DBI::dbGetQuery(my_db, sql))
# Why we need to land the random selection early
# for SQLIte:
q <- "SELECT r AS r1, r AS r2 FROM (
SELECT random() AS r FROM (
SELECT * from ( VALUES(1),(2) )
) a
) b"
print(DBI::dbGetQuery(my_db, q))
DBI::dbDisconnect(my_db)
}
# }
Run the code above in your browser using DataLab