Skip to content

Commit

Permalink
groups are now supported in 2.8.0 or later (#398)
Browse files Browse the repository at this point in the history
  • Loading branch information
eddelbuettel authored Apr 14, 2022
1 parent 771cc66 commit 338945e
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 23 deletions.
2 changes: 1 addition & 1 deletion R/Group.R
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
setClass("tiledb_group",
slots = list(ptr = "externalptr"))

.tiledb28 <- function() tiledb_version(TRUE) >= "2.8.0" && tiledb_version(TRUE) < "2.9.0"
.tiledb28 <- function() tiledb_version(TRUE) >= "2.8.0"

#' Creates a 'tiledb_group' object
#'
Expand Down
2 changes: 1 addition & 1 deletion inst/include/tiledb.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ namespace tiledb {
}
#endif

#if TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR != 8
#if TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR < 8
// we need a placeholder as tiledb::Group as it is in function signatures
namespace tiledb {
class Group {
Expand Down
2 changes: 1 addition & 1 deletion inst/tinytest/test_group.R
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ isMacOS <- (Sys.info()['sysname'] == "Darwin")

ctx <- tiledb_ctx(limitTileDBCores())

if (tiledb_version(TRUE) < "2.8.0" || tiledb_version(TRUE) >= "2.9.0") exit_file("TileDB Group required TileDB 2.8.*")
if (tiledb_version(TRUE) < "2.8.0") exit_file("TileDB Group requires TileDB 2.8.* or later")

uri <- tempfile()

Expand Down
40 changes: 20 additions & 20 deletions src/libtiledb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4393,7 +4393,7 @@ XPtr<tiledb::Group> libtiledb_group(XPtr<tiledb::Context> ctx,
const std::string& uri,
const std::string& querytypestr) {
check_xptr_tag<tiledb::Context>(ctx);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
tiledb_query_type_t querytype = _string_to_tiledb_query_type(querytypestr);
auto p = new tiledb::Group(*ctx.get(), uri, querytype);
XPtr<tiledb::Group> ptr = make_xptr<tiledb::Group>(p);
Expand All @@ -4407,7 +4407,7 @@ XPtr<tiledb::Group> libtiledb_group(XPtr<tiledb::Context> ctx,
XPtr<tiledb::Group> libtiledb_group_open(XPtr<tiledb::Group> grp,
const std::string& querytypestr) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
tiledb_query_type_t querytype = _string_to_tiledb_query_type(querytypestr);
grp->open(querytype);
#endif
Expand All @@ -4418,7 +4418,7 @@ XPtr<tiledb::Group> libtiledb_group_open(XPtr<tiledb::Group> grp,
XPtr<tiledb::Group> libtiledb_group_set_config(XPtr<tiledb::Group> grp, XPtr<tiledb::Config> cfg) {
check_xptr_tag<tiledb::Group>(grp);
check_xptr_tag<tiledb::Config>(cfg);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
grp->set_config(*cfg.get());
#endif
return grp;
Expand All @@ -4427,7 +4427,7 @@ XPtr<tiledb::Group> libtiledb_group_set_config(XPtr<tiledb::Group> grp, XPtr<til
// [[Rcpp::export]]
XPtr<tiledb::Config> libtiledb_group_get_config(XPtr<tiledb::Group> grp) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
auto ptr = make_xptr<tiledb::Config>(new tiledb::Config(grp.get()->config()));
return ptr;
#else
Expand All @@ -4438,7 +4438,7 @@ XPtr<tiledb::Config> libtiledb_group_get_config(XPtr<tiledb::Group> grp) {
// [[Rcpp::export]]
XPtr<tiledb::Group> libtiledb_group_close(XPtr<tiledb::Group> grp) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
grp->close();
#endif
return grp;
Expand All @@ -4447,7 +4447,7 @@ XPtr<tiledb::Group> libtiledb_group_close(XPtr<tiledb::Group> grp) {
// [[Rcpp::export]]
std::string libtiledb_group_create(XPtr<tiledb::Context> ctx, const std::string& uri) {
check_xptr_tag<tiledb::Context>(ctx);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
tiledb::Group::create(*ctx.get(), uri);
#endif
return uri;
Expand All @@ -4456,7 +4456,7 @@ std::string libtiledb_group_create(XPtr<tiledb::Context> ctx, const std::string&
// [[Rcpp::export]]
bool libtiledb_group_is_open(XPtr<tiledb::Group> grp) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
return grp->is_open();
#else
return FALSE;
Expand All @@ -4466,7 +4466,7 @@ bool libtiledb_group_is_open(XPtr<tiledb::Group> grp) {
// [[Rcpp::export]]
std::string libtiledb_group_uri(XPtr<tiledb::Group> grp) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
return grp->uri();
#else
return std::string("");
Expand All @@ -4476,7 +4476,7 @@ std::string libtiledb_group_uri(XPtr<tiledb::Group> grp) {
// [[Rcpp::export]]
std::string libtiledb_group_query_type(XPtr<tiledb::Group> grp) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
return _tiledb_query_type_to_string(grp->query_type());
#else
return std::string("");
Expand All @@ -4486,7 +4486,7 @@ std::string libtiledb_group_query_type(XPtr<tiledb::Group> grp) {
// [[Rcpp::export]]
bool libtiledb_group_put_metadata(XPtr<tiledb::Group> grp, std::string key, SEXP obj) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
// we implement a simpler interface here as the 'type' is given from
// the supplied SEXP, as is the extent
switch(TYPEOF(obj)) {
Expand Down Expand Up @@ -4527,7 +4527,7 @@ bool libtiledb_group_put_metadata(XPtr<tiledb::Group> grp, std::string key, SEXP
// [[Rcpp::export]]
XPtr<tiledb::Group> libtiledb_group_delete_metadata(XPtr<tiledb::Group> grp, std::string key) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
grp->delete_metadata(key);
#endif
return grp;
Expand All @@ -4536,7 +4536,7 @@ XPtr<tiledb::Group> libtiledb_group_delete_metadata(XPtr<tiledb::Group> grp, std
// [[Rcpp::export]]
SEXP libtiledb_group_get_metadata(XPtr<tiledb::Group> grp, std::string key) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
tiledb_datatype_t v_type;
uint32_t v_num;
const void* v;
Expand All @@ -4555,7 +4555,7 @@ SEXP libtiledb_group_get_metadata(XPtr<tiledb::Group> grp, std::string key) {
// [[Rcpp::export]]
bool libtiledb_group_has_metadata(XPtr<tiledb::Group> grp, std::string key) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
tiledb_datatype_t value_type; // set by C++ API on return, not returned to R
return grp->has_metadata(key, &value_type);
#else
Expand All @@ -4566,7 +4566,7 @@ bool libtiledb_group_has_metadata(XPtr<tiledb::Group> grp, std::string key) {
// [[Rcpp::export]]
double libtiledb_group_metadata_num(XPtr<tiledb::Group> grp) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
return grp->metadata_num();
#else
return 0;
Expand All @@ -4576,7 +4576,7 @@ double libtiledb_group_metadata_num(XPtr<tiledb::Group> grp) {
// [[Rcpp::export]]
SEXP libtiledb_group_get_metadata_from_index(XPtr<tiledb::Group> grp, int idx) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
std::string key;
tiledb_datatype_t v_type;
uint32_t v_num;
Expand All @@ -4598,7 +4598,7 @@ XPtr<tiledb::Group> libtiledb_group_add_member(XPtr<tiledb::Group> grp,
std::string uri, bool relative,
Nullable<Rcpp::String> optional_name = R_NilValue) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
if (optional_name.isNotNull()) {
Rcpp::String string_name(optional_name);
std::string name(string_name);
Expand All @@ -4613,7 +4613,7 @@ XPtr<tiledb::Group> libtiledb_group_add_member(XPtr<tiledb::Group> grp,
// [[Rcpp::export]]
XPtr<tiledb::Group> libtiledb_group_remove_member(XPtr<tiledb::Group> grp, std::string uri) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
grp->remove_member(uri);
#endif
return grp;
Expand All @@ -4622,7 +4622,7 @@ XPtr<tiledb::Group> libtiledb_group_remove_member(XPtr<tiledb::Group> grp, std::
// [[Rcpp::export]]
double libtiledb_group_member_count(XPtr<tiledb::Group> grp) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
return grp->member_count();
#else
return 0;
Expand All @@ -4632,7 +4632,7 @@ double libtiledb_group_member_count(XPtr<tiledb::Group> grp) {
// [[Rcpp::export]]
CharacterVector libtiledb_group_member(XPtr<tiledb::Group> grp, int idx) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
tiledb::Object obj = grp->member(idx);
CharacterVector v = CharacterVector::create(_object_type_to_string(obj.type()), obj.uri());
#else
Expand All @@ -4644,7 +4644,7 @@ CharacterVector libtiledb_group_member(XPtr<tiledb::Group> grp, int idx) {
// [[Rcpp::export]]
std::string libtiledb_group_dump(XPtr<tiledb::Group> grp, bool recursive) {
check_xptr_tag<tiledb::Group>(grp);
#if TILEDB_VERSION == TileDB_Version(2,8,0)
#if TILEDB_VERSION >= TileDB_Version(2,8,0)
return grp->dump(recursive);
#else
return std::string("");
Expand Down

0 comments on commit 338945e

Please sign in to comment.