Skip to content

Conversation

grusev
Copy link
Collaborator

@grusev grusev commented Aug 28, 2025

Reference Issues/PRs

What does this implement or fix?

The goal for this PR is to improve coverage of v1 API write() method. Initial analysis showed that not all types of data was used in the existing tests and not every combination of parameters is examined.

The result is a single scenario test that loops through all combination of parameters and executing different write operarions with all supported data types. Unlike existing tests this scenario loops through series of writes and reads on single symbol without wiping out after each one. Thus the test also examines that all write operation types can be performed on a single symbol.

As most of the actual usage of Arctic is actually with sparse data, and such thing was not present in the tests. A number of enhancements for utility functions have been made to be possible to produce sparse arrays and dataframes., which are used primerily in this test but are intended to be used in other future tests also.

2 interesting observations were made during the test, which could be considered issues or known limitations:

  • wrting dataframe with timestamp index which is not sorted is ok, but after reading it back the dataframe is sorted. I could not find documentation that covers this so I could not decide if issue or limitation this is
  • writing empty dataframe with no cols is returned with unexpected index timestamp instead of range

Any other comments?

Checklist

Checklist for code changes...
  • Have you updated the relevant docstrings, documentation and copyright notice?
  • Is this contribution tested against all ArcticDB's features?
  • Do all exceptions introduced raise appropriate error messages?
  • Are API changes highlighted in the PR description?
  • Is the PR labelled as enhancement or bug so it appears in autogenerated release notes?

@grusev grusev added the patch Small change, should increase patch version label Aug 28, 2025
@grusev grusev changed the title v1 API increase coverage v1 API increase coverage - write operation Aug 29, 2025
@grusev grusev marked this pull request as ready for review August 29, 2025 11:10
sym: str = "__qwerty124"

nvs: NativeVersionStore = version_store_and_real_s3_basic_store_factory(
dynamic_schema=True, segment_row_size=(max_length // 2),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I'd put all of these as params to the test and test with both dynamic_schema=True and dynamic_schema=False

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
patch Small change, should increase patch version
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants