Skip to content

Commit

Permalink
Remove current_domain flag
Browse files Browse the repository at this point in the history
  • Loading branch information
XanthosXanthopoulos committed Nov 24, 2024
1 parent 48ee3ad commit 1797740
Show file tree
Hide file tree
Showing 7 changed files with 295 additions and 360 deletions.
3 changes: 2 additions & 1 deletion libtiledbsoma/src/soma/soma_column.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ SOMAColumn::core_current_domain_slot<std::string>(
current_domain = std::any_cast<std::pair<std::string, std::string>>(
_core_current_domain_slot(ctx, array));

if (current_domain.first == "" && current_domain.second == "\xff") {
if (current_domain.first == "" && (current_domain.second == "\x7f" ||
current_domain.second == "\xff")) {
return std::pair<std::string, std::string>("", "");
}

Expand Down
1 change: 0 additions & 1 deletion libtiledbsoma/src/soma/soma_column.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
#ifndef SOMA_COLUMN_H
#define SOMA_COLUMN_H

#include <algorithm>
#include <any>
#include <format>
#include <optional>
Expand Down
7 changes: 2 additions & 5 deletions libtiledbsoma/src/soma/soma_dimension.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,11 @@ std::shared_ptr<SOMADimension> SOMADimension::create(
ArrowArray* array,
const std::string& soma_type,
std::string_view type_metadata,
PlatformConfig platform_config,
bool& has_current_domain) {
PlatformConfig platform_config) {
auto dimension = ArrowAdapter::tiledb_dimension_from_arrow_schema(
ctx, schema, array, soma_type, type_metadata, "", "", platform_config);

has_current_domain &= dimension.second;

return std::make_shared<SOMADimension>(SOMADimension(dimension.first));
return std::make_shared<SOMADimension>(SOMADimension(dimension));
}

void SOMADimension::_set_dim_points(
Expand Down
3 changes: 1 addition & 2 deletions libtiledbsoma/src/soma/soma_dimension.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ class SOMADimension : public virtual SOMAColumn {
ArrowArray* array,
const std::string& soma_type,
std::string_view type_metadata,
PlatformConfig platform_config,
bool& has_current_domain);
PlatformConfig platform_config);

SOMADimension(Dimension dimension)
: dimension(dimension) {
Expand Down
20 changes: 5 additions & 15 deletions libtiledbsoma/src/soma/soma_geometry_column.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ std::shared_ptr<SOMAGeometryColumn> SOMAGeometryColumn::create(
ArrowArray* spatial_array,
const std::string& soma_type,
std::string_view type_metadata,
PlatformConfig platform_config,
bool& has_current_domain) {
PlatformConfig platform_config) {
std::vector<Dimension> dims;
bool use_current_domain = true;
if (type_metadata.compare("WKB") != 0) {
throw TileDBSOMAError(std::format(
"[SOMAGeometryColumn] "
Expand All @@ -24,40 +22,32 @@ std::shared_ptr<SOMAGeometryColumn> SOMAGeometryColumn::create(
}

for (int64_t j = 0; j < spatial_schema->n_children; ++j) {
auto dimension = ArrowAdapter::tiledb_dimension_from_arrow_schema(
dims.push_back(ArrowAdapter::tiledb_dimension_from_arrow_schema(
ctx,
spatial_schema->children[j],
spatial_array->children[j],
soma_type,
type_metadata,
SOMA_GEOMETRY_DIMENSION_PREFIX,
"__min",
platform_config);
dims.push_back(dimension.first);

use_current_domain &= dimension.second;
platform_config));
}

for (int64_t j = 0; j < spatial_schema->n_children; ++j) {
auto dimension = ArrowAdapter::tiledb_dimension_from_arrow_schema(
dims.push_back(ArrowAdapter::tiledb_dimension_from_arrow_schema(
ctx,
spatial_schema->children[j],
spatial_array->children[j],
soma_type,
type_metadata,
SOMA_GEOMETRY_DIMENSION_PREFIX,
"__max",
platform_config);
dims.push_back(dimension.first);

use_current_domain &= dimension.second;
platform_config));
}

auto attribute = ArrowAdapter::tiledb_attribute_from_arrow_schema(
ctx, schema, type_metadata, platform_config);

has_current_domain &= use_current_domain;

return std::make_shared<SOMAGeometryColumn>(
SOMAGeometryColumn(dims, attribute.first));
}
Expand Down
3 changes: 1 addition & 2 deletions libtiledbsoma/src/soma/soma_geometry_column.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ class SOMAGeometryColumn : public virtual SOMAColumn {
ArrowArray* spatial_array,
const std::string& soma_type,
std::string_view type_metadata,
PlatformConfig platform_config,
bool& has_current_domain);
PlatformConfig platform_config);

SOMAGeometryColumn(std::vector<Dimension> dimensions, Attribute attribute)
: dimensions(dimensions)
Expand Down
Loading

0 comments on commit 1797740

Please sign in to comment.