Skip to content

Conversation

@rroelke
Copy link
Member

@rroelke rroelke commented Oct 29, 2025

This pull request does some refactoring and enhancing of our test data structures struct Fragment1D and struct Fragment2D which are used as containers for inputs to write queries and outputs of read queries.

  1. we move the methods which generically create arrays using these and write fragments using these to a header file instead of sparse_global_order_reader.cc
  2. we refactor functionality into a template <typename DimensionTuple, typename AttributeTuple> struct Fragment which is a common base class for Fragment1D, Fragment2D, a new Fragment3D and can be used with an empty dimension tuple for dense fragments
  3. we implement various fixes to enable variable-length dimensions
  4. some other incidentals

This pull request has been refactored out of #5646 for two reasons:

  1. it is all enhancements to test code which may be distracting from the functional components of chore: Add global order min/max per tile to the fragment metadata #5646 ;
  2. I anticipate using it to add additional tests to Fix dense fragment domains during global order write with maximum fragment size #5655 . Specifically, using the Fragment with an empty dimension tuple will be very nice for writing tests on dense arrays.

There's no direct testing of this, but since the code was factored out of #5646 all of it was used in testing there. Many components are exercised due to the refactor of the existing tests.


TYPE: NO_HISTORY
DESC: refactors and enhancements to test data structure struct Fragment

@rroelke rroelke requested a review from teo-tsirpanis October 30, 2025 13:02
@rroelke rroelke merged commit 8a8644c into main Oct 31, 2025
56 checks passed
@rroelke rroelke deleted the rr/fragment-var branch October 31, 2025 11:25
rroelke added a commit that referenced this pull request Nov 5, 2025
)

This pull request does some refactoring and enhancing of our test data
structures `struct Fragment1D` and `struct Fragment2D` which are used as
containers for inputs to write queries and outputs of read queries.
1) we move the methods which generically create arrays using these and
write fragments using these to a header file instead of
`sparse_global_order_reader.cc`
2) we refactor functionality into a `template <typename DimensionTuple,
typename AttributeTuple> struct Fragment` which is a common base class
for `Fragment1D`, `Fragment2D`, a new `Fragment3D` and can be used with
an empty dimension tuple for dense fragments
3) we implement various fixes to enable variable-length dimensions
4) some other incidentals

This pull request has been refactored out of #5646 for two reasons:
1) it is all enhancements to test code which may be distracting from the
functional components of #5646 ;
2) I anticipate using it to add additional tests to #5655 .
Specifically, using the `Fragment` with an empty dimension tuple will be
very nice for writing tests on dense arrays.

There's no direct testing of this, but since the code was factored out
of #5646 all of it was used in testing there. Many components are
exercised due to the refactor of the existing tests.

---
TYPE: NO_HISTORY
DESC: refactors and enhancements to test data structure `struct
Fragment`
rroelke added a commit that referenced this pull request Nov 5, 2025
)

This pull request does some refactoring and enhancing of our test data
structures `struct Fragment1D` and `struct Fragment2D` which are used as
containers for inputs to write queries and outputs of read queries.
1) we move the methods which generically create arrays using these and
write fragments using these to a header file instead of
`sparse_global_order_reader.cc`
2) we refactor functionality into a `template <typename DimensionTuple,
typename AttributeTuple> struct Fragment` which is a common base class
for `Fragment1D`, `Fragment2D`, a new `Fragment3D` and can be used with
an empty dimension tuple for dense fragments
3) we implement various fixes to enable variable-length dimensions
4) some other incidentals

This pull request has been refactored out of #5646 for two reasons:
1) it is all enhancements to test code which may be distracting from the
functional components of #5646 ;
2) I anticipate using it to add additional tests to #5655 .
Specifically, using the `Fragment` with an empty dimension tuple will be
very nice for writing tests on dense arrays.

There's no direct testing of this, but since the code was factored out
of #5646 all of it was used in testing there. Many components are
exercised due to the refactor of the existing tests.

---
TYPE: NO_HISTORY
DESC: refactors and enhancements to test data structure `struct
Fragment`
ihnorton pushed a commit that referenced this pull request Nov 6, 2025
)

This pull request does some refactoring and enhancing of our test data
structures `struct Fragment1D` and `struct Fragment2D` which are used as
containers for inputs to write queries and outputs of read queries.
1) we move the methods which generically create arrays using these and
write fragments using these to a header file instead of
`sparse_global_order_reader.cc`
2) we refactor functionality into a `template <typename DimensionTuple,
typename AttributeTuple> struct Fragment` which is a common base class
for `Fragment1D`, `Fragment2D`, a new `Fragment3D` and can be used with
an empty dimension tuple for dense fragments
3) we implement various fixes to enable variable-length dimensions
4) some other incidentals

This pull request has been refactored out of #5646 for two reasons:
1) it is all enhancements to test code which may be distracting from the
functional components of #5646 ;
2) I anticipate using it to add additional tests to #5655 .
Specifically, using the `Fragment` with an empty dimension tuple will be
very nice for writing tests on dense arrays.

There's no direct testing of this, but since the code was factored out
of #5646 all of it was used in testing there. Many components are
exercised due to the refactor of the existing tests.

---
TYPE: NO_HISTORY
DESC: refactors and enhancements to test data structure `struct
Fragment`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants