Skip to content

Commit fb18a2d

Browse files
hannescran-robot
authored andcommitted
version 0.7.1-1
1 parent c30a7e5 commit fb18a2d

File tree

181 files changed

+20357
-19627
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

181 files changed

+20357
-19627
lines changed

DESCRIPTION

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: duckdb
22
Title: DBI Package for the DuckDB Database Management System
3-
Version: 0.7.0
3+
Version: 0.7.1-1
44
Authors@R:
55
c(person(given = "Hannes",
66
family = "Mühleisen",
@@ -49,7 +49,7 @@ Suggests: arrow, bit64, callr, DBItest, dplyr, dbplyr, rlang, testthat,
4949
Encoding: UTF-8
5050
RoxygenNote: 7.2.3
5151
NeedsCompilation: yes
52-
Packaged: 2023-02-13 19:23:23 UTC; hannes
52+
Packaged: 2023-03-01 09:31:23 UTC; hannes
5353
Author: Hannes Mühleisen [aut, cre] (<https://orcid.org/0000-0001-8552-0029>),
5454
Mark Raasveldt [aut] (<https://orcid.org/0000-0001-5005-6844>),
5555
Stichting DuckDB Foundation [cph],
@@ -78,4 +78,4 @@ Author: Hannes Mühleisen [aut, cre] (<https://orcid.org/0000-0001-8552-0029>),
7878
PCG Project contributors [cph]
7979
Maintainer: Hannes Mühleisen <hannes@cwi.nl>
8080
Repository: CRAN
81-
Date/Publication: 2023-02-14 10:00:10 UTC
81+
Date/Publication: 2023-03-01 12:50:02 UTC

MD5

Lines changed: 179 additions & 171 deletions
Large diffs are not rendered by default.

R/Driver.R

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ duckdb <- function(dbdir = DBDIR_MEMORY, read_only = FALSE, bigint = "numeric",
4040
stop(paste("Unsupported bigint configuration", bigint))
4141
)
4242

43+
# R packages are not allowed to write extensions into home directory, so use R_user_dir instead
44+
if (!("extension_directory" %in% names(config))) {
45+
config["extension_directory"] <- tools::R_user_dir("duckdb", "data")
46+
}
47+
4348
new(
4449
"duckdb_driver",
4550
database_ref = rapi_startup(dbdir, read_only, config),

R/cpp11.R

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,12 @@ rapi_release <- function(stmt) {
144144
invisible(.Call(`_duckdb_rapi_release`, stmt))
145145
}
146146

147-
rapi_get_substrait <- function(conn, query) {
148-
.Call(`_duckdb_rapi_get_substrait`, conn, query)
147+
rapi_get_substrait <- function(conn, query, enable_optimizer) {
148+
.Call(`_duckdb_rapi_get_substrait`, conn, query, enable_optimizer)
149149
}
150150

151-
rapi_get_substrait_json <- function(conn, query) {
152-
.Call(`_duckdb_rapi_get_substrait_json`, conn, query)
151+
rapi_get_substrait_json <- function(conn, query, enable_optimizer) {
152+
.Call(`_duckdb_rapi_get_substrait_json`, conn, query, enable_optimizer)
153153
}
154154

155155
rapi_prepare_substrait <- function(conn, query) {

R/sql.R

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
sql <- function(sql, conn = default_connection()) {
2+
stopifnot(dbIsValid(conn))
3+
dbGetQuery(conn, sql)
4+
}
5+
6+
default_duckdb_connection <- new.env(parent=emptyenv())
7+
8+
default_connection <- function() {
9+
if(!exists("con", default_duckdb_connection)) {
10+
con <- DBI::dbConnect(duckdb::duckdb())
11+
12+
default_duckdb_connection$con <- con
13+
14+
reg.finalizer(default_duckdb_connection, onexit = TRUE, function(e) {
15+
DBI::dbDisconnect(e$con, shutdown = TRUE)
16+
})
17+
}
18+
default_duckdb_connection$con
19+
}

R/substrait.R

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,24 +46,25 @@ duckdb_prepare_substrait_json <- function(conn, json, arrow = FALSE) {
4646
#'
4747
#' @param conn A DuckDB connection, created by `dbConnect()`.
4848
#' @param query The query string in SQL
49+
#' @param enable_optimizer Optional parameter to enable/disable query-optimizer. By default optimizer is enabled.
4950
#' @return A raw vector containing the substrait protobuf blob
5051
#' @export
51-
duckdb_get_substrait <- function(conn, query) {
52+
duckdb_get_substrait <- function(conn, query, enable_optimizer = TRUE) {
5253
stopifnot(dbIsValid(conn))
5354
stopifnot(is.character(query))
54-
rapi_get_substrait(conn@conn_ref, query)
55+
rapi_get_substrait(conn@conn_ref, query, enable_optimizer)
5556
}
5657

57-
5858
#' Get the Substrait plan for a SQL query in the JSON format
5959
#' Transforms a SQL query into a vector containing the serialized Substrait query JSON
6060
#'
6161
#' @param conn A DuckDB connection, created by `dbConnect()`.
6262
#' @param query The query string in SQL
63+
#' @param enable_optimizer Optional parameter to enable/disable query-optimizer. By default optimizer is enabled.
6364
#' @return A vector containing the substrait protobuf JSON
6465
#' @export
65-
duckdb_get_substrait_json <- function(conn, query) {
66+
duckdb_get_substrait_json <- function(conn, query, enable_optimizer = TRUE) {
6667
stopifnot(dbIsValid(conn))
6768
stopifnot(is.character(query))
68-
rapi_get_substrait_json(conn@conn_ref, query)
69+
rapi_get_substrait_json(conn@conn_ref, query, enable_optimizer)
6970
}

inst/include/cpp11/external_pointer.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ class external_pointer {
5757

5858
external_pointer(SEXP data) : data_(valid_type(data)) {}
5959

60-
external_pointer(pointer p, bool use_deleter = true, bool finalize_on_exit = true)
61-
: data_(safe[R_MakeExternalPtr]((void*)p, R_NilValue, R_NilValue)) {
60+
external_pointer(pointer p, bool use_deleter = true, bool finalize_on_exit = true, SEXP prot = R_NilValue)
61+
: data_(safe[R_MakeExternalPtr]((void*)p, R_NilValue, prot)) {
6262
if (use_deleter) {
6363
R_RegisterCFinalizerEx(data_, r_deleter, static_cast<r_bool>(finalize_on_exit));
6464
}

man/duckdb_get_substrait.Rd

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

man/duckdb_get_substrait_json.Rd

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/cpp11.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -266,17 +266,17 @@ extern "C" SEXP _duckdb_rapi_release(SEXP stmt) {
266266
END_CPP11
267267
}
268268
// statement.cpp
269-
SEXP rapi_get_substrait(duckdb::conn_eptr_t conn, std::string query);
270-
extern "C" SEXP _duckdb_rapi_get_substrait(SEXP conn, SEXP query) {
269+
SEXP rapi_get_substrait(duckdb::conn_eptr_t conn, std::string query, bool enable_optimizer);
270+
extern "C" SEXP _duckdb_rapi_get_substrait(SEXP conn, SEXP query, SEXP enable_optimizer) {
271271
BEGIN_CPP11
272-
return cpp11::as_sexp(rapi_get_substrait(cpp11::as_cpp<cpp11::decay_t<duckdb::conn_eptr_t>>(conn), cpp11::as_cpp<cpp11::decay_t<std::string>>(query)));
272+
return cpp11::as_sexp(rapi_get_substrait(cpp11::as_cpp<cpp11::decay_t<duckdb::conn_eptr_t>>(conn), cpp11::as_cpp<cpp11::decay_t<std::string>>(query), cpp11::as_cpp<cpp11::decay_t<bool>>(enable_optimizer)));
273273
END_CPP11
274274
}
275275
// statement.cpp
276-
SEXP rapi_get_substrait_json(duckdb::conn_eptr_t conn, std::string query);
277-
extern "C" SEXP _duckdb_rapi_get_substrait_json(SEXP conn, SEXP query) {
276+
SEXP rapi_get_substrait_json(duckdb::conn_eptr_t conn, std::string query, bool enable_optimizer);
277+
extern "C" SEXP _duckdb_rapi_get_substrait_json(SEXP conn, SEXP query, SEXP enable_optimizer) {
278278
BEGIN_CPP11
279-
return cpp11::as_sexp(rapi_get_substrait_json(cpp11::as_cpp<cpp11::decay_t<duckdb::conn_eptr_t>>(conn), cpp11::as_cpp<cpp11::decay_t<std::string>>(query)));
279+
return cpp11::as_sexp(rapi_get_substrait_json(cpp11::as_cpp<cpp11::decay_t<duckdb::conn_eptr_t>>(conn), cpp11::as_cpp<cpp11::decay_t<std::string>>(query), cpp11::as_cpp<cpp11::decay_t<bool>>(enable_optimizer)));
280280
END_CPP11
281281
}
282282
// statement.cpp
@@ -349,8 +349,8 @@ static const R_CallMethodDef CallEntries[] = {
349349
{"_duckdb_rapi_expr_reference", (DL_FUNC) &_duckdb_rapi_expr_reference, 2},
350350
{"_duckdb_rapi_expr_set_alias", (DL_FUNC) &_duckdb_rapi_expr_set_alias, 2},
351351
{"_duckdb_rapi_expr_tostring", (DL_FUNC) &_duckdb_rapi_expr_tostring, 1},
352-
{"_duckdb_rapi_get_substrait", (DL_FUNC) &_duckdb_rapi_get_substrait, 2},
353-
{"_duckdb_rapi_get_substrait_json", (DL_FUNC) &_duckdb_rapi_get_substrait_json, 2},
352+
{"_duckdb_rapi_get_substrait", (DL_FUNC) &_duckdb_rapi_get_substrait, 3},
353+
{"_duckdb_rapi_get_substrait_json", (DL_FUNC) &_duckdb_rapi_get_substrait_json, 3},
354354
{"_duckdb_rapi_prepare", (DL_FUNC) &_duckdb_rapi_prepare, 2},
355355
{"_duckdb_rapi_prepare_substrait", (DL_FUNC) &_duckdb_rapi_prepare_substrait, 2},
356356
{"_duckdb_rapi_prepare_substrait_json", (DL_FUNC) &_duckdb_rapi_prepare_substrait_json, 2},

0 commit comments

Comments
 (0)