From 603acab38b3ee14e0d1eb9c2f59ccfc2a98d3e2b Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Fri, 10 Sep 2021 12:13:15 -0500 Subject: [PATCH 1/4] use set_data_buffer --- src/libtiledb.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libtiledb.cpp b/src/libtiledb.cpp index ccc001e2a9..fe5a7d1f70 100644 --- a/src/libtiledb.cpp +++ b/src/libtiledb.cpp @@ -448,8 +448,10 @@ bool libtiledb_ctx_is_supported_fs(XPtr ctx, std::string scheme return ctx->is_supported_fs(TILEDB_AZURE); } else if (scheme == "gcs") { return ctx->is_supported_fs(TILEDB_GCS); +#if TILEDB_VERSION >= TileDB_Version(2,2,0) } else if (scheme == "memory") { return ctx->is_supported_fs(TILEDB_MEMFS); +#endif } else { Rcpp::stop("Unknown TileDB fs scheme: '%s'", scheme.c_str()); } @@ -2405,15 +2407,15 @@ XPtr libtiledb_query_set_buffer(XPtr query, SEXP buffer) { if (TYPEOF(buffer) == INTSXP) { IntegerVector vec(buffer); - query->set_buffer(attr, vec.begin(), vec.length()); + query->set_data_buffer(attr, vec.begin(), vec.length()); return query; } else if (TYPEOF(buffer) == REALSXP) { NumericVector vec(buffer); - query->set_buffer(attr, vec.begin(), vec.length()); + query->set_data_buffer(attr, vec.begin(), vec.length()); return query; } else if (TYPEOF(buffer) == LGLSXP) { LogicalVector vec(buffer); - query->set_buffer(attr, vec.begin(), vec.length()); + query->set_data_buffer(attr, vec.begin(), vec.length()); return query; } else { Rcpp::stop("Invalid attribute buffer type for attribute '%s': %s", From a4a4dedcdfa3cd19ee3bf5733eb3056011021301 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Fri, 10 Sep 2021 13:30:52 -0500 Subject: [PATCH 2/4] use set_{data,offset,validity}_buffer --- src/libtiledb.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/libtiledb.cpp b/src/libtiledb.cpp index fe5a7d1f70..b747331af8 100644 --- a/src/libtiledb.cpp +++ b/src/libtiledb.cpp @@ -2506,15 +2506,12 @@ XPtr libtiledb_query_set_buffer_var_char(XPtr quer #if TILEDB_VERSION >= TileDB_Version(2,2,4) if (bufptr->nullable) { - query->set_buffer_nullable(attr, bufptr->offsets, bufptr->str, bufptr->validity_map); - } else { - query->set_buffer(attr, bufptr->offsets, bufptr->str); + query->set_validity_buffer(attr, bufptr->validity_map); } - return query; -#else - query->set_buffer(attr, bufptr->offsets, bufptr->str); - return query; #endif + query->set_data_buffer(attr, bufptr->str); + query->set_offsets_buffer(attr, bufptr->offsets); + return query; } // 'len' is the length of the query result set, i.e. buffer elements for standard columns From e943b106fb2ba39c955f3be03eb4ec1ce1dad0d4 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Fri, 10 Sep 2021 13:52:36 -0500 Subject: [PATCH 3/4] use set_{data,offset}_buffer --- src/libtiledb.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libtiledb.cpp b/src/libtiledb.cpp index b747331af8..ccd58d5a22 100644 --- a/src/libtiledb.cpp +++ b/src/libtiledb.cpp @@ -2576,11 +2576,13 @@ XPtr libtiledb_query_buffer_var_vec_create(IntegerVector intoffsets, XPtr libtiledb_query_set_buffer_var_vec(XPtr query, std::string attr, XPtr buf) { if (buf->dtype == TILEDB_INT32) { - query->set_buffer(attr, buf->offsets, buf->idata); + query->set_data_buffer(attr, buf->idata); + query->set_offsets_buffer(attr, buf->offsets); } else if (buf->dtype == TILEDB_FLOAT64) { - query->set_buffer(attr, buf->offsets, buf->ddata); + query->set_data_buffer(attr, buf->ddata); + query->set_offsets_buffer(attr, buf->offsets); } else { - Rcpp::stop("Unsupported type '%s' for buffer", _tiledb_datatype_to_string(buf->dtype)); + Rcpp::stop("Unsupported type '%s' for buffer", _tiledb_datatype_to_string(buf->dtype)); } return query; } From 14dea3a24972ea512cc9d3c94cb25be1606f44e5 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Fri, 10 Sep 2021 13:57:33 -0500 Subject: [PATCH 4/4] use set_{data,validity}_buffer --- src/libtiledb.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/libtiledb.cpp b/src/libtiledb.cpp index ccd58d5a22..9213055d76 100644 --- a/src/libtiledb.cpp +++ b/src/libtiledb.cpp @@ -2801,17 +2801,11 @@ XPtr libtiledb_query_set_buffer_ptr(XPtr query, XPtr buf) { #if TILEDB_VERSION >= TileDB_Version(2,2,0) if (buf->nullable) { - query->set_buffer_nullable(attr, static_cast(buf->vec.data()), buf->ncells, - buf->validity_map.data(), - static_cast(buf->validity_map.size())); - } else { - query->set_buffer(attr, static_cast(buf->vec.data()), buf->ncells); + query->set_validity_buffer(attr, buf->validity_map); } - return query; -#else - query->set_buffer(attr, static_cast(buf->vec.data()), buf->ncells); - return query; #endif + query->set_data_buffer(attr, static_cast(buf->vec.data()), buf->ncells); + return query; }