-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[c++] Column abstraction: SOMADimension
, part 1
#3425
[c++] Column abstraction: SOMADimension
, part 1
#3425
Conversation
SOMADimension
, part 1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm only partway through this PR. I'm still struggling with this (now) 1,875-line PR -- it's doing a lot of things. I'll need to pause and work on some other things for a while, and come back to this. (The other 3 PRs you split out that were smaller were nicely self-contained and self-descriptive and I was able to understand and review them earlier today.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good for the most part, but it's so big it's hard to follow everything. Let's do a code walk through together next time we are both working.
I also added a couple small comments, and John's comment about the missing code comments still needs to be addressed.
#include "soma/soma_column.h" | ||
#include "soma/soma_dimension.h" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like you remove these in a future PR. Might as well just not add them in to begin with.
b9e6046
to
16bb437
Compare
…nt domain checks, replace vector with span when selecting points
f134822
to
0ad22da
Compare
* Add helper methods for to and from arrow contructs * Remove unnecessary `std::string` conversion to `c_str` Co-authored-by: John Kerl <[email protected]> * lint fix * Switch C-style casts to named casts * [c++] Column abstraction: `SOMADimension`, part 1 (#3425) `SOMAColumn` provides an abstraction over TileDB attributes and dimensions and exposes a common interface for all columns regardless of type. Subclasses of `SOMAColumn` can implement complex indexing mechanism through additional dimensions and encapsulate all that logic in one place and make it modular. --------- Co-authored-by: John Kerl <[email protected]>
SOMAColumn
provides an abstraction over TileDB attributes and dimensions and exposes a common interface for all columns regardless of type. Subclasses ofSOMAColumn
can implement complex indexing mechanism through additional dimensions and encapsulate all that logic in one place and make it modular.Subsequent PRs will add implementation for dimension and attributes.
Throughout this PR there is extensive use of
std::any
to enable polymorphism with the differentSOMAColumn
types while maintaining a templated interface at the abstractSOMAColumn
.Notes for Reviewer:
This PR introduces the abstract
SOMAColumn
class and theSOMADimension
concrete class with basic unit tests.