From e7311850dc2b23905b239a4ac382a1ed8685ab0f Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 14 Sep 2021 15:26:49 -0500 Subject: [PATCH] accessor for dim-or-attr status --- NAMESPACE | 1 + R/ArraySchema.R | 19 +++++++++++++++++-- man/tiledb_schema_get_dim_attr_status.Rd | 18 ++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 man/tiledb_schema_get_dim_attr_status.Rd diff --git a/NAMESPACE b/NAMESPACE index d4b06e36d2..9215615c83 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -195,6 +195,7 @@ export(tiledb_query_status) export(tiledb_query_submit) export(tiledb_query_submit_async) export(tiledb_query_type) +export(tiledb_schema_get_dim_attr_status) export(tiledb_schema_get_names) export(tiledb_schema_get_types) export(tiledb_set_context) diff --git a/R/ArraySchema.R b/R/ArraySchema.R index c1ccd360c8..9ec8985048 100644 --- a/R/ArraySchema.R +++ b/R/ArraySchema.R @@ -465,7 +465,7 @@ tiledb_array_schema_set_allows_dups <- function(x, value) { ##' @return A character vector of dimension and attribute names ##' @export tiledb_schema_get_names <- function(sch) { - stopifnot(schema_object=is(sch, "tiledb_array_schema")) + stopifnot(`Argument must be a schema` = is(sch, "tiledb_array_schema")) dom <- tiledb::domain(sch) dims <- tiledb::dimensions(dom) ndims <- length(dims) @@ -483,7 +483,7 @@ tiledb_schema_get_names <- function(sch) { ##' @return A character vector of dimension and attribute data types ##' @export tiledb_schema_get_types <- function(sch) { - stopifnot(schema_object=is(sch, "tiledb_array_schema")) + stopifnot(`Argument must be a schema` = is(sch, "tiledb_array_schema")) dom <- tiledb::domain(sch) dims <- tiledb::dimensions(dom) ndims <- length(dims) @@ -495,6 +495,21 @@ tiledb_schema_get_types <- function(sch) { alltypes <- c(dimtypes, attrtypes) } +##' Get Dimension or Attribute Status +##' +##' @param sch A TileDB Schema object +##' @return An integer vector where each element corresponds to a schema entry, +##' and a value of one signals dimension and a value of two an attribute. +##' @export +tiledb_schema_get_dim_attr_status <- function(sch) { + stopifnot(`Argument must be a schema` = is(sch, "tiledb_array_schema")) + dom <- tiledb::domain(sch) + dims <- tiledb::dimensions(dom) + attrs <- tiledb::attrs(sch) + return(c(rep(1L, length(dims)), rep(2L, length(attrs)))) +} + + # -- get and set tile capacity #' @rdname tiledb_array_schema_get_capacity diff --git a/man/tiledb_schema_get_dim_attr_status.Rd b/man/tiledb_schema_get_dim_attr_status.Rd new file mode 100644 index 0000000000..2690f2ba4f --- /dev/null +++ b/man/tiledb_schema_get_dim_attr_status.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ArraySchema.R +\name{tiledb_schema_get_dim_attr_status} +\alias{tiledb_schema_get_dim_attr_status} +\title{Get Dimension or Attribute Status} +\usage{ +tiledb_schema_get_dim_attr_status(sch) +} +\arguments{ +\item{sch}{A TileDB Schema object} +} +\value{ +An integer vector where each element corresponds to a schema entry, +and a value of one signals dimension and a value of two an attribute. +} +\description{ +Get Dimension or Attribute Status +}