Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions tiledb/sm/group/group.cc
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,12 @@ const shared_ptr<GroupDetails> Group::group_details() const {
return group_details_;
}

void Group::set_uri(const URI& uri) {
std::lock_guard<std::mutex> lck(mtx_);
group_uri_ = uri;
group_details_->set_group_uri(uri);
}

QueryType Group::get_query_type() const {
// Error if the group is not open
if (!is_open_) {
Expand Down
7 changes: 7 additions & 0 deletions tiledb/sm/group/group.h
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,13 @@ class Group {
*/
const shared_ptr<GroupDetails> group_details() const;

/**
* Set the group URI
*
* @param uri
*/
void set_uri(const URI& uri);

protected:
/* ********************************* */
/* PROTECTED ATTRIBUTES */
Expand Down
6 changes: 6 additions & 0 deletions tiledb/sm/group/group_details.cc
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
#include "tiledb/sm/enums/datatype.h"
#include "tiledb/sm/enums/encryption_type.h"
#include "tiledb/sm/enums/query_type.h"
#include "tiledb/sm/filesystem/uri.h"
#include "tiledb/sm/global_state/unit_test_config.h"
#include "tiledb/sm/group/group_details_v1.h"
#include "tiledb/sm/group/group_details_v2.h"
Expand Down Expand Up @@ -260,6 +261,11 @@ const URI& GroupDetails::group_uri() const {
return group_uri_;
}

void GroupDetails::set_group_uri(const URI& uri) {
std::lock_guard<std::mutex> lck(mtx_);
group_uri_ = uri;
}

uint64_t GroupDetails::member_count() const {
std::lock_guard<std::mutex> lck(mtx_);

Expand Down
3 changes: 3 additions & 0 deletions tiledb/sm/group/group_details.h
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@ class GroupDetails {
/** Returns the group URI. */
const URI& group_uri() const;

/** Sets the group URI. */
void set_group_uri(const URI& uri);

/**
* Get count of members
*
Expand Down
5 changes: 5 additions & 0 deletions tiledb/sm/serialization/group.cc
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,11 @@ Status group_details_from_capnp(
group->set_metadata_loaded(true);
}

if (group_details_reader.hasLogicalURI()) {
const char* logical_uri = group_details_reader.getLogicalURI().cStr();
group->set_uri(URI(logical_uri));
}

group->group_details()->set_modified();

return Status::Ok();
Expand Down
2 changes: 2 additions & 0 deletions tiledb/sm/serialization/tiledb-rest.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -996,6 +996,8 @@ struct Group {

metadata @1 :ArrayMetadata;
# metadata attached to group

logicalURI @2 :Text;
}

config @0 :Config;
Expand Down
246 changes: 131 additions & 115 deletions tiledb/sm/serialization/tiledb-rest.capnp.c++

Large diffs are not rendered by default.

53 changes: 52 additions & 1 deletion tiledb/sm/serialization/tiledb-rest.capnp.h
Original file line number Diff line number Diff line change
Expand Up @@ -1387,7 +1387,7 @@ struct Group::GroupDetails {
class Pipeline;

struct _capnpPrivate {
CAPNP_DECLARE_STRUCT_HEADER(a2ea10c715b475c1, 0, 2)
CAPNP_DECLARE_STRUCT_HEADER(a2ea10c715b475c1, 0, 3)
#if !CAPNP_LITE
static constexpr ::capnp::_::RawBrandedSchema const* brand() {
return &schema->defaultBrand;
Expand Down Expand Up @@ -12205,6 +12205,9 @@ class Group::GroupDetails::Reader {
inline ::tiledb::sm::serialization::capnp::ArrayMetadata::Reader getMetadata()
const;

inline bool hasLogicalURI() const;
inline ::capnp::Text::Reader getLogicalURI() const;

private:
::capnp::_::StructReader _reader;
template <typename, ::capnp::Kind>
Expand Down Expand Up @@ -12277,6 +12280,13 @@ class Group::GroupDetails::Builder {
inline ::capnp::Orphan<::tiledb::sm::serialization::capnp::ArrayMetadata>
disownMetadata();

inline bool hasLogicalURI();
inline ::capnp::Text::Builder getLogicalURI();
inline void setLogicalURI(::capnp::Text::Reader value);
inline ::capnp::Text::Builder initLogicalURI(unsigned int size);
inline void adoptLogicalURI(::capnp::Orphan<::capnp::Text>&& value);
inline ::capnp::Orphan<::capnp::Text> disownLogicalURI();

private:
::capnp::_::StructBuilder _builder;
template <typename, ::capnp::Kind>
Expand Down Expand Up @@ -29915,6 +29925,47 @@ Group::GroupDetails::Builder::disownMetadata() {
_builder.getPointerField(::capnp::bounded<1>() * ::capnp::POINTERS));
}

inline bool Group::GroupDetails::Reader::hasLogicalURI() const {
return !_reader.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS)
.isNull();
}
inline bool Group::GroupDetails::Builder::hasLogicalURI() {
return !_builder.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS)
.isNull();
}
inline ::capnp::Text::Reader Group::GroupDetails::Reader::getLogicalURI()
const {
return ::capnp::_::PointerHelpers<::capnp::Text>::get(
_reader.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS));
}
inline ::capnp::Text::Builder Group::GroupDetails::Builder::getLogicalURI() {
return ::capnp::_::PointerHelpers<::capnp::Text>::get(
_builder.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS));
}
inline void Group::GroupDetails::Builder::setLogicalURI(
::capnp::Text::Reader value) {
::capnp::_::PointerHelpers<::capnp::Text>::set(
_builder.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS),
value);
}
inline ::capnp::Text::Builder Group::GroupDetails::Builder::initLogicalURI(
unsigned int size) {
return ::capnp::_::PointerHelpers<::capnp::Text>::init(
_builder.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS),
size);
}
inline void Group::GroupDetails::Builder::adoptLogicalURI(
::capnp::Orphan<::capnp::Text>&& value) {
::capnp::_::PointerHelpers<::capnp::Text>::adopt(
_builder.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS),
kj::mv(value));
}
inline ::capnp::Orphan<::capnp::Text>
Group::GroupDetails::Builder::disownLogicalURI() {
return ::capnp::_::PointerHelpers<::capnp::Text>::disown(
_builder.getPointerField(::capnp::bounded<2>() * ::capnp::POINTERS));
}

inline bool GroupUpdate::Reader::hasConfig() const {
return !_reader.getPointerField(::capnp::bounded<0>() * ::capnp::POINTERS)
.isNull();
Expand Down
Loading