Skip to content

Commit

Permalink
Accomodate deprecation of delete_fragments in 2.18.0 (#599)
Browse files Browse the repository at this point in the history
* Accomodate deprecation of delete_fragments in 2.18.0

* Update NEWS and increment release micro version [ci skip]
  • Loading branch information
eddelbuettel committed Oct 2, 2023
1 parent 0145503 commit dbbe7d4
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 11 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: tiledb
Type: Package
Version: 0.21.1.3
Version: 0.21.1.4
Title: Universal Storage Engine for Sparse and Dense Multidimensional Arrays
Authors@R: c(person("TileDB, Inc.", role = c("aut", "cph")),
person("Dirk", "Eddelbuettel", email = "dirk@tiledb.com", role = "cre"))
Expand Down
2 changes: 2 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

* Query conditions expression parsing via `parse_query_conditions` was extended simmilarly (#598)

* Array fragment deletions uses a new static method (with TileDB 2.18.0 or later) (#599)

## Bug Fixes

* The DESCRIPTION file now correctly refers to macOS 10.14 (#596)
Expand Down
5 changes: 3 additions & 2 deletions R/Array.R
Original file line number Diff line number Diff line change
Expand Up @@ -152,13 +152,14 @@ tiledb_array_is_heterogeneous <- function(arr) {
##' @param arr A TileDB Array object as for example returned by \code{tiledb_array()}
##' @param ts_start A Datetime object that will be converted to millisecond granularity
##' @param ts_end A Datetime object that will be converted to millisecond granularity
##' @param ctx A tiledb_ctx object (optional)
##' @return A boolean indicating success
##' @export
tiledb_array_delete_fragments <- function(arr, ts_start, ts_end) {
tiledb_array_delete_fragments <- function(arr, ts_start, ts_end, ctx = tiledb_get_context()) {
stopifnot("The 'arr' argument must be a tiledb_array object" = .isArray(arr),
"The 'ts_start' argument must a time object" = inherits(ts_start, "POSIXct"),
"The 'ts_end' argument must a time object" = inherits(ts_end, "POSIXct"))
libtiledb_array_delete_fragments(arr@ptr, ts_start, ts_end)
libtiledb_array_delete_fragments(ctx@ptr, arr@ptr, ts_start, ts_end)
invisible(TRUE)
}

Expand Down
4 changes: 2 additions & 2 deletions R/RcppExports.R
Original file line number Diff line number Diff line change
Expand Up @@ -590,8 +590,8 @@ libtiledb_array_open_timestamp_end <- function(array) {
.Call(`_tiledb_libtiledb_array_open_timestamp_end`, array)
}

libtiledb_array_delete_fragments <- function(array, tstamp_start, tstamp_end) {
invisible(.Call(`_tiledb_libtiledb_array_delete_fragments`, array, tstamp_start, tstamp_end))
libtiledb_array_delete_fragments <- function(ctx, array, tstamp_start, tstamp_end) {
invisible(.Call(`_tiledb_libtiledb_array_delete_fragments`, ctx, array, tstamp_start, tstamp_end))
}

libtiledb_array_has_enumeration <- function(ctx, arr, name) {
Expand Down
9 changes: 8 additions & 1 deletion man/tiledb_array_delete_fragments.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions src/RcppExports.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1710,14 +1710,15 @@ BEGIN_RCPP
END_RCPP
}
// libtiledb_array_delete_fragments
void libtiledb_array_delete_fragments(XPtr<tiledb::Array> array, Rcpp::Datetime tstamp_start, Rcpp::Datetime tstamp_end);
RcppExport SEXP _tiledb_libtiledb_array_delete_fragments(SEXP arraySEXP, SEXP tstamp_startSEXP, SEXP tstamp_endSEXP) {
void libtiledb_array_delete_fragments(XPtr<tiledb::Context> ctx, XPtr<tiledb::Array> array, Rcpp::Datetime tstamp_start, Rcpp::Datetime tstamp_end);
RcppExport SEXP _tiledb_libtiledb_array_delete_fragments(SEXP ctxSEXP, SEXP arraySEXP, SEXP tstamp_startSEXP, SEXP tstamp_endSEXP) {
BEGIN_RCPP
Rcpp::RNGScope rcpp_rngScope_gen;
Rcpp::traits::input_parameter< XPtr<tiledb::Context> >::type ctx(ctxSEXP);
Rcpp::traits::input_parameter< XPtr<tiledb::Array> >::type array(arraySEXP);
Rcpp::traits::input_parameter< Rcpp::Datetime >::type tstamp_start(tstamp_startSEXP);
Rcpp::traits::input_parameter< Rcpp::Datetime >::type tstamp_end(tstamp_endSEXP);
libtiledb_array_delete_fragments(array, tstamp_start, tstamp_end);
libtiledb_array_delete_fragments(ctx, array, tstamp_start, tstamp_end);
return R_NilValue;
END_RCPP
}
Expand Down Expand Up @@ -3602,7 +3603,7 @@ static const R_CallMethodDef CallEntries[] = {
{"_tiledb_libtiledb_array_open_timestamp_start", (DL_FUNC) &_tiledb_libtiledb_array_open_timestamp_start, 1},
{"_tiledb_libtiledb_array_set_open_timestamp_end", (DL_FUNC) &_tiledb_libtiledb_array_set_open_timestamp_end, 2},
{"_tiledb_libtiledb_array_open_timestamp_end", (DL_FUNC) &_tiledb_libtiledb_array_open_timestamp_end, 1},
{"_tiledb_libtiledb_array_delete_fragments", (DL_FUNC) &_tiledb_libtiledb_array_delete_fragments, 3},
{"_tiledb_libtiledb_array_delete_fragments", (DL_FUNC) &_tiledb_libtiledb_array_delete_fragments, 4},
{"_tiledb_libtiledb_array_has_enumeration", (DL_FUNC) &_tiledb_libtiledb_array_has_enumeration, 3},
{"_tiledb_libtiledb_array_get_enumeration", (DL_FUNC) &_tiledb_libtiledb_array_get_enumeration, 3},
{"_tiledb_libtiledb_array_has_enumeration_vector", (DL_FUNC) &_tiledb_libtiledb_array_has_enumeration_vector, 2},
Expand Down
7 changes: 6 additions & 1 deletion src/libtiledb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2605,15 +2605,20 @@ Rcpp::Datetime libtiledb_array_open_timestamp_end(XPtr<tiledb::Array> array) {
}

// [[Rcpp::export]]
void libtiledb_array_delete_fragments(XPtr<tiledb::Array> array,
void libtiledb_array_delete_fragments(XPtr<tiledb::Context> ctx, XPtr<tiledb::Array> array,
Rcpp::Datetime tstamp_start, Rcpp::Datetime tstamp_end) {
#if TILEDB_VERSION >= TileDB_Version(2,12,0)
check_xptr_tag<tiledb::Context>(ctx);
check_xptr_tag<tiledb::Array>(array);
const std::string uri = array->uri();
uint64_t ts_ms_st = static_cast<uint64_t>(std::round(tstamp_start.getFractionalTimestamp() * 1000));
uint64_t ts_ms_en = static_cast<uint64_t>(std::round(tstamp_end.getFractionalTimestamp() * 1000));
#if TILEDB_VERSION >= TileDB_Version(2,18,0)
tiledb::Array::delete_fragments(*ctx.get(), uri, ts_ms_st, ts_ms_en);
#else
array->delete_fragments(uri, ts_ms_st, ts_ms_en);
#endif
#endif
}

// [[Rcpp::export]]
Expand Down

0 comments on commit dbbe7d4

Please sign in to comment.