From ff7d4299b070ace6b0455dac2f6bf9eac893588d Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Mon, 16 Aug 2021 15:09:06 -0500 Subject: [PATCH 1/2] condition on TileDB 2.2.0 or later --- inst/tinytest/test_query.R | 2 ++ src/libtiledb.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/inst/tinytest/test_query.R b/inst/tinytest/test_query.R index c49db05121..40eb7d04a1 100644 --- a/inst/tinytest/test_query.R +++ b/inst/tinytest/test_query.R @@ -208,6 +208,8 @@ expect_equal(keydat[1:n], keys[4:7]) n2 <- tiledb:::libtiledb_query_result_buffer_elements(qry@ptr, "rows", 0) expect_equal(n2, 0) # first element can be requested, is zero for fixed-sized +if (tiledb_version(TRUE) < "2.2.0") exit_file("Remaining tests require TileDB 2.2.* or later") + ## not as streamlined as it could, may need a wrapper for schema-from-query arrschptr <- tiledb:::libtiledb_query_get_schema(qry@ptr, tiledb_get_context()@ptr) sch <- tiledb:::tiledb_array_schema.from_ptr(arrschptr) diff --git a/src/libtiledb.cpp b/src/libtiledb.cpp index a6bd2e27e9..0ad66b98ab 100644 --- a/src/libtiledb.cpp +++ b/src/libtiledb.cpp @@ -2922,6 +2922,7 @@ R_xlen_t libtiledb_query_result_buffer_elements(XPtr query, NumericVector libtiledb_query_result_buffer_elements_vec(XPtr query, std::string attribute, bool nullable = false) { +#if TILEDB_VERSION >= TileDB_Version(2,2,0) if (nullable) { auto nelem = query->result_buffer_elements_nullable()[attribute]; auto vec = NumericVector( { @@ -2934,6 +2935,10 @@ NumericVector libtiledb_query_result_buffer_elements_vec(XPtr que auto nelem = query->result_buffer_elements()[attribute]; return NumericVector( { static_cast(nelem.first), static_cast(nelem.second) }); } +#else + auto nelem = query->result_buffer_elements()[attribute]; + return NumericVector( { static_cast(nelem.first), static_cast(nelem.second) }); +#endif } // [[Rcpp::export]] @@ -3231,16 +3236,24 @@ XPtr libtiledb_query_set_condition(XPtr query, // // [[Rcpp::export]] XPtr libtiledb_query_get_array(XPtr query, XPtr ctx) { +#if TILEDB_VERSION >= TileDB_Version(2,2,0) auto arr = query->array(); auto cptr = arr.ptr().get(); return XPtr(new tiledb::Array(*ctx.get(), cptr, false)); +#else + return XPtr(R_NilValue); +#endif } // [[Rcpp::export]] XPtr libtiledb_query_get_schema(XPtr query, XPtr ctx) { +#if TILEDB_VERSION >= TileDB_Version(2,2,0) auto arr = query->array(); return libtiledb_array_schema_load(ctx, arr.uri()); // returns an XPtr +#else + return XPtr(R_NilValue); +#endif } /** From 57367dccfbca8fb3a51bde34e43ecefd45a500b2 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 17 Aug 2021 08:11:29 -0500 Subject: [PATCH 2/2] update NEWS --- NEWS.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/NEWS.md b/NEWS.md index 7e6e863527..7a96cb048d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,18 @@ +# Ongoing development + +* This release of the R package builds against [TileDB 2.3.3](https://github.com/TileDB-Inc/TileDB/releases/tag/2.3.3), but has also been tested against previous releases and the development version. + +## Improvements + +* When retrieving results via the `[` operator, incomplete queries generate a warning (#283) + +* The interface to query element size of queries was extended (#282) + +## Bug Fixes + +* One cast statement was corrected so a warning is no longer triggered from `clang` (#281) + + # tiledb 0.9.5 * This release of the R package builds against [TileDB 2.3.3](https://github.com/TileDB-Inc/TileDB/releases/tag/2.3.3), but has also been tested against previous releases and the development version.